1、正物DX4.0:基于KMP的原研發框架新探索與實踐關于我王康,花名正物,淘寶程師;iOS開發者,前Flutter Member,Aspectd作者;前專注Kotlin Multiplatform(KMP)和Compose Multiplatform,負責DX4.0原研發框架的建設與應。綱DX研發框架演進DX4.0選型與設計 DX4.0重點技術案 DX4.0業務實踐 展望 DX介紹*DinamicX(DX)是淘寶乃阿集團泛使的Native動態化案*動態化-基礎鏈路-集團共建-集團標準Native研發模式*具有性能、穩定、效率等特點*泛應于基礎鏈路等核域DX演進1.02.03.02017初2017
2、末2018底兩端統 模版平臺H5持 表達式AST渲染管線 進制 程序持動態化案基礎鏈路動態化案集團共建的動態化案3.5移動組研發效能WG Native研發模式容器 搭建 IDE 事件鏈2020初2022底4.0開放DSL 標準程 原邏輯研發&執 多端多設備新代原研發模式DX原研發框架綱DX研發框架演進 DX4.0選型與設計DX4.0重點技術案 DX4.0業務實踐 展望 背景DX3.0挑戰*XML UI表達不,JSON Logic表達有限*私有標準DSL有學習檻,收益不*程結構固化,法由組織業發展與技術趨勢*愈發多元的設備終端*終端聲明式UI興未艾,天然持多端多設備核標技術選型 Kotlin 渲
3、染邏輯分離語法直觀,效率,空安全優異的Java互操作性,服務端友好Android選開發語KMP持多標,JS/Wasm天然動態化保障渲染性能可擴展多語保留已有能,降低接成本控制SDK包增量Compose描述UIKotlin描述邏輯編譯分離UI&邏輯渲染DSL研發配套運時標準集約束編譯成UI進制&邏輯進制Linter/IDE/Debug/.邏輯引擎能庫等DSL對DX3.0DX4.0Kotlin MultiplatformCompose MultiplatformDSLDesign架構設計綱DX研發框架演進 DX4.0選型與設計 DX4.0重點技術案DX4.0業務實踐 展望 DX4.0重點技術案開發
4、者DSL 與程配套編譯運時DSL示例開發者怎么寫模板?DSL示例Mock數據模板注解數據綁定狀態聲明點擊事件變量聲明視圖布局視圖嵌套表達式調開發者怎么寫模板?標準程(KMP)Kt與平臺互操作IDE如何定制針對標準集的研發環境?IDE如何定制針對標準集的研發環境?調試(原理)如何在O2下調試各平臺代碼?調試(原理)如何在O2下調試各平臺代碼?調試(開發者動線)編譯全景如何實現UI與邏輯分離?編譯全景如何實現UI與邏輯分離?編譯:類型推斷DSL如何分析屬性的類型與初始值?編譯:類型推斷DSL類型推斷初始值推斷14.0.toDouble()in base64分析結果如何分析屬性的類型與初始值?編譯:
5、DSL分析如何分析DSL中的視圖結構等?編譯:DSL分析DSLPSI視如何分析DSL中的視圖結構等?編譯:代碼成(事件處理)事件處理.kt函數調轉換(避免版本頻繁變化/優化包)編譯:Kotlin/Native編譯鏈路Linux鏈路下KN是如何構建so的?編譯:Kotlin/Native編譯鏈路Linux鏈路下KN是如何構建so的?編譯:基于Kotlin IR的LLVM位碼成kt代碼是如何成llvm字節碼的?編譯:基于Kotlin IR的LLVM位碼成https:/llvm.org/docs/LangRef.htmlkt代碼是如何成llvm字節碼的?編譯:Android鏈路Android鏈路如何
6、構建dex?如何保證安全?如何優化模板產物?編譯:Android鏈路Android鏈路如何構建dex?如何保證安全?如何優化模板產物?運時狀態聲明狀態綁定DSL設計綱DX研發框架演進 DX4.0選型與設計 DX4.0重點技術案 DX4.0業務實踐展望 業務進展Cell級模板卡ScrollView滾動容器模板DX3.0業務邏輯(JSON)DX4.0業務邏輯(Kotlin)性能視圖渲染*4.0編譯產物中,視圖描述基于3.0并擴展。*渲染管線復既有設計并擴展。*整體渲染性能與3.0持平邏輯執(以dex為例)*dex動態加載與預置相,性能差異主要是AOT和JIT。*預置在APK中的dex,在應安裝時會被優化,包括AOT等。*動態加載的dex在次加載時進JIT等編譯優化。綱DX研發框架演進 DX4.0選型與設計 DX4.0重點技術案 DX4.0業務實踐 展望展望能完善業務研發框架 動畫/主題/容器等能 多端多設備持.開發體驗IntelliSense優化 編譯優化 調試體驗.業務推定義擴展 穩定性保障 問題排查 線上運維.聯系我們感謝