作者 / 产品经理 Anna-Chiara Bellini、开发者关系工程师 Nick Butcher
我们已经推出了 Jetpack Compose Beta 版,这是我们的全新 UI 工具包,旨在帮助开发者更快速、更轻松地在所有 Android 平台构建原生应用。Compose 提供了新一代声明式的 Kotlin API,可帮助您以更少的代码构建精美、响应迅速的应用。构建该工具包的目的在于与现有 Android 应用和 Jetpack 开发库集成,您可以将 Android 视图与 Compose 相结合,按照您自己的节奏应用 Compose。
在此 Beta 版中,Compose 的 API 均已构建完成,并具备构建生产可用的应用中所需的全部功能。Beta 版也意味着其 API 已相对稳定,因此我们不会更改或移除 API。时机正好,不妨趁现在开始学习 Compose,并着手规划今年 1.0 版发布之后,您将如何在接下来的项目或功能中使用该工具包。
Beta 版功能一览
我们的团队一直以公开方式开发 Compose,并得到社区的积极参与和反馈。自 2019 年开源以来,我们已发布了 30 个公开版本,解决了 700 余个 Bug 反馈,并采纳了 200 余项外部贡献。我们期待看到您使用 Compose 构建的内容, 并根据您的反馈和功能请求来优化我们的 API,并确定我们工作方向的优先级。自 Alpha 版推出以来,我们添加并改进了多项新功能:
- 协程支持
- Talkback 无障碍功能支持: 对其他技术的支持将在稳定版中发布
- 易于使用的 动画,以及 Alpha 版推出后发布的全新 API
- 与视图的 互操作性
- Material UI 组件,全部附带示例代码
- 懒加载列表: Jetpack Compose 中新增 RecyclerView
- 基于 DSL 的 Constraint Layout
- 修饰符
- 测试
- 主题和图形,可轻松支持深色/浅色模式
- 输入和手势
- 文本和可编辑文本
- Window 管理
此 Beta 版工具包的开发重点在于确保 API 的完成度;换言之,所有基础 API 均已构建完成,我们能够在此基础上,继续针对 1.0 及更高版本进行构建。在推出 1.0 版之前,我们将致力于保证这些 API 的稳定性,并重点关注应用性能和无障碍功能。
Compose Beta 版已得到最新的 Android Studio Arctic Fox Canary 版支持,后者提供了很多 新工具:
- Live Literals (实时文字): 在预览 (Preview) 及设备或模拟器上实时更新文字
- 动画预览: 检查并播放动画
- 布局检查器中的 Compose 支持
- 交互式预览: 检查并与单独的 Composable 交互
- 部署预览: 无需完整应用即可在您的设备上部署 Composable
兼容现有应用
Jetpack Compose 旨在与 Android 视图无缝协作,便于您按照自己的节奏应用该工具包。您可以在 Android 视图中嵌入 Compose UI,并在 Compose 中使用视图。我们在 互操作性文档 中提供了多种应用策略。
除了视图互操作性,我们还 集成了常用开发库,帮助您将 Compose 添加到现有应用中,而无需重写或重新设计应用。我们提供与下列组件的集成:
- Navigation
- ViewModel
- LiveData / Rx / Flow
- Paging
- Hilt
MDC Compose 主题适配器 和 Accompanist 开发库提供了与 Material 和 AppCompat XML 主题的集成,因此您无需复制主题定义。Accompanist 还提供了适用于常见 图像加载库 的封装容器。
Compose 的编程思想
Jetpack Compose 是一款声明性 UI 工具包,也是当前视图系统的范式转变,您可利用此工具包声明 UI 在任何给定应用状态下的预期外观,而不是如何生成 UI。Compose 会负责在应用状态更改时更新您的 UI,这样您无需操作界面就能使其转变为预期状态,省去了繁琐的流程,并且可以避免出错。
Compose 完全使用 Kotlin 构建,可利用其优秀的 语言特性 提供功能强大、简洁且直观的 API。例如,借助 协程,我们可以编写更简单的异步 API,如描述手势、动画或滚动。这样,我们就能更轻松地编写代码,将异步事件 (如触发动画的手势) 与结构化并发提供的取消和清理相结合。
开始学习 Compose
为了帮助您和团队学习关于 Jetpack Compose 的所有内容,我们更新了 学习计划,同时提供了一系列精心规划的视频、Codelab 和重要文档,帮助您入门。我们还发布了全新及更新的 文档指南、一些视频演示以及全新的 动画 Codelab,帮助您更深入地了解如何使用 Compose 进行构建。我们会提供各种指南来帮助您快速入门,如 架构、无障碍功能 和 测试 相关的指导内容,以及针对 动画、列表 或 Compose 的编程思想 的深入探讨。
我们还提供了 8 个 官方示例应用,方便您直接开始使用并了解 Compose 的实际应用。这些示例从简单到复杂,每个都会展示不同的 API 和用例。请参阅 readme,了解更多详情。
#AndroidDevChallenge: 学习 Compose 并赢取奖品
如果您已准备好开始学习 Compose,并想在学习过程中赢取一些奖品,请查看 #AndroidDevChallenge。我们发起了一系列的 每周挑战,帮助您对 Jetpack Compose 形成自己的见解,从而顺利完成项目。欢迎您持续关注 "谷歌开发者" 公众账号,及时了解 最新一周 的挑战内容,积极参与,赢取包括 Google Pixel 5 在内的 1,000 多份奖品吧!第二周挑战正在进行中,点击此处 了解详情。
随着 Jetpack Compose Beta 版的推出,针对 1.0 版的稳定 API 和功能均已构建完成。现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来的项目中使用该工具包。我们期待收到您对在应用中采用 Compose 的 反馈,您也可以在 Kotlin Slack 的 #compose 频道中参与讨论或在下方留言区和我们分享。