查看原文
其他

Jetpack Compose Beta 版现已发布!

Android 谷歌开发者 2021-08-05

作者 / 产品经理 Anna-Chiara Bellini、开发者关系工程师 Nick Butcher

  • 腾讯视频链接

    https://v.qq.com/x/page/p3232fjra1n.html

  • Bilibili 视频链接

    https://www.bilibili.com/video/BV1Ey4y1E7Em/


我们已经推出了 Jetpack Compose Beta 版,这是我们的全新 UI 工具包,旨在帮助开发者更快速、更轻松地在所有 Android 平台构建原生应用。Compose 提供了新一代声明式的 Kotlin API,可帮助您以更少的代码构建精美、响应迅速的应用。构建该工具包的目的在于与现有 Android 应用和 Jetpack 开发库集成,您可以将 Android 视图与 Compose 相结合,按照您自己的节奏应用 Compose。


  • Jetpack Compose

    https://developer.android.google.cn/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 Layout
    https://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 Fox
    https://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-inspector
Android Emulator 上的 Live Literals (实时文字)
适用于 Jetpack Compose 的布局检查器


兼容现有应用


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


  • 互操作性文档

    https://developer.android.google.cn/jetpack/compose/interop


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

  • Navigation

  • ViewModel

  • LiveData / Rx / Flow

  • Paging

  • Hilt


  • 集成了常用开发库

    https://developer.android.google.cn/jetpack/compose/libraries


MDC Compose 主题适配器Accompanist 开发库提供了与 MaterialAppCompat XML 主题的集成,因此您无需复制主题定义。Accompanist 还提供了适用于常见图像加载库的封装容器。


  • MDC Compose 主题适配器

    https://github.com/material-components/material-components-android-compose-theme-adapter

  • Accompanist

    https://github.com/chrisbanes/accompanist

  • Material

    https://github.com/material-components/material-components-android-compose-theme-adapter

  • AppCompat

    https://github.com/chrisbanes/accompanist/tree/main/appcompat-theme

  • 图像加载库

    https://github.com/chrisbanes/accompanist/#image-loading



Compose 的编程思想


Jetpack Compose 是一款声明性 UI 工具包,也是当前视图系统的范式转变,您可利用此工具包声明 UI 在任何给定应用状态下的预期外观,而不是如何生成 UI。Compose 会负责在应用状态更改时更新您的 UI,这样您无需操作界面就能使其转变为预期状态,省去了繁琐的流程,并且可以避免出错。


Compose 完全使用 Kotlin 构建,可利用其优秀的语言特性提供功能强大、简洁且直观的 API。例如,借助协程,我们可以编写更简单的异步 API,如描述手势、动画或滚动。这样,我们就能更轻松地编写代码,将异步事件 (如触发动画的手势) 与结构化并发提供的取消和清理相结合。


  • 语言特性

    https://developer.android.google.cn/jetpack/compose/kotlin

  • 协程

    https://developer.android.google.cn/kotlin/coroutines



开始学习 Compose


为了帮助您和团队学习关于 Jetpack Compose 的所有内容,我们更新了学习计划,同时提供了一系列精心规划的视频、Codelab 和重要文档,帮助您入门。我们还发布了全新及更新的文档指南、一些视频演示以及全新的动画 Codelab,帮助您更深入地了解如何使用 Compose 进行构建。我们会提供各种指南来帮助您快速入门,如架构无障碍功能测试相关的指导内容,以及针对动画列表或 Compose 的编程思想的深入探讨。


  • 学习计划
    https://developer.android.google.cn/courses/pathways/compose
  • 文档指南
    https://developer.android.google.cn/jetpack/compose/documentation
  • 动画 Codelab
    https://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
  • readme
    https://github.com/android/compose-samples#-samples


#AndroidDevChallenge: 学习 Compose 并赢取奖品


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


  • #AndroidDevChallenge
    https://developer.android.google.cn/dev-challenge

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


  • 反馈

    https://issuetracker.google.com/issues/new?component=612128&template=1253476

  • Kotlin Slack

    http://slack.kotlinlang.org/



推荐阅读






 点击屏末 | 阅读原文 | 即刻使用 Jetpack Compose 构建应用



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存