Jetpack Compose 更新一览 | 2022 Android 开发者峰会

Jetpack Compose 新功能上线,助力开发者获得更高效、更直观、更有趣的 Android 界面开发体验。

Jetpack Compose 更新一览 | 2022 Android 开发者峰会

作者 / Android 开发者关系工程师 Jolanda Verhoef

去年 Google 发布了 Jetpack Compose,此后一直在进行优化。已添加了新的功能并创造出功能更强大的工具,帮助我们获得更高效、更直观、更有趣的 Android 界面开发体验。如果你正在开发一款新应用,那现在是时候用 Compose 来编写了!这一激动人心的 Compose 版本现可支持 Material Design 3、新的 BOM (Bill Of Materials)、稳定版 Compose for Wear OS 和 Android TV Alpha 版、Compose Camp,以及更多新功能!

社区中的 Compose

去年,Android 团队了解到许多公司在大 规模使用 Compose 进行开发,实现了新功能并将编译界面从 View 迁移至 Compose。例如,Android 团队在与 Lyft 的工程师交谈后得知,他们超过 90% 的新功能代码是用 Compose 编写而成,并且 改用 Compose 能够更加轻松便捷地维护代码。他们还分享道: 我们使用 Compose 在应用中重新编写了按钮组件。在此之前,编写该组件需要在三个文件外加 17 个不同 XML 文件中编写 800 行代码,而现在减少到只需一个 Kotlin 文件和 300 行代码即可完成。单就 Kotlin 代码而言,工作量就减少了 60%。Zepeto 团队同样已在多个功能中使用 Compose,并从中受益,因为 “Compose 简化了我们的界面层逻辑,有助于我们更轻松地理解同事所编写的代码

△ Jetpack Compose 帮助 Lyft 更加轻松便捷地维护代码 | Android 开发故事

很高兴看到这些团队能够缩短开发周期,编写更加简洁易读的界面代码。他们并不是个例。在今年的Google I/O 大会过后,Google Play 上排名前 1,000 的应用中使用 Compose 的数量增加了 50%!为了帮助我们的团队追随 Lyft、Zepeto 和其他团队的脚步,Google 发布了关于 如何在你的团队中采用 Compose 的指南。该指南为我们介绍如何以及从何处着手,并展示了 Compose 能够带来巨大附加价值的开发领域。

Jetpack Compose 2022 年 10 月版发布

现在,Android 开发团队发布了全新的稳定版 Compose,并为我们介绍一些激动人心的功能和最新资讯。

首先,根据用户反馈,Android 开发团队了解到追踪不同工件的版本会让人望而生畏,因为这些工件可能出现在不同的发布时间表中。因此Android 开发团队现将一同发布 Bill of Materials 功能,即 BOM,包含所有 Compose 工件的稳定版本,让我们能够更轻松地使用。

首版 BOM 发布的同时,Compose 2022 年 10 月版也带来了交错网格支持、直接在画布中绘制文本,下拉刷新,同时包含性能改进和问题修复。

Compose BOM

BOM 是一个 Maven 模块,用于声明一组内容库及其版本。这将很大程度上简化我们在 Gradle 依赖项部分定义 Compose 内容库版本的方式,尤其是在Android 开发团队 对不同的 Jetpack Compose 内容库采用独立版本 的情况下。我们不用再单独定义每个版本,这一过程往往繁重且容易在内容库版本出现不同时出错,现在我们只需定义一个 BOM 版本,就能够从中提取所有 Compose 内容库版本。每当 Compose 工件有新的稳定版本时,Android 开发团队就会发布新的 BOM 版本,因此可更轻松地从一个稳定版转移到另一个稳定版。

dependencies {
    // 导入 Compose BOM
    implementation platform('androidx.compose:compose-bom:2022.10.00')

    // 为尚未标明版本的目标 Compose 库声明依赖项
    implementation 'androidx.compose.foundation:foundation'
    androidTestImplementation 'androidx.compose.ui:ui-test-junit4'

    ...
}

Android 开发团队已在 快速入门指南 中增加关于如何添加 Compose BOM 的说明。请注意,我们仍可以选择使用硬编码版本来定义依赖项。添加 BOM 这一实用方式是为了简化依赖项并让升级变得更加容易。

深入了解修饰符

一直以来,Android 开发团队都在幕后努力优化 Compose 性能。Compose 2022 年 10 月版本包括对修饰符工作原理的重大重构。尽管我们可能不会在 API 中注意到任何更改,但此次重构会为修饰符性能的重大改进铺平道路。我们可以通过下方视频详细了解更改背后的基本原理,以及在 ADS 演讲 Compose 修饰符深入研究 中规划的内容。

△ Compose 修饰符深入研究 | 2022 Android 开发者峰会

弹出式窗口和对话框高度更改

无障碍功能始终是 Compose 中至关重要的存在,此版本包含一个行为变更,有助于修复采用弹出式窗口和对话框的无障碍功能错误: 弹出式窗口和对话框的最大高度由 30dp 下降到 8dp。只有在使用高度超过 8dp 的自定义对话框或弹出式窗口时,我们的应用才会受到影响。我们可以参阅 版本说明,了解有关变更的更多详情,比如为临时解决方案覆盖新行为的方法 (请注意,对于自定义弹出式窗口和对话框,Android 开发团队始终推荐高度不超过 8dp)。

新功能

Android 开发团队在 Compose 中添加了许多新功能。部分重要内容如下:

Compose Material 3 稳定版

Jetpack Compose 更新一览 | 2022 Android 开发者峰会

Android 开发团队还推出了 Compose Material 3 内容库 的第一个稳定版本!我们可以使用 Compose 构建应用,并根据 Material Design 的最新版本 Material Design 3 设置主题。使用 Material Design 3 进一步自定义我们应用的颜色、排版和外观,帮助我们的品牌脱颖而出!内容库包含许多界面组件的全新和更新版本,例如按钮、卡片、复选框、开关、导航栏、抽屉式导航栏等,并支持其他即将推出的更新。我们可以前往 官方文档,查看受支持的所有组件列表,也可以在Android 开发团队近期的推文中了解详情。

我们可以查看我们新的 迁移指南,帮助我们使用 Material 3,Android 开发团队在指南中清楚地介绍了如何将 Material 2 概念转化成 Material 3。Android Studio Flamingo 中的默认模板现在会使用 Material 3 来指引我们即时正常运行。Android 开发团队还更新了许多示例应用、教程、模板和 Codelab 以助我们轻松使用 Material 3,方便我们在实践中学习!

新工具

使用 Jetpack Compose 中全新的和已优化的工具可简化应用开发。Android Studio 开发团队在 Android Studio 中添加了大量新功能,帮助我们改进工作流程,提高效率:

最新的稳定版 Android Studio Dolphin 为我们带来如下功能:

  • 动画协调
  • MultiPreview 注释
  • 布局检查器中的重组计数

Android Studio Electric Eel 内含 Beta 版功能,如:

  • 实时编辑 (实验性)
  • 突出显示组合渲染效果
  • 配置预览版设备
  • 预览版中的 Live Updates

Android Studio Flamingo 内含 Canary 版功能,比如:

  • 新项目模板默认使用 Compose 和 Material 3
  • 默认开启实时编辑
  • 改进后的组合跟踪,助我们更好地检查性能问题。

Relay

Android 开发团队还发布了 Relay 的首个 Alpha 版本,作为设计稿转代码的解决方案,可优化设计者与开发者之间的协作。设计者使用 Figma 插件 创建界面组件,开发者则使用 Android Studio 插件 将这些组件自动应用到他们的应用中。生成的组件是可组合函数,并可直接被集成到我们的 Compose 应用中。我们也可以查看 Relay 官方文档,详细了解 Relay。

面向 Wear OS、大屏幕设备和电视的 Compose

Android 开发团队在 7 月发布了首个稳定版 Compose for Wear OS,可随时在生产环境中使用。推荐我们使用 Compose for Wear OS 来为 Wear OS 应用构建界面。Android 开发团队在其中加入了二十余种专为可穿戴设备设计的 Compose 界面组件,如 TimeTextPositionIndicator,以及 ScalingLazyColumn。

他们将持续改进,使其更易于为可折叠设备、平板电脑等大屏幕设备和 ChromeOS 设计、开发和测试 应用material3-window-size-class 内容库已升级为稳定版,为开发者提供了一组可供使用的视口划分点。大屏幕设备设计通常包含交错网格,新增的 LazyHorizontalStaggeredGrid 和 LazyVerticalStaggeredGrid 有助于实现这些网格。

Android 社区的反馈一直推动 Android 开发团队继续向前。他们根据我们的反馈更新了 路线图,更加侧重于能够帮助我们成功使用 Compose 的领域。现在 Android 开发团队正专注于支持更多案例,包括更多 Material 3 组件,改进平台支持、工具和性能。

全新的和更新后的指南

无论你处于学习旅程的哪个阶段,Android 团队都会为你提供帮助!Android 团队新增和优化了有关 Compose 的许多指南:

Compose Camp

Jetpack Compose 更新一览 | 2022 Android 开发者峰会

Compose Camp 是一个由社区组织的全球系列活动,该活动将从九月一直持续到十二月!Compose Camp 同时包含初学者路径和资深者路径,所有水平的开发者均可加入一同学习。活动已在 如火如荼地进行中,全球各地的 GDG 和 GDSC 发布了多支 视频,社区平台也举办了众多活动。

祝你拥有愉快的 Compose 使用体验!

希望你和 Android开发团队一样对这些进展感到兴奋!如果你尚未开始,现在就是学习 Jetpack Compose,并帮助你的团队和开发流程从中受益的最佳时机。准备好体验更快的开发速度和更高的工作效率吧。祝你拥有愉快的 Compose 使用体验!也欢迎你持续关注谷饭网,及时了解更多 Google 相关开发技术和产品更新等资讯动态。

谷饭原创编/译文章,作者:脉脉不得语,转载请注明出处来自谷饭,并加入本文链接: https://www.goofan.com/2022/11/whats-new-in-jetpack-compose-2022/

(0)
脉脉不得语脉脉不得语谷饭作者
上一篇 2022年 11月 22日 下午4:04
下一篇 2022年 11月 23日 上午11:45

相关推荐

wechat
关注微信公众号