[Android翻译]宣布Jetpack Compose Alpha!

9,232 阅读6分钟

原文地址:android-developers.googleblog.com/2020/08/ann…

原文作者:twitter.com/karenkayliu

发布时间:2020年8月26日

今天,我们发布了Jetpack Compose的alpha版本,这是我们的现代UI工具包,旨在帮助您在所有Android平台上快速、轻松地构建漂亮的应用程序,并可本地访问平台API。用更少的代码、交互式工具和直观的Kotlin API将您的应用程序变为现实。

无论您在哪里工作--无论您是在厨房的桌子上还是在办公室,我们都知道您需要一门编程语言、一个IDE和一个强大的UI框架,以节省您的时间并减少您需要编写的代码量。因此,我们打造了Jetpack Compose,让你(和我们!)在构建UI方面更有效率。

我们从Android Jetpack开始--将Android上最困难、最常见的开发者问题,创建了一套库,以确保在所有版本的平台上都能运行的高质量应用。如今,Play商店中排名前10,000的应用中,有84%的应用都在使用Jetpack库。

然后,我们听到了开发者是如何热爱Kotlin的,如今前1000名应用中超过70%的应用和60%的专业Android开发者都在使用Kotlin。Google Home应用在某些情况下,通过使用Kotlin减少了80%的代码行数,NullPointerExceptions也比过去类似时期减少了33%。Duolingo,平均减少了30%的行数。

最后,我们听到了来自社区的强烈反馈,即开发者喜欢声明式API构建UI的简单性。Jetpack Compose结合了以上三点。用于大规模高质量应用的API,直观的语言,以及反应式编程模型。

Jetpack Compose: 现在在Alpha中

Jetpack Compose Alpha 提供了您构建成熟的 Android 应用程序所需的功能,包括强大的工具和与现有 Android 视图的互操作性,因此您不需要重新编写您的应用程序。Compose API 是与我们今天很高兴发布的一套使用 Material Design 的规范示例应用程序携手设计和开发的!你可以直接导入和探索最新的示例。你也可以直接在Android Studio中导入和探索最新的样本。

该alpha版本包括

  • 动画
  • 约束布局
  • 对A11Y的初步支持
  • 输入和手势
  • 与View的互操作性(开始在您现有的应用程序中混合Composable功能)。
  • 懒人名单
  • 材料UI组件
  • 性能优化
  • 测试
  • 文本和可编辑文本
  • 绘图和图形
  • 窗口管理

我们还与JetBrains Kotlin团队紧密合作,在Android Studio 4.2 canary中加入了许多新功能,帮助你用Compose构建应用。

  • 编写代码完成
  • 撰写预览注释
  • 在任何设备上部署单独的可组合部件
  • 交互式创作预览
  • 用于生成代码的Kotlin编译器插件
  • Compose的数据API样本

www.youtube.com/watch?v=U5B…

思维在Compose中

Compose使用的编程模型与Android上现有的构建UI的模型完全不同。从历史上看,Android的视图层次结构一直被表示为一棵UI部件的树。随着应用程序的状态变化,需要更新UI层次结构以显示当前的数据。更新UI最常见的方法是使用findViewById()等函数走树,并通过调用以下方法改变节点。

button.setText(String) 
container.addView(View) 
img.setImageBitmap(Bitmap) 

这些方法会改变小组件的内部状态。这不仅会很乏味,而且手动更新视图也会增加出错的可能性(例如忘记更新视图)。 Jetpack Compose是一种完全基于声明式组件的方法,这意味着您将您的UI描述为将数据转化为UI层次结构的函数。当底层数据发生变化时,Compose框架会自动为您更新UI层次结构,从而使您可以轻松快速地构建UI。

www.youtube.com/watch?v=SMO…

与现有的 Android 视图完全对接

对于现有的项目和代码库来说,采用任何新的框架都是一个很大的改变,这就是为什么我们将 Compose 设计成和 Kotlin 一样易于采用的原因--它从第一天起就可以与现有的 Android 代码完全互操作。

迁移到 Compose 取决于你和你的团队。如果你正在构建一个新的应用程序,最好的选择可能是用 Compose 实现整个 UI。我们知道,你们中的大多数人都有庞大的现有代码库,所以与其重写你的应用程序,不如将 Compose 与你现有的 UI 设计相结合。

有两种主要方式可以将 Compose 与基于视图的 UI 结合起来。

  • 你可以将 Compose 元素添加到你现有的 UI 中,可以通过创建一个全新的基于 Comose 的屏幕,或将 Compose 元素添加到现有的片段或视图布局中。
  • 您可以将基于视图的 UI 元素添加到您的可组合功能中。这样做可以让你在基于Compose的设计中添加非Compose的部件,如MapView或WebView。

我们还发布了一个新的库,MDC Compose Theme Adapter,它允许您在Compose UI中重用现有的Material Components主题。

要了解更多信息,请尝试 Compose for existing apps codelab 或查看这两个样本。

  • Tivi向日葵是正在与 Compose 集成的现有应用程序。
  • Crane示例应用程序,在Compose中嵌入一个MapView。

www.youtube.com/watch?v=PjQ…

强大的工具

Jetpack Compose是在Android Studio中建立的强大工具,旨在帮助您快速迭代您正在开发的UI。

Compose布局预览使您能够预览您的Compose组件,而无需将您的应用程序部署到设备或模拟器。当你开发应用程序时,你的预览会更新,以帮助你更快地查看你的更改。要创建布局预览,请编写一个不接受任何参数的可组合函数,并在其中添加

@Preview annotation 

在你构建完你的应用程序后,预览功能的UI会出现在Studio的预览窗格中。

Android Studio提供了一个交互式预览模式。当你处于交互式预览模式时,你可以点击或键入你的UI元素,UI就会像在安装的应用中一样做出反应。

您还可以将单个可合成的功能部署到您的物理设备或Android模拟器上。Android Studio会创建一个新的活动,其中包含由该功能生成的UI,并将其部署到设备上的应用程序。这让您可以在实际设备上试用用户界面,而无需重新安装整个应用程序或导航到其位置。

开始使用Jetpack Compose

要开始使用Jetpack Compose,请尝试Compose教程进行设置。或者直接进入示例应用程序,并在 "Compose by Example "中浏览这些应用程序。

www.youtube.com/watch?v=DDd…

要找到一套全面的 Compose 资源,包括新的代码实验室和扩展的文档,请看 Compose 途径

自从我们去年开源Jetpack Compose以来,你们中的许多人给了我们宝贵的反馈,记录了错误,或贡献了CL,使我们有了今天的成就。谢谢你们!

Compose还没有被推荐用于全面生产,特别是在我们努力实现API稳定性和完成性能优化的时候,但我们希望你能尝试一下并分享反馈。在Kotlin Slack的#compose频道加入我们的讨论。Compose 1.0预计将于2021年推出。

祝你作曲愉快!


通过www.DeepL.com/Translator (免费版)翻译