文章目录
什么是KMM?
KMM 全称:Kotlin Multiplatform Mobile,是基于 Kotlin 语言进行多平台开发的一套技术框架,它和 Kotlin Native(简称 KN)有一定联系,但 KMM 主要面相移动端开发,即:Android、iOS、Web,而 KN 则主要面相 Linux、macOS、Windows 等
当然,KMM 在 iOS 平台的实现,离不开 Kotlin Native,Kotlin 代码最终会在 iOS 工程中生成一套 Framework 库,可供 Objective-C、Swift 进行调用
KMM 宗旨是使用 Kotlin 语言和技术栈,开发一套可以在多平台之间共享的代码库,用来构建统一的代码逻辑,而不用针对各个平台都去实现自己的一套,从而导致人力的浪费
这里引用 Kotlin 官网的一张图来说明 Kotlin 多平台的工作原理
Kotlin Mutiplatform 之间的关系
Kotlin 官方开发的多平台框架分为以下几种:
-
标准 Kotlin(Kotlin Stdlib)
即 Kotlin JVM,由于 Kotlin 最初是基于 JVM 运行的,所以可以使用 Java 的全部功能,同时还能支持 Kotlin 特有的各种语法糖
-
Kotlin Native
简称 KN,内部对各平台(如:Windows、Linux、macOS、iOS、Android)Native API(不使用 Runtime 的)进行封装,底层使用 LLVM 进行编译,可以使用 Kotlin 调用各平台特定的 API 或基于一些 C/C++ 库的能力,如:OpenGL、OpenCV 等,使多平台共享一套 Kotlin 代码
-
Kotlin JS
基本原理是将 Kotlin 代码翻译成 JavaScript,同时可以调用一些 JavaScript 特定的接口,从而进行 Web 开发,Kotlin JS 在功能和热度上远不及 TypeScript 这样的语言,后续发展方向目前尚不明确
几种框架的联系如下图所示:
与其他跨平台框架的简单对比
KMM 与 Flutter 的基本思路差异
与 F