KMM-Kotlin跨平台应用初识

由于业务需求和人力的现状,采用了Kotlin实现业务逻辑,iOS和Android分别实现UI绘制的开发方式。

1、构建环境+创建首个跨平台KMM项目

可参考Kotlin官方指导创建和体验首个跨平台项目。

  • 安装好 Android studio后,先下载插件:Preferences - Plugins - Marketplace - 搜索 Kotlin Multiplatform Mobile 并安装。
screenshot-20220314-160641.png
  • 新建项目,选择KMM app
screenshot-20220314-160359.png
  • 构建成功后,选择iosApp进行编译和运行
screenshot-20220314-142249.png
  • 可以构建不同模拟器进行编译
截屏2022-03-14 下午2.23.33.png
screenshot-20220314-142404.png

2、KMM项目结构

KMM项目主要为三部分组成:

  • 共享模块
  • Android app
  • iOS app

项目结构如下所示:

screenshot-20220314-153802.png

3、共享代码+分平台代码

  • 共享代码放在 commonMain 的文件夹中,多平台可直接调用
screenshot-20220314-161302.png
  • 因平台差异,须分别实现的,则放在各自平台的文件夹中,如 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的方法。

screenshot-20220315-113558.png

你可能感兴趣的:(KMM-Kotlin跨平台应用初识)