Kotlin Multiplatform

一套 Kotlin 代码,共享业务逻辑,原生 UI 体验。JetBrains 推出的新一代跨平台解决方案。

10章节
1份共享代码
6+目标平台
免费开放学习
支持平台
🤖 Android
🍎 iOS
🖥️ macOS Desktop
🪟 Windows Desktop
🐧 Linux Desktop
🌐 Web (Wasm/JS)
核心优势
🧩

共享业务逻辑

commonMain 中编写一次网络请求、数据解析、业务规则,Android 和 iOS 共同复用,告别重复劳动。

🎨

原生 UI 体验

各平台保留原生 UI 框架(Jetpack Compose / SwiftUI),不牺牲用户体验,平台特性完整呈现。

🔷

Compose Multiplatform

可选择使用 Compose Multiplatform 共享 UI 代码,一套 Compose 代码运行在 Android、iOS 和桌面端。

接近原生性能

iOS 端编译为原生机器码,Android 端运行在 JVM/ART 上。无 JavaScript 桥接,无虚拟机开销。

🛠️

JetBrains 生态

Ktor Client 网络请求、SQLDelight 数据库、Kotlinx.Serialization JSON 解析,完整的多平台工具链。

🔄

渐进式迁移

可从现有 Android 项目逐步引入 KMP,无需重写整个应用,风险可控,收益即时可见。

学习路线
01

KMP 简介与生态

KMP vs Flutter vs React Native 架构对比,expect/actual 核心机制,支持平台概览

02

环境搭建与项目创建

JDK / Android Studio / Xcode 安装,KMP Wizard 创建项目,目录结构详解

03

共享模块架构

commonMain / expect / actual,Kotlinx 系列库,三层架构实践,版本目录管理

04

网络层(Ktor Client)

多平台 HTTP 引擎配置,ContentNegotiation,Bearer Token 认证,ApiClient 封装

05

本地数据库(SQLDelight)

SQL 生成类型安全 Kotlin API,多平台驱动,离线缓存,数据库迁移

06

状态管理与 ViewModel

Coroutines + Flow,StateFlow 状态流,共享 ViewModel,iOS Flow 互操作

07

Android UI(Jetpack Compose)

Compose 消费共享 ViewModel,Koin 依赖注入,Coil3 图片加载,Material 3

08

iOS UI(SwiftUI)

Framework 集成,Swift 调用 Kotlin,SKIE 库简化 Flow 消费,完整 iOS 实战

09

Compose Multiplatform 共享 UI

composeApp 模块,平台差异处理,CMP 导航,资源共享(图片/字体/字符串)

10

测试、发布与最佳实践

kotlin.test 单元测试,XCFramework 发布,GitHub Actions CI/CD,选型建议

技术生态
🌐
Ktor Client
多平台 HTTP 网络库
🗄️
SQLDelight
类型安全 SQL 数据库
📦
Kotlinx.Serialization
多平台 JSON 解析
⏱️
Kotlinx.Coroutines
异步并发框架
🗓️
Kotlinx.DateTime
多平台日期时间
💉
Koin
轻量级依赖注入
🖼️
Coil 3
KMP 图片加载
🍃
SKIE
Swift/Kotlin 互操作增强
🧭
Navigation CMP
Compose 多平台导航
🧪
kotlin.test
多平台单元测试