JETPACK-COMPOSE-ALPHA- 版现已发布!,字节跳动 Android 实习面试凉凉经
Compose 代码自动补全
Compose 预览注解
部署单个可组合的组件到任何设备上
交互式 Compose 预览
可以生成代码的 Kotlin 编译器插件
适用于 Compose 的示例数据 API
Compose 的编程思想
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 思考:https://youtu.be/SMOhl9RK0BA
与现有 Android 视图完全互操作
对于现有的项目和代码库来说,采用任何新的框架都是一个很大的改变,这就是为什么我们把 Compose 设计得和 Kotlin 一样容易采用——它从一开始就可以与现有的 Android 代码完全互操作。
是否迁移到 Compose 取决于您和您的团队。如果您正在构建一个新的 app,最好的选择可能是使用 Compose 来实现 app 的整个 UI 界面。我们知道大多数人都有大量的现有代码库,可以将 Compose 与现有的 UI 设计结合起来,而无需重写应用。
可以通过以下两种主要的方式将 Compose 与基于视图的 UI 结合起来:
您可以添加 Compose 元素到现有的 UI,或者创建一个全新的基于 Compose 的屏幕,或者是向现有的 fragment 或视图布局中添加 Compose 元素。
您可以将基于视图的 UI 元素添加到可组合的函数中。这样做
《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
可以将不基于 Compose 的组件添加到基于 Compose 的组件中,例如: MapView 或 WebView。
我们也发布了一个新库?MDC Compose 主题适配器,它可以让您在 Compose UI 中复用现有的?Material Components?主题。
要了解更多相关信息,请参阅?Compose for existing apps codelab?或查看以下两个示例:
Crane 示例应用?展示了如何在 Compose 嵌入一个 MapView
观看视频:?将 Compose 加入现有的应用:https://youtu.be/PjQdFmiDgwk
强大的工具
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
要开始使用 Jetpack Compose,请参阅?Compose 教程?并?进行设置。或者直接进入?示例应用?并在 "Compose by Example" 中浏览这些应用:
观看视频:?Compose 示例:https://youtu.be/DDd6IOlH3io
欢迎访问?Compose 学习计划,了解包括?新增的 Codelab?和扩展文档的更多 Compose 资源。
自我们?去年?开源 Jetpack Compose 以来,众多开发者为我们提供了宝贵反馈,使我们有了今天的成就,感谢大家!
我们还在提升 API 的稳定性和优化性能,因此目前还不建议您将 Compose 完全投入到生产环境中。但我们希望大家可以试用并向我们?分享反馈。您也可以加入?Kotlin Slack?的 #compose 频道或在微信留言区与我们讨论。Compose 1.0 预期将在 2021 年发布。需要了解更多,看我主页,个人简介!
总结
作为一名从事 Android 的开发者,很多人最近都在和我吐槽 Android 是不是快要凉了?而在我看来这正是市场成熟的表现,所有的市场都是温水煮青蛙,永远会淘汰掉不愿意学习改变,安于现状的那批人,希望所有的人能在大浪淘沙中留下来,因为对于市场的逐渐成熟,平凡并不是我们唯一的答案!


评论