由于业务需求和人力的现状,采用了Kotlin实现业务逻辑,iOS和Android分别实现UI绘制的开发方式。
1、构建环境+创建首个跨平台KMM项目
可参考Kotlin官方指导创建和体验首个跨平台项目。
- 安装好 Android studio后,先下载插件:Preferences - Plugins - Marketplace - 搜索 Kotlin Multiplatform Mobile 并安装。
- 新建项目,选择KMM app
- 构建成功后,选择iosApp进行编译和运行
- 可以构建不同模拟器进行编译
2、KMM项目结构
KMM项目主要为三部分组成:
- 共享模块
- Android app
- iOS app
项目结构如下所示:
3、共享代码+分平台代码
- 共享代码放在 commonMain 的文件夹中,多平台可直接调用
- 因平台差异,须分别实现的,则放在各自平台的文件夹中,如 iosMain,但是需要 expect-actual 配对实现,具体如下:
- commonMain 实现接口申明:expect
package com.example.xqkmmdemo
expect class Platform() {
val platform: String
}
- iosMain或androidMain 进行接口实现:actual
package com.example.xqkmmdemo
import platform.UIKit.UIDevice
actual class Platform actual constructor() {
actual val platform: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
4、Kotlin和客户端交互
4.1、 Kotlin 直接调用原生系统方法
package com.example.xqkmmdemo
// 引入原生库
import platform.UIKit.UIDevice
actual class Platform actual constructor() {
// 调用原生系统方法
actual val platform: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
4.2、 客户端调用Kotlin方法
查看KMM项目中自动创建的iosApp项目,即可发现客户端是如何调用kotlin的方法。