做者 / Google 产品总监 Karen Nghtml
Jetpack Compose 是一个现代化的 UI 工具包,旨在帮助开发者经过原平生台 API 简单快捷地在全 Android 平台构建精美应用,它能大幅下降代码量并包含交互式工具,以及使用直观的 Kotlin API,为您的应用增添活力。如今,咱们正式发布 Jetpack Compose 的 Alpha 版本,邀请您体验!android
开发者们经过构建应用演绎价值和实现理想。开发效率的提高离不开三个重要因素: 编程语言、集成开发环境 (IDE) 以及用户界面 (UI) 框架。咱们为你们带来的 Jetpack Compose,目的就是为了让您 (咱们也是!) 能在构建 UI 上更加高效!git
起初,咱们计划经过一系列的 Android Jetpack 开发库解决 Android 开发中最困难、最多见的问题,帮助开发者们在全部的 Android 版本上运行高质量的应用。现在 Google Play 商店排名前一万的应用中,已经有 84% 的应用使用了 Jetpack 库。github
进而,咱们还了解到 Kotlin 深受开发者的喜好,现在在排名前一千名的应用中,有超过 70% 的应用使用了 Kotlin,60% 的专业 Android 开发者都在使用 Kotlin。Google Home 应用使用了 Kotlin 以后,在某些状况下减小了 80% 代码行数,NullPointerExceptions 与过去同期相比减小 33%。还有,多邻国 (Duolingo) 应用使用了 Kotlin 以后,肉眼可见的代码行数平均减小了 30%。编程
最后,咱们经过社区收集到了一些强烈的建议,开发者们但愿可使用一些声明式的 API 来下降 UI 构建的难度。Jetpack Compose 结合刚刚提到的三点优点应运而生——可大规模构建高质量应用的 API、直观的编程语言以及响应式的编程模型。性能优化
Jetpack 的 Hello World微信
Jetpack Compose Alpha 版本 提供了用于构建成熟 Android 应用所需的功能,不只有高效的工具,还能够和现有 Android 视图进行互操做,您无需从新编写您的应用。Compose API 是与一组使用 Material Design 规范的示例应用 一块儿设计和开发的!咱们很高兴发布这些应用!您还能够直接在 Android Studio 中 导入和浏览 最新的示例。app
Alpha 版本发布内容以下: 框架
在与 JetBrains Kotlin 团队 的紧密合做下,咱们也为 Android Studio 4.2 canary 添加了一系列新功能来帮助您使用 Compose 构建应用:编程语言
<iframe src="//player.bilibili.com/player.html?aid=243908273&bvid=BV1Vv411q7Hn&cid=214566113&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
Compose 使用的编程模型与 Android 上现有的构建 UI 的模型彻底不一样。从历史上看,Android 的视图层次结构一直被描述为 UI 组件树。随着 app 状态的变化,须要更新 UI 层次结构来显示当前的数据。更新 UI 最多见的方法是使用像 findViewById() 这样的方法去遍历 UI 组件树,并经过调用相似下面的这些方法来改变节点:
button.setText(String)
container.addView(View)
img.setImageBitmap(Bitmap)
这些方法会改变组件的内部状态。这不只乏味繁琐,并且手动更新视图也会增长出错的可能性 (例如忘记更新视图)。Jetpack Compose 是一种彻底基于声明式组件的方法,这意味着您须要将 UI 描述为将数据转换为 UI 层级结构的函数。当基础数据发生变化时,Compose 框架会自动为您更新 UI 层次结构,从而使您能够轻松快速的构建 UI。
对于现有的项目和代码库来讲,采用任何新的框架都是一个很大的改变,这就是为何咱们把 Compose 设计得和 Kotlin 同样容易采用——它从一开始就能够与现有的 Android 代码彻底互操做。
是否迁移到 Compose 取决于您和您的团队。若是您正在构建一个新的 app,最好的选择多是使用 Compose 来实现 app 的整个 UI 界面。咱们知道大多数人都有大量的现有代码库,能够将 Compose 与现有的 UI 设计结合起来,而无需重写应用。
能够经过如下两种主要的方式将 Compose 与基于视图的 UI 结合起来:
咱们也发布了一个新库 MDC Compose 主题适配器,它可让您在 Compose UI 中复用现有的 Material Components 主题。
要了解更多相关信息,请参阅 Compose for existing apps codelab 或查看如下两个示例:
Android Studio 中包含了辅助您使用 Jetpack Compose 的强大工具,能够帮助您快速迭代 UI 元素。
借助 Compose 布局预览,您能够预览 Compose 组件,而无需将应用部署到设备或模拟器。在开发应用时,您的预览会更新,以帮助您更快地检查变动。要建立布局预览,请编写一个不使用任何参数的 Composable 函数,并添加:
@Preview annotation
完成应用构建后,预览功能的 UI 会出如今 Android Studio 的 Preview 窗格中。
Android Studio 提供了 交互式预览模式 。在交互式预览模式下,您能够在 UI 元素中点击或输入,UI 将会响应,就像是在已安装的应用中同样。
交互式预览工具
您也能够将单个可组合功能部署到物理设备或 Android Emulator。Android Studio 会建立一个新的 Activity,其中包含由将该功能所生成的 UI,并将其部署到您在设备上的应用。这样您就能够实际体验测试 UI,而无需从新安装整个应用或导航到当前页面。
可组合元素预览
要开始使用 Jetpack Compose,请参阅 Compose 教程 并 进行设置。或者直接进入 示例应用 并在 "Compose by Example" 中浏览这些应用:
欢迎访问 Compose 学习计划,了解包括 新增的 Codelab 和扩展文档的更多 Compose 资源。
自咱们 去年 开源 Jetpack Compose 以来,众多开发者为咱们提供了宝贵反馈,使咱们有了今天的成就,感谢你们!
咱们还在提高 API 的稳定性和优化性能,所以目前还不建议您将 Compose 彻底投入到生产环境中。但咱们但愿你们能够试用并向咱们 分享反馈。您也能够加入 Kotlin Slack 的 #compose 频道或在微信留言区与咱们讨论。Compose 1.0 预期将在 2021 年发布。