Kotlin Multiplatform(KMP)与 Compose Multiplatform(CMP)最新进展
截至 2026 年 10 月 27 日,KMP + CMP 已经从跨平台技术探索,进入可以认真用于生产项目的阶段。
尤其是最近一年,iOS 支持、Web、Jetpack 生态、开发工具和 AI 编程支持都有明显进展。
一、最新版本与成熟度
项目 | 最新进展 | 状态 |
|---|---|---|
Kotlin Multiplatform | 持续完善 Kotlin 2.4 系列支持 | Stable |
Compose Multiplatform | 1.12.2(10 月 15 日发布) | Stable |
Compose Multiplatform | 1.13.0 Beta | 测试阶段 |
Android UI | Jetpack Compose | Stable |
iOS UI | CMP 1.8.0 起正式稳定 | Stable |
Desktop UI | 长期稳定,持续优化 | Stable |
Web UI | 持续完善,部分能力仍在演进 | Beta 阶段 |
SwiftUI / UIKit 集成 | 1.13 增强自动尺寸适配 | 持续完善 |
官方版本信息:Compose Multiplatform Releases
二、最近最值得关注的 6 项进展
1. iOS 已经正式稳定,原生集成进一步增强 ⭐⭐⭐⭐⭐
2025 年 CMP 1.8.0 正式宣布 iOS Stable。
这意味着 Android 和 iOS 可以共享:
UI 组件
页面布局
页面状态
业务逻辑
网络请求
数据持久化
而且不必放弃 SwiftUI。
2026 年 10 月的新进展:
Compose Multiplatform 1.13 增强了与 SwiftUI、UIKit 的集成。
其中最有价值的是:
Compose UI 可以根据内容自动报告适合的尺寸。
例如:
SwiftUI 页面
│
├── SwiftUI Navigation
│
├── SwiftUI 原生组件
│
├── Compose Multiplatform 组件
│ └── 自动计算内容高度
│
└── SwiftUI 原生组件以前混合 UI 时,经常需要手动处理高度和布局。
现在集成体验更自然。
另外,1.13 还加入了 iOS 密码保存和自动填充支持。
2. Google 正在持续扩大 Jetpack 的 KMP 支持 ⭐⭐⭐⭐⭐
这是我认为对 KMP 长期发展非常重要的变化。
过去 KMP 的一个问题是:
Kotlin 可以跨平台,但 Android 开发者熟悉的 Jetpack 库不一定可以。
现在情况明显改善。
根据 Google 2026 年 10 月更新的官方文档:
Jetpack 组件 | KMP 支持进展 |
|---|---|
ViewModel | 已支持多平台 |
Lifecycle | 已支持多平台 |
Navigation | 已支持多平台 |
Navigation 3 | 已提供多平台支持 |
DataStore | 已支持多平台 |
Paging | 已支持多平台 |
Collection | 已支持多平台 |
具体目标平台仍需要按库检查。
这意味着可以进一步共享:
commonMain
│
├── UI (Compose)
├── ViewModel
├── Navigation
├── Repository
├── DataStore
├── Network
└── Business Logic相比过去只共享 Repository、Model 和 API,现在能够共享更多应用架构代码。
3. Compose Multiplatform 开始支持 AI Agent 开发 ⭐⭐⭐⭐⭐
2026 年 8 月发布的 CMP 1.12.0 带来了一个非常值得关注的功能:
Compose Hot Reload MCP Server。
通过 MCP,AI 编程 Agent 可以与正在运行的 Compose 应用交互。
支持的能力包括:
触发 Hot Reload
获取应用截图
检查 UI 语义树
模拟点击
模拟文本输入
读取应用日志
以前 AI 编程的工作流是:
AI 修改代码
↓
编译
↓
开发者运行
↓
开发者检查 UI
↓
反馈给 AI现在有机会变成:
AI 修改代码
↓
Hot Reload
↓
AI 获取截图
↓
AI 检查 UI
↓
AI 自动修改
↓
再次验证对于使用 Claude Code、Codex 等工具进行开发的人,这项能力尤其值得关注。
不过,这项 MCP 集成仍属于实验性能力,不应直接等同于完整的自动化 UI 测试框架。
来源:Compose Multiplatform 1.12.0 更新报道
4. Web 平台持续完善 ⭐⭐⭐⭐
CMP Web 是另一个值得关注的方向。
在 1.13 Beta 中,主要新增:
WebGL 互操作
允许 Compose UI 和 WebGL 图形内容结合。
例如:
Compose Web
│
├── 普通 UI
├── Button
├── Text
│
└── WebGL 内容
├── 图形
└── 可视化同时还增加了:
浏览器安全区域支持
虚拟键盘区域处理
更灵活的字体回退配置
字体及图片资源预加载 API 稳定化
这些变化让 CMP Web 更接近完整的应用开发方案。
但需要注意:
Web 仍然是 CMP 相对不成熟的目标平台。
如果项目以 SEO、首屏加载速度、复杂 DOM 集成为核心需求,仍然需要谨慎评估。
5. Desktop 开始关注启动性能 ⭐⭐⭐⭐
CMP 1.13 Beta 增加了针对 Desktop 的启动优化选项。
包括:
AppCDS
AOT 相关优化
目标是改善桌面应用启动速度。
对于使用 Kotlin/JVM 开发桌面软件的团队,这类优化有实际价值。
Desktop 一直是 CMP 相对成熟的平台,但应用体积、JVM 运行时和启动性能仍然是需要考虑的因素。
6. 跨平台稳定性持续改善 ⭐⭐⭐⭐
2026 年 10 月 15 日发布的 CMP 1.12.2 主要集中在 Bug 修复。
包括:
iOS
修复 Dialog 显示时 TextField 失去焦点可能导致的崩溃。
Web
改进 iOS Safari 27 的文本输入焦点处理。
多平台
修复非矩形阴影动画闪烁。
虽然没有重大新功能,但这些修复对实际产品稳定性很重要。
三、2026 年 KMP + CMP 与 Flutter 怎么选?
对比维度 | KMP + CMP | Flutter |
|---|---|---|
开发语言 | Kotlin | Dart |
Android | 成熟 | 成熟 |
iOS | 已稳定 | 成熟 |
Desktop | 成熟 | 成熟 |
Web | 仍在完善 | 相对成熟 |
共享业务逻辑 | 支持 | 支持 |
共享 UI | 支持 | 支持 |
使用原生 UI | 可以混合 | 可以嵌入,但集成方式不同 |
Android 生态 | 优势明显 | 独立生态 |
iOS 原生集成 | 持续改善 | 通过插件与平台通道 |
热更新开发体验 | Hot Reload 持续完善 | Hot Reload 成熟 |
适合现有 Android 项目 | 非常适合 | 通常需要较大迁移 |
我的判断
2026 年 KMP + CMP 最有竞争力的场景,是已经拥有 Kotlin 技术栈的 Android 团队开发 iOS 应用。
例如:
一个已有 Android App 的团队:
原来的架构:
Android
├── Kotlin
├── Jetpack Compose
└── Android Business Logic
iOS
├── Swift
├── SwiftUI
└── iOS Business Logic可以逐步演进为:
新的架构:
Shared Kotlin
│
┌────────┴────────┐
│ │
Android App iOS App
│ │
└────────┬────────┘
│
Compose Multiplatform
│
Shared ViewModel
│
Shared Repository
│
Shared API这样可以逐步迁移,而不一定需要重写整个应用。
四、现在是否适合用于正式项目?
我的建议:
项目类型 | 推荐程度 |
|---|---|
Android + iOS 新项目 | ⭐⭐⭐⭐⭐ |
已有 Android App 扩展 iOS | ⭐⭐⭐⭐⭐ |
Kotlin 技术栈的桌面软件 | ⭐⭐⭐⭐⭐ |
Android + iOS + Desktop | ⭐⭐⭐⭐ |
Android + iOS + Web | ⭐⭐⭐ |
主要面向浏览器的 Web 应用 | ⭐⭐ |
强依赖 iOS 原生 UI 体验的 App | ⭐⭐⭐⭐(KMP + SwiftUI) |
需要注意的三个问题
1. iOS 构建与调试体验
虽然 iOS UI 已经稳定,但 Kotlin/Native、Xcode、Gradle 之间的集成仍然增加了工具链复杂度。
2. 第三方库兼容性
并非所有 Android 库都支持 KMP。
需要逐个检查 iOS、Desktop 和 Web 目标的兼容情况。
3. CMP 与 Jetpack Compose 版本同步
二者相关但不是同一个发行体系,升级时需要核对 Kotlin、Compose Compiler、CMP、Gradle 等版本兼容性。
五、未来最值得关注的方向
结合 2026 年的进展,我认为有三个趋势:
第一,KMP 正在成为更完整的跨平台应用架构。
从共享业务逻辑,逐渐发展到共享 ViewModel、Navigation、UI 和更多基础设施。
第二,CMP 与原生 UI 的混合开发会越来越重要。
未来不一定是全 Compose 或全 SwiftUI,而可能是:
80% 通用页面使用 CMP
20% 平台特色页面使用原生 UI
这只是架构示例,并非官方推荐比例。
第三,AI Agent + Compose Hot Reload 可能成为新的开发效率优势。
AI 不仅能够修改 Kotlin 代码,还能够运行应用、观察 UI 并进行迭代验证。
这可能是未来一年特别值得跟踪的方向。
总结
2026 年的 KMP + CMP 已经值得认真考虑作为 Android、iOS 双端应用的主要技术方案。
与一两年前相比,最大的变化不是增加了多少组件,而是:
iOS UI 已经正式稳定。
Google 持续扩展 Jetpack 的 KMP 支持。
SwiftUI / UIKit 混合开发体验改善。
Desktop 和 Web 能力继续完善。
AI Agent 开始能够直接操作和验证 Compose 应用。
我还想特别展开一个问题:2026 年 KMP + CMP 在 iOS 上的实际表现,是否已经接近原生 SwiftUI 和 Flutter?
这涉及启动速度、内存占用、滚动流畅度、包体积以及真实项目的开发效率,也是决定是否选用 CMP 的关键。

成为第一条评论!
Nobody's responded to this post yet. Add your thoughts and get the conversation going.