Multiplatform

Compose Multiplatform 1.5.10 – 最佳入门时机

Read this post in other languages:

Compose Multiplatform 是由 JetBrains 构建的声明式 UI 框架,允许开发者跨平台共享应用程序 UI。 它让您能够在 Android、iOS、桌面和 Web 端重用最高 100% 的代码库。 框架采用了刚刚在 Kotlin 1.9.20 中稳定的核心 Kotlin Multiplatform 技术的代码共享功能。

Compose Multiplatform 使用入门

1.5.10 版 Compose Multiplatform 支持 Kotlin 1.9.20,提供了简化的入门流程,引入了新的文档门户并具备下列功能:

这些全面改进大幅简化了 Compose Multiplatform 的采用流程。 现在是开始使用 Compose Multiplatform 进行跨平台开发的绝佳时机,如果您是现有用户,这些改进也将使您的工作更加高效。

更易入门

如果您想深入了解 Compose Multiplatform 和 Kotlin Multiplatform,那么我们有好消息要告诉您:

  • 借助 Kotlin Multiplatform Web 向导,只需点击几下即可轻松创建新项目。 项目包含适用于多个平台的共享逻辑和 Compose Multiplatform UI。
  • 新的入门教程适用于 Android、iOS 和桌面。 这些将引领您快速掌握 Kotlin Multiplatform 和 Compose Multiplatform 的核心概念。
  • Compose Multiplatform 文档已集成至 Kotlin Multiplatform 开发门户,您可以更轻松地获取信息。

您还可以注册参加我们定于 11 月 28 日举办的有关 Compose Multiplatform 入门的在线讲座

通用代码中的新 Material 3 组件

所有 Compose Material 3 组件现在都可以在通用代码中使用。 此版本中添加了 ModalBottomSheetExposedDropdownMenuBoxSearchBarDockedSearchBar 组件,完善了 1.1.2 版 Compose Material 3 中定义的组件集。

以下是在桌面端的显示方式:

桌面端的新组件

以下是在 iOS 和 Android 端的外观:

iOS 端的新组件

Android 端的新组件

iOS 端增强的 TextFields

此版本对 iOS 端的 TextFields 带来多项增强。 新增了 Fast Delete(快速删除)模式,轻点两下和轻点三下的处理得到改进,滚动物理包含“橡皮筋效果”,并且淡入淡出动画提高了互操作性。

  • 从这个版本开始,按住空格键时,新的 Fast Delete(快速删除)模式会在前 21 个字符后激活。 在这种模式下,每次删除都会移除两个单词。 这与默认 iOS 行为一致,也符合用户预期。

iOS 端的 Fast Delete(快速删除)模式

  • 从这个版本开始,在 TextField 中轻点两下和轻点三下始终得到一致处理。 轻点两下将始终选择当前字词,轻点三下则会始终选择整个文本。

iOS 端的轻点两下和轻点三下

  • Compose Multiplatform 1.5.0 引入了对原生滚动物理的支持。 这个版本增加了对大文本字段内过度滚动(“橡皮筋效果”)的支持。 您的 Compose Multiplatform UI 现在将提供 iOS 用户期望的弹性。

iOS 端的橡皮筋效果

UIKit 互操作性的淡入淡出动画

以 iOS 为目标时,Compose Multiplatform 允许您将可组合项嵌入 UIKit 组件层次结构。 这让您能够将 Kotlin UI 组件与现有 Swift 或 Objective-C 微件结合起来。

从这个版本开始,在 UIKit 层次结构中嵌入可组合项时,淡入淡出动画会随着方向转换而应用到屏幕上。 这可以防止组件暂时出现拉伸。

更高的编译速度

在 Kotlin 1.9.20 中,编译器缓存和 Compose Multiplatform 得到兼容。 因此,从这个版本开始,编译器缓存会为使用 Kotlin 1.9.20 编译器的 Compose Multiplatform 应用程序自动启用。 第一次编译之后,所有编译的编译速度都要快得多。

将 Compose Multiplatform 与更低版本的 Kotlin 编译器一起使用时,缓存仍处于禁用状态。 手动将 kotlin.native.cacheKind 设置为 none 会导致 Gradle 编译器插件产生错误,因此请将其移除(如果存在)。

对 K2 编译器的基本支持

在这个版本中,我们在 Compose Multiplatform 中引入了对 K2 编译器的部分支持。 您可以结合使用 Compose Compiler 和 K2 来构建基本应用程序。 预计下一个 CMP 版本将对 K2 提供全面支持,请继续关注。

iOS 端增强的渲染性能

在这个版本中,我们通过消除冗余或过度急切处理的实例提高了 iOS 端的性能。 此外,要在 GPU 上运行以进行渲染的命令在单独的线程中准备。

这些更改意味着在 iOS 上运行的 Compose Multiplatform 应用的丢帧将会减少。 由丢帧引起的卡顿或滞后都将被减少或消除。

新文档门户

新的 Kotlin Multiplatform 开发门户提供了教程、常见问题解答、全新示例和其他实用文档。 因此,Compose Multiplatform 上手过程从未如此简单。

涵盖的主题包括:

Compose Multiplatform 材料与其他多平台文档在专用门户上分组,因此更易查找和使用。 部分文档仍保留在 Compose Multiplatform GitHub 上,但我们的目标是尽快将其转移到新门户。

Compose Multiplatform 使用入门

总结

现在是开始使用 Compose Multiplatform 的最佳时机! 您可以使用 Compose Material 3 微件构建在 Android、iOS、桌面和 Web 端表现一致的美观用户界面。 通过 Kotlin Multiplatform Web 向导,您可以在几分钟内快速开始,新的入门教程将引导您构建第一个 Compose Multiplatform 应用程序。

我们希望您使用 Compose Multiplatform 构建应用程序的体验有趣又有回报。 请提供反馈,告诉我们您的使用体验。 我们邀请您加入 Kotlin Slack #compose 频道,讨论与 Compose Multiplatform 和 Jetpack Compose 相关的一般主题。

更多文章和视频

本博文英文原作者:

Sue

Garth Gilmour

image description

Discover more