Jetpack Compose
Jetpack Compose 是由谷歌开发的一个开源的、适用于使用 Kotlin 语言进行跨平台软件开发的响应式编程用户界面框架。该框架的首次预览版本于 2019 年 5 月发布,而正式版本则于 2021 年 7 月推出。
Jetpack Compose 中,用户界面是通过使用带有@Composable这样的注释来定义的,这样的函数被称为“可组合函数”,它们的作用是定义屏幕的状态。Jetpack Compose 利用 Kotlin 编译器插件将可组合函数转化为实际的 UI 元素。例如,以下代码定义了一个简单的 UI 元素:
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name")
}
历史
[编辑]Jetpack Compose 的首个预览版本于 2019 年 5 月的 Google I/O 大会上发布。开发者预览版在 2019 年 10 月推出,而 alpha 版本则于 2020 年 8 月正式发布。
2021 年 2月进入beta 阶段,首个正式版本于同年 7月发布。
特点
[编辑]Jetpack Compose 支持 Android 5.0 及更高版本的操作系统。它使用 Kotlin 编程语言,并提供了类似于 Flutter、Vue.js 和 React Native 等 UI 框架中的响应式编程模型。Compose 设计用于与现有的 Android 应用程序和库无缝集成,使得开发者可以逐步将他们的应用程序迁移到 Compose 框架上。
在 Compose 中,用户界面是通过使用了 @Composable 注解的函数来定义的,这类函数被称为可组合函数,它们用于定义屏幕的状态。该注解由 Compose 编译器使用,来生成所需的 UI 模版代码。当状态发生更新时,系统会使用新数据再次调用这些可组合函数,从而导致它们发出的控件被重新绘制,这一过程被称为重组。重组只会针对需要更新的可组合函数执行,从而提升了 UI 的运行效率。
1.0 版本引入了 Compose 预览功能,这一功能从 Android Studio 的 Arctic Fox 版本开始就内置在了系统中。用户可以通过不同的配置来预览组合组件,而无需将应用部署到实际设备上进行测试。
Jetpack Glance 是一个基于 Jetpack Compose 的框架,用于开发 Android 应用程序的小部件。 Glance 的第一个稳定版本发布于 2023 年 9 月。
2024 年 9 月,用于使用 Material 3 构建自适应 UI 的 Jetpack Compose API 的 1.0 稳定版本正式发布。
使用
[编辑]当 Jetpack Compose 1.0 发布时,谷歌表示:“目前,Play 商店中有超过 2000 个应用程序使用了 Compose 技术——实际上,甚至 Play 商店应用程序本身也采用了 Compose 技术。” 截至 2022 年 10 月,Play 商店排名前 1000 的应用程序中有 16%使用了 Compose 技术。这些应用程序来自 Airbnb、Lyft 和 Square 等公司。 到了 2024 年 5 月,这一比例上升到了 40%。
在 2022 年,谷歌详细介绍了其如何通过 Jetpack Compose 来重构 Play 商店应用程序。他们表示:“使用 Jetpack Compose 编写用户界面所需的代码量有时减少了 50%左右”,同时开发者们还能提升应用程序的性能。 谷歌在 Android 14 版本中利用 Jetpack Compose 重新编写了 Android 设置应用程序的部分功能。 Meta Platforms在五个月内使用 Jetpack Compose 开发了其 Threads 社交媒体应用程序。 而 Instagram for Android 也是通过 Jetpack Compose 来编写的。
关于跨平台(Compose Multiplatform)
[编辑]Compose Multiplatform 是一种由 JetBrains 开发的跨平台 UI 框架,基于 Jetpack Compose 构建。该框架相比 Jetpack Compose ,移植添加了 Windows、macOS、Linux 以及 Web 平台。版本 1.0 alpha 版于 2021 年 8 月发布。2023 年 5 月,该框架增加了对 iOS 平台的支持。