Kotlin 多平台 (KMP) 允许在不同平台之间共享 Kotlin 代码。在开始使用 KMP 构建应用程序之前,你需要按照本文档中的说明设置你的环境。你也可以参考 Jetbrain 的 官方文档。
安装或更新所需工具
- 安装或更新到最新稳定版本的 Android Studio。
- 更新与 Android Studio 捆绑在一起的 Kotlin 插件 到最新版本,以避免兼容性问题。
- (可选) 对于 iOS 开发,安装 Xcode 来构建 UI 并根据需要添加 Swift 或 Objective-C 代码。
创建 Kotlin 多平台项目
你可以使用 Jetbrains 的 Kotlin 多平台向导 创建新的 KMP 项目。确保选择 **不共享 UI** 选项以使 UI 保持为原生。
项目结构
KMP 项目遵循类似于 Android 项目的项目结构。
KMP 项目包含特定于平台的模块以及共享模块。将特定于平台的代码添加到相应的模块。例如,在 **androidApp** 模块中添加你的 Android 应用程序 UI,在 **iosApp** 模块中添加你的 iOS 应用程序 UI。你想要在平台之间共享的任何代码都放在 **shared** 模块中。
共享模块使用 Gradle 作为构建系统,就像项目的其余部分一样。你可以使用 sourcesets 声明通用依赖项和特定于平台的依赖项。例如,如果你的应用程序使用 Ktor 进行网络连接,你需要添加 OkHttp 依赖项用于 Android,以及 darwin 依赖项用于 iOS。请注意,一些库只需要通用依赖项,而不需要特定于平台的依赖项。
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
当你将新库添加到应用程序的共享模块时,请务必检查每个平台所需的依赖项。