Jetpack Compose Beta 版现已发布!

作者 / 产品经理 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
Android Emulator 上的 Live Literals (实时文字)
适用于 Jetpack Compose 的布局检查器

兼容现有应用

Jetpack Compose 旨在与 Android 视图无缝协作,便于您按照自己的节奏应用该工具包。您可以在 Android 视图中嵌入 Compose UI,并在 Compose 中使用视图。我们在 互操作性文档 中提供了多种应用策略。

除了视图互操作性,我们还 集成了常用开发库,帮助您将 Compose 添加到现有应用中,而无需重写或重新设计应用。我们提供与下列组件的集成:

  • Navigation
  • ViewModel
  • LiveData / Rx / Flow
  • Paging
  • Hilt

MDC Compose 主题适配器Accompanist 开发库提供了与 MaterialAppCompat 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,了解更多详情。

8 个 官方示例应用

#AndroidDevChallenge: 学习 Compose 并赢取奖品

如果您已准备好开始学习 Compose,并想在学习过程中赢取一些奖品,请查看 #AndroidDevChallenge。我们发起了一系列的 每周挑战,帮助您对 Jetpack Compose 形成自己的见解,从而顺利完成项目。欢迎您持续关注 "谷歌开发者" 公众账号,及时了解 最新一周 的挑战内容,积极参与,赢取包括 Google Pixel 5 在内的 1,000 多份奖品吧!第二周挑战正在进行中,点击此处 了解详情。

随着 Jetpack Compose Beta 版的推出,针对 1.0 版的稳定 API 和功能均已构建完成。现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来的项目中使用该工具包。我们期待收到您对在应用中采用 Compose 的 反馈,您也可以在 Kotlin Slack 的 #compose 频道中参与讨论或在下方留言区和我们分享。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容