Ohhnews

分类导航

$ cd ..
Jetbrains Blog原文

Compose Multiplatform 1.11.0 正式发布

#compose multiplatform#移动开发#用户界面测试#跨平台框架#ios开发

Compose Multiplatform 新版本现已发布,此次更新重点提升了 iOS 和 Web 端的开发体验,并对 UI 测试方案进行了全面升级。请继续阅读以了解亮点内容,或查看更新日志获取完整变更列表。

开始使用 Compose Multiplatform

iOS 原生文本输入

如果你希望 Compose iOS 应用中的文本字段(Text Fields)具有更原生的交互体验,那么这个功能正是为你准备的。Compose Multiplatform 1.11.0 引入了一个基于 UIView 构建的实验性原生文本输入实现。

这一改进使得插入符(caret)的移动更加精确,支持原生手势和选中文本的控制柄,并提供了用户熟悉的系统上下文菜单,包括“自动填充”(Autofill)、“翻译”(Translate)和“搜索”(Search)。现有的文本输入实现依然是稳定且跨平台的选择,但如果你追求 iOS 上的极致原生感,现在可以选择启用此功能。

[LOADING...]

另一项 iOS 性能提升:在 1.8.0 版本中作为可选功能引入的并发渲染(Concurrent rendering)现已默认开启。渲染任务将自动卸载到专用的渲染线程中,无需额外配置,即可让你的应用获得性能提升。

Compose UI 测试 v2

针对非 Android 目标的测试方案迎来了升级,现在支持 v2 ComposeUiTest API。默认调度器现已更改为 StandardTestDispatcher,因此协程将按照排队顺序执行。这使得测试结果更加可预测,并更贴近生产环境的行为。

v2 API 还支持 effectContext 参数,用于将自定义协程上下文传递给组合(Composition)——这在覆盖动画时长比例(motion duration scale)或提供自定义测试调度器时非常有用:

$ kotlin
@OptIn(ExperimentalTestApi::class)
@Test
fun myTest() = runComposeUiTest(
    effectContext = motionDurationScale + StandardTestDispatcher()
) {
    setContent {
        MyComposable()
    }
    // 断言
}

旧版 API(runComposeUiTestrunSkikoComposeUiTestrunDesktopComposeUiTest)现已被弃用,建议迁移至 v2 版本。

Web 端更流畅的滚动体验

长期以来,Compose Web 的滚动性能一直落后于原生平台。在 1.11.0 版本中,我们对触摸事件的处理进行了大幅重构,现在 Compose Web 应用的滚动体验已非常接近其他平台。

你可以在最新版的 KotlinConf 应用 Web 版中体验这一改进。如需了解详细技术细节、演示及修复列表,请访问 CMP-9727


以上即为 1.11.0 版本的概览。请更新你的依赖项,尝试新的 API,并让我们了解你的反馈。关于本文未涵盖的更多内容,请查看完整发布说明更新日志