Kotlin Multiplatform
使用 Kotlin Multiplatform 编写一套在多个平台上运行的代码库。
Kotlin Multiplatform (KMP) 已获得 Google 官方支持,用于在 Android 和 iOS 之间共享业务逻辑。Kotlin Multiplatform 目前稳定且可用于生产环境。借助 JetBrains 的 Compose Multiplatform (CMP),开发者还可以跨平台共享界面 (UI)。
路径
Kotlin Multiplatform 基础知识
立即开启您的跨平台开发之旅。本学习路径将引导您了解 Kotlin Multiplatform 的基本知识,包括设置项目、共享代码、使用特定于平台的 API,以及将 Room 数据库迁移至 Kotlin Multiplatform。
Android Studio 插件
Kotlin Multiplatform 插件
我们建议安装由 JetBrains 开发的 Kotlin Multiplatform Android Studio 插件,以提升在 Android Studio 中的开发体验。
- 新项目向导:在 IDE 中创建新的多平台项目。
- 预检 (Preflight checks):预检功能可帮助您配置开发环境。
- 运行配置:直接在 IDE 中运行、调试和测试 iOS 及 Android 应用。
- IDE 中的基本 Swift 支持:在 IDE 中获得基本的 Swift 支持,包括跨语言调试工具、导航和快速文档。
Kotlin Multiplatform 的优势
使用 Kotlin Multiplatform,您可以选择在各平台间共享哪些内容,从核心业务逻辑到整个应用程序均可。以下是它的一些主要优势:
减少代码重复
您无需在每个平台上重复编写复杂的业务逻辑。
无需彻底重写
借助 Kotlin Multiplatform,您无需重写整个应用程序即可开始在平台间共享代码。
原生性能
Kotlin Multiplatform 会编译为目标平台运行代码的原生方式,从而提供与原生实现相媲美的性能。
Kotlin Multiplatform 和 Jetpack 库
我们的许多 Jetpack 库已完成迁移,现已支持 KMP。以下 Jetpack 库提供 KMP 支持:
由 Android 构建
由 JetBrains 构建 不支持
| 库 | 最新版本 | Android | iOS | JVM | Web |
|---|---|---|---|---|---|
| annotation | 2026 年 4 月 8 日 |
||||
| collection | 2026 年 3 月 11 日 |
||||
| compose | 2026 年 6 月 17 日 |
||||
|
datastore
文档 |
2026 年 5 月 6 日 |
||||
|
lifecycle
文档 |
2026 年 6 月 17 日 |
||||
|
viewModel
文档 |
2026 年 6 月 17 日 |
||||
|
viewModel-compose
文档 |
2026 年 6 月 17 日 |
||||
|
navigation
文档 |
2026 年 5 月 19 日 |
||||
| navigation3 | 2026 年 6 月 17 日 |
||||
| navigationevent | 2026 年 6 月 17 日 |
||||
| paging | 2026 年 5 月 6 日 |
||||
|
room
文档 |
2025 年 11 月 19 日 |
||||
| savedstate | 2026 年 5 月 19 日 |
||||
|
sqlite
文档 |
2026 年 6 月 17 日 |
如果您对这些库有任何反馈,请通过 Issue Tracker 提交。
JetBrains 发布的库将 Android 制品与其他平台的制品打包在一起,以便您可以在多平台项目中无缝使用它们。要了解底层的发布流程,请参阅 多平台 Jetpack 库的打包方式。
工具支持
您可以在 Android Studio 中打开、编辑和运行多平台项目。
KMP 模块向导
您可以通过在 Android Studio 中创建 KMP 共享模块来开始迁移至 KMP。该模块会自动应用所有必要的插件(包括 Android-KMP 插件),以开始开发 Android 和 iOS 应用。
JetBrains Compose Multiplatform 的实时编辑 (Live Edit)
当在 Android 设备上进行构建并编辑项目中的任何代码(不仅限于
androidMain)时,实时编辑功能均可工作。JetBrains Compose Multiplatform 的预览功能
Jetpack Compose 的预览功能现在也适用于来自
commonMain 源代码集的 JetBrains Compose Multiplatform。使用 Kotlin Multiplatform 构建的应用
许多应用已经在成功使用 Kotlin Multiplatform。
Blinkit
Cash App
Duolingo
Forbes
Google Docs
JioHotstar
Stone
Swiggy
Ultrahuman
Wrike
Zomato
Jetpack 中的受支持平台
针对官方支持的平台(Android 和 iOS)发布的 Jetpack 库维护着相同的质量和兼容性要求。不过,随着我们努力将 Jetpack 的 Kotlin Multiplatform 支持扩展到其他平台,工具和基础架构支持可能尚处于开发阶段。
第 1 级
代码已在 CI 中经过全面测试,包括主机端测试和设备端测试。我们正根据我们的语义化版本控制政策跟踪源代码和二进制兼容性。
- Android
- JVM
- iOS
第 2 级
代码已在 CI 中经过部分测试,仅限于主机端测试。我们不跟踪源代码或二进制兼容性。
- macOS
- Linux
第 3 级
代码尚未在 CI 中进行测试。不跟踪源代码或二进制兼容性。
- watchOS
- tvOS
- Windows
- JavaScript
- WASM
其他资源
有关整体多平台生态系统和更高级配置的详细信息,请参阅官方的 Kotlin Multiplatform 文档。
Kotlin Multiplatform 示例
一组 Kotlin Multiplatform 示例,演示了如何将 Jetpack 库用于 Android 和 iOS。
Kotlin Multiplatform 入门
关于如何将 KMP 添加到项目的指导教程。
将 Room 迁移至 Kotlin Multiplatform
将仅限 Android 的 Room 迁移至 KMP 的指导教程。
深入指南
如需更深入的指导,请访问 Kotlinlang.org 上的 Kotlin Multiplatform 文档中心。
了解什么是 Kotlin Multiplatform、其工作原理以及使用它的益处。