Compose Multiplatform
Compose Multiplatform 是由 JetBrains 主导开发的开源声明式 UI 框架,基于 Google Jetpack Compose 的 API 与运行时,通过 Kotlin Multiplatform 将同一套 Compose 代码扩展到 iOS、桌面(Windows、macOS、Linux)和 Web(Kotlin/Wasm)平台。Android 端直接使用 Jetpack Compose,其余平台通过 Skia(Skiko)自绘渲染,保证多平台 UI 一致性。
框架采用 Kotlin 体系,支持多种编译目标:Kotlin/Native(iOS、macOS)、Kotlin/JVM(桌面)、Kotlin/JS 与 Kotlin/Wasm(Web)。非 Android 平台共享同一套 Skia 渲染管线,由 Skiko(Skia for Kotlin)提供跨平台绑定,实现像素级一致的 UI 输出。开发者可直接访问各平台原生 API(如相机、地图等),并嵌入原生视图组件。
当前 iOS 与桌面端已进入 Stable 阶段,Web 端处于 Beta。框架提供 Compose Hot Reload(桌面端热重载)、IntelliJ / Android Studio 插件(含 @Preview 预览、跨语言导航与调试)、Material 3 与 Adaptive 布局组件库,以及 Navigation、Lifecycle 等 Jetpack 多平台库的官方移植。得益于与 Jetpack Compose API 高度一致,LLM 对 Compose 代码生成也有较好的支持。
Compose Multiplatform 适合 Kotlin 技术栈团队、已熟悉 Jetpack Compose 的 Android 开发者,希望以同一套 UI 代码覆盖移动端、桌面和 Web。
- API 复用
与 Jetpack Compose 共享 API,Android 开发者几乎零额外学习成本即可上手 iOS 和桌面端。
- Skia 自绘一致渲染
非 Android 平台通过 Skiko 统一 Skia 渲染,多平台 UI 像素级一致,不受系统控件差异影响。
- 原生互操作
可自由访问平台原生 API 并嵌入原生视图(UIKitView、SwingPanel 等),兼顾一致性按需下沉原生。
- Kotlin 全栈统一
前后端、UI、逻辑可全部使用 Kotlin,配合 KMP 生态实现逻辑层与 UI 层的端到端共享。
- Jetpack 生态移植
Navigation、Lifecycle、ViewModel、Material3 等 Jetpack 库已有官方多平台版本,架构迁移成本低。
优势
- Skia 着色器卡顿
非 Android 平台依赖 Skia 运行时编译着色器,首次渲染复杂场景时可能出现掉帧,尚无类似 Impeller 的着色器预编译方案。
- Kotlin 多目标生态整合
Kotlin/Native、Kotlin/JVM、Kotlin/JS、Kotlin/Wasm 各编译目标工具链和库生态差异较大,跨目标调试和依赖管理需额外投入。
- Web 端仍为 Beta
Web 目标目前处于 Beta 阶段,部分 API 不稳定、性能与兼容性仍在优化,生产环境需谨慎评估。
- 包体积与内存
Skia 自绘引擎随应用打包,iOS 端包体积相对原生偏大;桌面端内存占用在复杂场景下偏高。
- iOS 端成熟度
虽然 iOS 已标记 Stable,但部分高级特性(原生文本输入、Accessibility 细节等)仍在快速迭代,与成熟的原生方案仍有差距。
劣势
维护方
JetBrains首发时间
2021 年 7 月(Alpha);1.0 稳定版 2022 年 10 月
基本信息
- 1.9w 星标
社区
- Kotlin
语言
目标平台
- Web
- macOS
- iOS
- Android
- Windows
- 微信小程序
