Kotlin Multiplatform 快速入门指南
从哪里开始
- 了解 Kotlin Multiplatform (KMP) 和 Compose Multiplatform (CMP): 它们是什么,以及它们的优势与用例。
- 在示例项目中尝试 KMP,查看它是如何组织的,以及它是如何在不同平台上运行的。
学习 KMP 基础
基础知识包括:
- 了解 KMP / CMP 项目是如何组织的。 内容涵盖:
- 共享模块中的公共代码和平台特定代码。
- 目标平台声明。
- 向 KMP 项目添加依赖项。
- 如果你已经熟悉 KMP,请确保你已了解针对普通项目的推荐项目结构。 该结构考虑了 Android Gradle plugin 9.0 的发布如何影响对 KMP 项目的要求,并涵盖了:
- 模块结构(带有作为库使用的共享代码模块的独立应用模块)。
- 创建新的应用模块以及从 AGP 8 使用的旧结构进行迁移。
- 由 JetBrains 技术布道师录制的关于项目结构的建议视频。
共享代码
在 KMP 项目中有不同的方式来共享代码,并带有一些平台特性:
- 入门教程涵盖了从应用模块调用公共代码的基础示例:
- 如何访问平台特定 API:
- 尽可能使用多平台库。
- 当没有合适的多平台库可用时,使用
expect/actual机制。
- 虽然从 Android Kotlin 调用共享 Kotlin 相对简单,但 iOS 互操作性需要一些了解:
- 了解如何将共享代码与 iOS 应用集成(本文档中引用的所有示例都有设置好的 iOS 集成示例)。
CocoaPods 目前正被逐渐淘汰,转而使用 Swift Package Manager,我们不建议在高性能项目中使用它。
- 查看包含使 Kotlin 协程在 iOS 上运行的示例和教程。
- 参阅在 KMP iOS 应用中使用现有 SPM 软件包的指南。
- 阅读关于从 Kotlin 调用 Swift / ObjC 以及反之亦然的深入解释。
- 了解更直接的 Swift export 方法(目前处于 Alpha 阶段)。
- 通常情况下,互操作越少越好,因此为了获得更流畅的体验,我们建议依靠 Compose Multiplatform 为所有平台构建大部分 UI。
- 了解如何将共享代码与 iOS 应用集成(本文档中引用的所有示例都有设置好的 iOS 集成示例)。
探索生态系统
klibs.io 提供了全面的多平台库目录:
- 大多数流行场景已经有了成熟的解决方案,通常还有备选方案: 数据库使用 SQLDelight 和 Room,网络使用 Ktor 和 OkHttp,图片加载使用 Coil,等等。
- 提供了为最流行用例使用多平台库构建的应用示例:
创建 KMP 库
如果你决定通过使用多平台库来创建共享代码的应用,请查看以下文档页面:
- 基础库教程
- KMP 库的发布配置
- 关于将构建工件发布到 Maven Central 和 npm 的教程
发布构建工件
- 阅读关于发布 KMP 应用的通用文章。
- 不要忘记 Apple App Store 要求的隐私清单。
学习资源目录
所有提到的资源,以及更深入的指南和第三方内容,都编目在学习资源页面中。
