Kotlin跨平台在美团餐饮系统的实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. Kotlin跨平台在美团餐饮系统的实践 银
2. 个
3. 美团餐饮系统:业务背景
4. 美团餐饮系统 站式智能化餐饮解决 中型餐饮企业提供 美团餐饮系统智能版为多业态、 案。
5. 美团餐饮系统 业务背景(2020) • 终端多:点餐场景 6 个 App,共有模块逻辑层基本 致,UI和交互存在差异 • 低性能设备多:Android&Windows 设备利旧,普遍配置较低
6. 案选型 R/N通过JS包装原 控件,Flutter直接使 染 ★★★☆☆ 相对较低,需要学习新语 Skia渲 原 实现 Compose Multiplatform ★★★★☆ 很低,具备Java基础的学习Kotlin语 成本很低 法调
7. Kotlin Multiplatform KMP
8. Kotlin Multiplatform 发展史 Kotlin:2.0 2024 Kotlin:1.9.20 2023 Kotlin:1.7.20 2022 Kotlin:1.4.0 2020 Kotlin:1.2.0 2017 KMP:Experimental KMM:Alpha KMM:Beta KMP:Stable KMP:?
9. Kotlin Multiplatform 简介 • Open-source technology by JetBrains for flexible multiplatform development • Share code without compromising quality • Suitable for all kinds of projects
10. Kotlin Multiplatform 官 示例 程
11. Kotlin Multiplatform 跨平台原理-原 平台互操作 预置平台API 三 平台API Common except/actual Android gradle依赖 jar/aar iOS cinterop pod/.h
12. Kotlin Multiplatform *.class *.bc *.js *.wasm
13. 业务实践
14. 整体架构 协程 定时器 时间 UUID 序列化 事件总线 对象转换 件存储 基础框架 平台桥接 组件模板 编码规范 Debug调试 单元测试 代码检查 打包发布 依赖集成 数据埋点 监控报警 降级策略 加解密 WebSocket 跨平台基建 撑
15. 打印SDK 背景 Core Android Adapter Android Demo 驱动管理 设备发现 测试Demo • • • • 任务调度 模版解析 “JVM” for iOS ❌ ObjC/Swift 重写 ❌ J2ObjC 转换 ❌ KMP ✅ ❓ Windows Adapter Windows Demo ? iOS
16. 打印SDK 实施:Java -> Kotlin/JVM Core (Kotlin/JVM) Android Adapter (Java) Windows Adapter (Java) Android Demo (Java) Windows Demo (Java) 1. 2. 3. 4. *.java -> *.kt *.kt 错误修正 *.kt 编译通过 *.kt Demo验证
17. 打印SDK 实施:Kotlin/JVM -> Kotlin/Common Common Core (Kotlin) Jvm Adapter (Kotlin/JVM) Android Adapter (Java) Windows Adapter (Java) Android Demo (Java) Windows Demo (Java) 1. 2. 3. 4. 5. 6. Common和Jvm边界确定 改造 案调研设计 Gradle 程改造 代码改造 编译通过 Demo验证
18. 打印SDK 实施:Kotlin/Native iOS 适配 Common Core (Kotlin) Jvm Adapter (Kotlin/JVM) Android Adapter (Java) Windows Adapter (Java) Android Demo (Java) Windows Demo (Java) iOS Adapter (Kotlin/Native) iOS Demo (Compose) 1. 2. 3. 4. 5. 适配 案调研设计 核 功能适配(WiFi) MVP Demo验证 剩余功能适配(蓝 ) 整体功能回归
19. 打印SDK ThreadPoolExecutor Thread AtomicInt NSCondition NSThread
20. 打印SDK 结果:跨平台基础能 Common Core (Kotlin) 任务调度 模版解析 Core KMP ✅ Jvm Adapter (Kotlin/JVM) iOS Adapter (Kotlin/Native) Android Demo Windows Adapter Windows Demo Android Adapter 驱动管理 设备发现 测试Demo Android Adapter (Java) Windows Adapter (Java) Android Demo (Java) Windows Demo (Java) iOS Demo (Compose)
21. Java 转 KMP 法论 *.kt (Kotlin/JVM) *.java (Java) J2KT *.kt (Kotlin/JVM) KMP *.kt (Kotlin/Common) *.kt (Kotlin/Native)
22. 跨平台接 层实践
23. iOS集成 基础能 络 层 Maven 存储
24. iOS集成 ❌ Framework Xcode Project 实现 Pod 依赖 ❌ 接 抽象 Framework Xcode Project
25. iOS集成 • NSClassFromString、conformsToProtocol • NSSelectorFromString、respondsToSelector、 performSelector
26. React Native Bridge React Component Bridge NativeModule RCTBridgeModule KMPBridgeModule (sync/async) • 桥协议抽象:code/msg/data • 桥调 KMPApiCallManager :服务注册发现
27. 实践总结
28. 稳定性&性能保证 外部调研 •国内外20+个团队 • 稳定性问题 内部论证 • PV 模块改造,监控 Crash 率 • 法耗时/FPS/CPU/内存 •AB策略
29. 稳定性&性能保证 完成 KMM 从 0 到 1 的探索 常规技术 稳定性达标(Crash率低于0.4‱) 业务改造 核 模块逻辑层逐步改造 效率提升 业务逻辑多端复
30. 终端架构总结 KMP适 场景( 性能) 跨平台逻辑层:平台相关较少,菜单/购物 /结账等 基础能 层:最 化复 现有原 存量资产, 志/打印等 性能 原 • 低端设备 • 交互复杂 KMM Common KMP except/actual •RN Bridge KMP+RN Android • 快速上线 • 偏展示类 React Native 动态化 React Native gradle依赖 jar/aar iOS cinterop pod/.h JS gradle npm npm
31. KMP最新进展和未来展望
32. 最新进展 Kotlin 2.0
33. 最新进展 Android 官 持 KMP Jetpack Library: DataStore、Paging、Room、Lifecycle、ViewModel、Navigation Google Workspace: Java/J2OC to KMP
34. 跨平台UI展望 View 进 React Native UIKit 步统 技术栈? HarmnoryOS (ArkUI) ? 跨平台逻辑层 Kotlin/JS 基础能 层 Kotlin/Native
35. Compose Multiplatform Jetpack Compose Alpha 2020/8 Beta 2021/2 1.0 2021/7 1.1 2022/2 1.2 1.3 2022/7 2022/10 1.4 2023/1 1.5 1.6 2023/8 2024/1 2020/11 2021/5 2021/12 2022/2 2022/10 2023/1 2023/4 2023/9 2024/5 Desktop M1 Web Preview Desktop 1.0 Desktop 1.1 Desktop 1.2 Desktop 1.3 MP 1.4 MP 1.5 iOS Alpha Web/Wasm Exp MP 1.6.10 iOS Beta Web/Wasm Alpha Compose Multiplatform MP: Multiplatform Exp:Experimental
36. Compose Multiplatform
37. Compose Multiplatform Material Material 3 Compose Animation Compose Foundation Compose Compose Compiler KMP Deskt op iOS Web Android Compose UI Skiko Compose Runtime android.graphics.Canvas Skia
38. 动态化展望 屏优化:模块化、异步下载、缓存、预置包
39. 后续计划
40. 招聘:美团餐饮系统客户端 程师 邮箱:liuyinlong@meituan.com 更多技术 货 欢迎关注“美团技术团队”

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 19:04
浙ICP备14020137号-1 $Map of visitor$