← 返回
Compose Multiplatform

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 月

    语言

  • Kotlin

目标平台

  • Web
  • macOS
  • iOS
  • Android
  • Windows
  • 微信小程序

使用 Compose Multiplatform 构建的应用