Compose Multiplatform for iOS 稳定版已经发布

1,056 阅读2分钟

大早上就看到了一条令人激动的消息,JetBrains 在几个小时前发布了 Compose Multiplatform 1.8.0 版本,CMP for iOS 已经稳定并可以投入生产,等了这么久终于等到这一天了。 image.png 在该版本中,CMP for iOS 的所有主要的 API 都已经稳定并且移除了实验标志。

目前 CMP for iOS 已经具备了开发一个完整 APP 几乎所有的能力:

  • 与 Jetpack Compose 的特性保持一致,支持所有常见的使用场景。
  • 支持类型安全的导航,并且具备 deep-link 功能。
  • 提供灵活的资源管理方式。
  • 一流的无障碍支持,包括 VoiceOver(旁白功能)、AssistiveTouch(辅助触控)和完整键盘访问(Full Keyboard Access)。
  • 以及更多功能!

本次更新还包含一些其他的功能:

  • Compose Multiplatform 的代码库现已全面迁移到 K2
  • 支持多平台的 BackHandler 和 PredictiveBackHandler
  • 优化了 CMP for Web 在移动端和桌面端的 Safari 中的文本输入支持
  • 修复了 Web 目标中某些文本输入场景中的问题
  • 为资源库添加了对 FontVariation.Settings 的支持

更详细的更新日志和升级指南可以直接看 GitHub Release:github.com/JetBrains/c…

目前 KMP/CMP 生态正在快速发展,社区也很活跃,官方也提供了一个网站索引所有的 KMP/CMP library 项目:klibs.io/ ,缺什么自己找。

CMP for iOS 的启动速度和滚动性能基本上可以和 SwiftUI 保持一致: image 1.png 据称,JetBrains 还将会为 KMP/CMP 发布一款 IDEA 插件,可以用来预览 Compose 以及资源管理等。

目前 KMP/CMP 集成方案有很多,可以直接使用 CMP 开发一个完整的 APP,也可以部分页面甚至部分 View 使用 Compose,这给大型项目集成 CMP 带来了可能,而且作为 Android 开发者本来就会 Compose,现在突然发现自己可以多平台开发了?再也不用学习什么 Dart、JS 了,与其逼自己一把不如逼 JetBrains 是吧。

学习 CMP 最快的方式就是直接上手,先从创建一个项目并且运行开始,JetBrains 提供了一个工具用来创建 CMP 项目: kmp.jetbrains.com/ ,创建之后解压缩然后用 Android Studio 打开就能运行。

也可以多去 GitHub 看看一些开源库学习,比如我的 Fread 就是一个完整的 KMP/CMP 项目:github.com/0xZhangKe/F…