为什么要在现有工程中集成?
直接用 KMM 插件生成的工程不香嘛?为什么还要讲在原有的工程中集成?
不香,确实不香!
-
默认工程结构局限性高
- 由 KMM 插件建立的工程,默认使用 Kotlin(*.kts 文件)进行 Gradle 配置,虽然用 Android Studio 新建一个 Android 工程会默认使用 kts,但很多项目现在都还在使用 Groovy,要改回去也需要一定工作量和学习成本
- 默认建立的 iOS 工程使用 Swift UI,目前大多数 iOS App 都会使用代码开发 UI,并没有使用 Storyboard、IB、Swift UI,而且国内很多公司都还在使用 Objective-C,同时 Swift 与 Objective-C 的交互并不像 Kotlin 和 Java 那样简单,所以彻底迁移到 Swift,还需要一定时间
-
工程目录不易维护
默认的工程类似一个独立的 Android App 工程,KMM 模块以 Gradle 模块形式依赖在 Android 主 App Module 当中,而 iOS 工程则是直接放在一个目录下,iOS 工程往往规模都比较庞大,且缺少像 Gradle 这样的工程管理框架,且 Xcode 工程索引文件在多人开发时,经常需要解决冲突,如果将 iOS 工程也放在整个 Android 工程目录中,后续将十分难以维护
如何在现有工程中集成 KMM
-
推荐的依赖项版本:
- Kotlin 基础库及 Gradle 插件:1.5.0(KMM 版本和它一致)
- Gradle 版本:6.8 及以上
- Android Gradle Plugin:4.2.1
我们以一个普通的 Android 和 iOS App 工程为例,一步一步完成 KMM 模块的建立和双端的接入