我们已经推出了 Jetpack Compose Beta 版,这是我们的全新 UI 工具包,旨在帮助开发者更快速、更轻松地在所有 Android 平台构建原生应用。Compose 提供了新一代声明式的 Kotlin API,可帮助您以更少的代码构建精美、响应迅速的应用。构建该工具包的目的在于与现有 Android 应用和 Jetpack 开发库集成,您可以将 Android 视图与 Compose 相结合,按照您自己的节奏应用 Compose。
-
Jetpack 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 管理
-
动画https://developer.android.google.cn/codelabs/jetpack-compose-animation
-
互操作性https://developer.android.google.cn/jetpack/compose/interop
-
Material UI 组件http://material.io/blog/jetpack-compose-beta
-
Constraint Layouthttps://developer.android.google.cn/jetpack/compose/layout#contraintlayout
此 Beta 版工具包的开发重点在于确保 API 的完成度;换言之,所有基础 API 均已构建完成,我们能够在此基础上,继续针对 1.0 及更高版本进行构建。在推出 1.0 版之前,我们将致力于保证这些 API 的稳定性,并重点关注应用性能和无障碍功能。
Compose Beta 版已得到最新的 Android Studio Arctic Fox Canary 版支持,后者提供了很多新工具:
-
🆕 Live Literals (实时文字): 在预览 (Preview) 及设备或模拟器上实时更新文字
-
🆕 动画预览: 检查并播放动画
-
🆕 布局检查器中的 Compose 支持
-
🆕 交互式预览: 检查并与单独的 Composable 交互
-
🆕 部署预览: 无需完整应用即可在您的设备上部署 Composable
-
Android Studio Arctic Foxhttps://developer.android.google.cn/studio/preview
-
新工具https://developer.android.google.cn/jetpack/compose/tools
-
动画预览https://developer.android.google.cn/jetpack/compose/animation#tooling
-
布局检查器中的 Compose 支持https://developer.android.google.cn/studio/preview/features#compose-layout-inspecto
-
Android Emulator 上的 Live Literals (实时文字)
适用于 Jetpack Compose 的布局检查器
兼容现有应用
Jetpack Compose 旨在与 Android 视图无缝协作,便于您按照自己的节奏应用该工具包。您可以在 Android 视图中嵌入 Compose UI,并在 Compose 中使用视图。我们在互操作性文档中提供了多种应用策略。
除了视图互操作性,我们还集成了常用开发库,帮助您将 Compose 添加到现有应用中,而无需重写或重新设计应用。我们提供与下列组件的集成:
-
Navigation
-
ViewModel
-
LiveData / Rx / Flow
-
Paging
-
Hilt
-
集成了常用开发库
https://developer.android.google.cn/jetpack/compose/libraries
MDC Compose 主题适配器和 Accompanist 开发库提供了与 Material 和 AppCompat XML 主题的集成,因此您无需复制主题定义。Accompanist 还提供了适用于常见图像加载库的封装容器。
-
MDC Compose 主题适配器
https://github.com/material-components/material-components-android-compose-theme-adapter
-
Accompanist
-
Material
https://github.com/material-components/material-components-android-compose-theme-adapter
-
AppCompat
https://github.com/chrisbanes/accompanist/tree/main/appcompat-theme
-
图像加载库
Compose 的编程思想
Jetpack Compose 是一款声明性 UI 工具包,也是当前视图系统的范式转变,您可利用此工具包声明UI 在任何给定应用状态下的预期外观,而不是如何生成 UI。Compose 会负责在应用状态更改时更新您的 UI,这样您无需操作界面就能使其转变为预期状态,省去了繁琐的流程,并且可以避免出错。
Compose 完全使用 Kotlin 构建,可利用其优秀的语言特性提供功能强大、简洁且直观的 API。例如,借助协程,我们可以编写更简单的异步 API,如描述手势、动画或滚动。这样,我们就能更轻松地编写代码,将异步事件 (如触发动画的手势) 与结构化并发提供的取消和清理相结合。
-
语言特性
-
协程
开始学习 Compose
为了帮助您和团队学习关于 Jetpack Compose 的所有内容,我们更新了学习计划,同时提供了一系列精心规划的视频、Codelab 和重要文档,帮助您入门。我们还发布了全新及更新的文档指南、一些视频演示以及全新的动画 Codelab,帮助您更深入地了解如何使用 Compose 进行构建。我们会提供各种指南来帮助您快速入门,如架构、无障碍功能和测试相关的指导内容,以及针对动画、列表或 Compose 的编程思想的深入探讨。
- 学习计划https://developer.android.google.cn/courses/pathways/compose
- 文档指南https://developer.android.google.cn/jetpack/compose/documentation
- 动画 Codelabhttps://developer.android.google.cn/codelabs/jetpack-compose-animation#0
- 架构https://developer.android.google.cn/jetpack/compose/architecture
- 无障碍功能https://developer.android.google.cn/jetpack/compose/accessibility
- 测试https://developer.android.google.cn/jetpack/compose/testing
- 动画https://developer.android.google.cn/jetpack/compose/animation
- 列表https://developer.android.google.cn/jetpack/compose/lists
- Compose 的编程思想https://developer.android.google.cn/jetpack/compose/mental-model
我们还提供了 8 个官方示例应用,方便您直接开始使用并了解 Compose 的实际应用。这些示例从简单到复杂,每个都会展示不同的 API 和用例。请参阅 readme,了解更多详情。
- 官方示例应用https://github.com/android/compose-samples
- readmehttps://github.com/android/compose-samples#-samples
图片
#AndroidDevChallenge: 学习 Compose 并赢取奖品
如果您已准备好开始学习 Compose,并想在学习过程中赢取一些奖品,请查看#AndroidDevChallenge。我们发起了一系列的每周挑战,帮助您对 Jetpack Compose 形成自己的见解,从而顺利完成项目。欢迎您持续关注 "谷歌开发者" 公众账号,及时了解最新一周的挑战内容,积极参与,赢取包括 Google Pixel 5 在内的 1,000 多份奖品吧!第二周挑战正在进行中,点击此处了解详情。
随着 Jetpack Compose Beta 版的推出,针对 1.0 版的稳定 API 和功能均已构建完成。现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来的项目中使用该工具包。我们期待收到您对在应用中采用 Compose 的反馈,您也可以在 Kotlin Slack 的 #compose 频道中参与讨论或在下方留言区和我们分享。
最后
为了让大家更好的去学习和提升自己,我和几位大佬一起收录整理的 Flutter进阶资料以及Android学习PDF+架构视频+面试文档+源码笔记 ,并且还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料……
这些都是我闲暇时还会反复翻阅的精品资料。可以有效的帮助大家掌握知识、理解原理。当然你也可以拿去查漏补缺,提升自身的竞争力。
如果你有需要的话,可以前往 GitHub 自行查阅。