大早上就看到了一条令人激动的消息,JetBrains 在几个小时前发布了 Compose Multiplatform 1.8.0 版本,CMP for iOS 已经稳定并可以投入生产,等了这么久终于等到这一天了。
在该版本中,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 保持一致:
据称,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… 。