0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Compose在社区中的反响

谷歌开发者 来源:谷歌开发者 作者:谷歌开发者 2022-05-18 10:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Jetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose:Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏。

Compose 在社区中的反响

我们看到许多公司已经在大规模采纳 Compose 为其应用开发最新、最具创造性的功能。例如,与我们密切合作的 Play 商店团队很早便开始使用 Compose,通过他们我们了解到,使用 Compose 不仅更有趣,且对他们团队生产力的提高也大有助益。Play 商店团队还告诉我们 "Play 商店的所有新功能都建立在该框架之上,Compose 有助于为应用解锁更快的速度以及更顺畅地发布"。与此同时,Twitter 也已经在应用的不同部分使用了 Jetpack Compose 并从中受益,因为 "Compose 让我们更容易定义自己的组件,并使它们的 API 更明确、灵活和直观。"Airbnb 团队同样也采用了 Compose: "Jetpack Compose 是我们技术战略的重要组成部分,生产力因此获得了大幅提高。"

  • 许多公司已经在大规模采纳 Compose
    https://developer.android.google.cn/jetpack/compose/adopt#what-developers-are-saying

  • Twitter
    https://android-developers.googleblog.com/2022/04/twitter-going-all-in-on-jetpack-compose.html

我们很高兴地看到这些团队在大规模和复杂的生产环境中仔细地评估并使用了 Compose,所带来的结果也不仅是让界面开发更清晰有趣,也带来了更多工程上的收益。这只是其中几个案例,因为 Play 商店排名前 1,000 的应用中有超过 100 个正在使用 Compose。

我们在开发过程中始终保持着与这些团队的密切合作,并不断听取广大 Android 社区的反馈,这也是我们推进路线图的关键。如今,我们专注于提供新的 API 和特性改进以支持您实现更高级的需求,这些改进将和新的工具一起助力您更轻松地使用 Compose 构建应用。Compose 从根本上改变了界面的构建方式,为了帮助您实现必要的思维转变,我们将发布更多关于高级主题的指南、演讲和 Codelab,以及更具深度的视频,以便您编写外观和性能同样出色的应用。以下是 Compose 1.2 Beta 版本的新特性:

  • 路线图https://developer.android.google.cn/jetpack/androidx/compose-roadmap

Compose 1.2 Beta

我们在今年的 Google I/O 大会上发布了 Compose 1.2 的第一个 Beta 版本,其中包含了许多特性和改进:https://developer.android.google.cn/jetpack/androidx/releases/compose#versions

文本改进

字体边距

我们在问题跟踪器中定位到了得票最高的问题之一,并通过将 includeFontPadding 设置为自定义参数来解决它。我们推荐您将该值设为 false,因为这会使布局中的文本更精确地对齐。我们计划在未来的版本中将 false 设为默认值。如果将值设为 false 导致您的应用出现问题,请在上述错误报告中告知我们。此外,当 includeFontPadding 被设置为 false 时,您可通过设置 lineHeightStyle 参数来调整 Text 可组合项的行高。两个参数结合使用的效果如下:

0f4118cc-d64c-11ec-bce3-dac502259ad0.png

以多行的 Text 可组合项为例:

左图为设置 includeFontPadding 为 true (当前默认值) 的效果,

右图为设置 includeFontPadding 为 false 且设置了 lineHeightStyle 的效果
Text( text = myText, style = TextStyle(   lineHeight = 2.5.em,   platformStyle = PlatformTextStyle(     includeFontPadding = false   ),   lineHeightStyle = LineHeightStyle(     alignment = Alignment.Center,     trim = Trim.None   ) ))
  • 得票最高的问题之一
    https://issuetracker.google.com/u/0/issues/171394808

可下载字体Compose 1.2 还加入了可下载字体。您可以使用 Compose 的新 API 来异步访问 Google Fonts,甚至还可以定义备用字体,这些操作无需任何复杂的配置。通过可下载字体,您可以保持较小的 APK 文件体积并改善用户的系统运行状况,因为多个应用可通过提供程序共享相同字体。
  • 可下载字体http://developer.android.google.cn/jetpack/compose/text#downloadable-fonts
文本放大镜Android 文本提供了放大镜组件,通过放大镜可以更轻松地选择文本。Compose 现已支持文本放大镜。

0f905fb8-d64c-11ec-bce3-dac502259ad0.png

拖动选择图标时会显示放大镜,以便于您查看指尖下方的内容。Compose 1.1.0 已支持在所选择的文本字段中使用放大镜,Compose 1.2.0 在文本字段和 SelectionContainer 中都支持放大镜。Compose 放大镜也得到了增强以匹配 View 中放大镜的精确行为。

  • SelectionContainerhttps://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/text/selection/package-summary#SelectionContainer(androidx.compose.ui.Modifier,kotlin.Function0)l

布局功能和改进

惰性布局

惰性布局在不断发展,随着网格 API LazyVerticalGridLazyHorizontalGrid 顺利通过实验性使用阶段,我们新增了一个实验性 API——LazyLayout,它允许开发者实现自定义惰性布局。想要了解这些 API 的更多信息,请观看 I/O 大会演讲:Compose 中的惰性布局

  • LazyVerticalGrid

    http://link.gevents.cn/D5dyVH

  • LazyHorizontalGrid

    http://link.gevents.cn/863Hvf

  • LazyLayout
    http://link.gevents.cn/aBMaBU
  • Compose 中的惰性布局
    https://io.google/2022/program/14bb63ef-2dd1-460a-9871-5f51ec1afec9/

与 CoordinatorLayout 互操作从现在起,当您在 View 系统的 CoordinatorLayout 中嵌套了一个支持滚动的可组合项时,您可以确保它们的滚动行为是可互操作的。这让可折叠工具栏的配置变得更加简单。您可以调用新的实验性 API rememberNestedScrollInteropConnection,并将其调用结果传入 nestedScroll 修饰符来启用该行为,可以查看这个示例代码了解更多:https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/NestedScrollInteropSamples.kt

窗口边衬区Accompanist 中的 insets 库现已升级到 Compose Foundation 库中,请改为使用 WindowInsets 类。如需了解更多,请查阅将 Compose 与现有界面集成技术文档:https://developer.android.google.cn/jetpack/compose/interop/compose-in-existing-ui#ime-animations

  • Accompanist 中的 insets 库

    https://google.github.io/accompanist/insets/

  • WindowInsets

    https://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/layout/WindowInsets

窗口大小类

为了更简单地设计、开发以及测试可调整尺寸布局,我们发布了窗口大小类——一组主观的视窗断点。它们现在作为 Material 3 系列库的一部分,在新库 material3-window-size-class 的 alpha 版本中可用。如需了解更多有关窗口大小类的信息,请查阅支持不同屏幕尺寸以及 Crane 中的示例实现

  • material3-window-size-class
    https://developer.android.google.cn/jetpack/androidx/releases/compose-material3

  • 支持不同屏幕尺寸
    https://developer.android.google.cn/guide/topics/large-screens/support-different-screen-sizes#window_size_classes

  • Crane 中的示例实现https://github.com/android/compose-samples/commit/0edb1926ac56c50a188be022c15117c07811fcdf

专注于性能

为帮助您了解和提升应用的性能,我们花费了大量精力为您提供新的性能工具和指南。这些内容可以帮助您更轻松地理解应用可能出现卡顿的原因和位置。

从 Android Studio Dolphin 开始,您可以使用 Layout Inspector 检查可组合项发生重组的频率。预期外的大量重组可以为您指明可优化的可组合项。此外,Android Studio Electric Eel 现已包含一个重组高亮指示器,它是一个视觉辅助工具,可以查看哪些可组合项在何时发生重组。更多关于该新工具的信息请查阅博客 Android Studio 中的新特性:

https://android-developers.googleblog.com/2022/05/whats-new-in-android-studio.html

0fcb53fc-d64c-11ec-bce3-dac502259ad0.png

Layout Inspector 显示重组计数和重组高亮指示器

Compose 从根本上改变了您编写界面的方式,您可以遵循我们发布的最佳实践来确保应用的高性能。例如,您可以通过该文档了解关于如何编写和配置您的 Compose 应用以实现最佳性能的建议。在 I/O 演讲 Jetpack Compose 中常见的性能问题中,Compose 团队介绍了常见的性能错误以及这些错误的解决方法。

  • 文档

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

  • Jetpack Compose 中常见的性能问题

    https://io.google/2022/program/213421b6-9873-464f-9b36-38eeb232a854/

性能是一个需要持续关注的领域,我们正在努力改进并扩展相关工具和指南。同时,我们非常感谢您对我们迄今为止所有工作的反馈。您可以在问题跟踪器中提出您开发中遇到的问题,也可以在 KotlinLang Slack 群组中提问。

  • 问题跟踪器

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

  • KotlinLang Slack

    https://surveys.jetbrains.com/s3/kotlin-slack-sign-up

工具

除了完善 Compose 之外,我们还增加了新工具来帮助您更高效地使用 Compose。Android Studio Dolphin 目前已处于 Beta 阶段,为 Compose 开发带来了非常激动人心的特性。除了重组计数,新工具还包含了能帮助您一次查看和浏览所有动画的 Animation Coordination,以及能帮助您为多个屏幕尺寸构建应用的 MultiPreview 注解。此外为了帮助您快速迭代,Android Studio Electric Eel (Canary 版) 还带来了 LiveEdit 这个新特性。

100734a8-d64c-11ec-bce3-dac502259ad0.gif

  • Android Studio Dolphin
    https://developer.android.google.cn/studio/preview

请查阅 I/O 演讲: Android 开发工具中的新特性以了解所有详细信息,同时我们希望能得到您的反馈,从而塑造更符合您需求的 Compose 工具:

https://io.google/2022/program/8215c766-f097-4b18-bc97-5085d77c4dad/

Compose for Wear OS Beta 版发布

如果有什么比 Compose 更出色,那就是更多更全面的 Compose。因此,我们很高兴见证 Compose for Wear OS 进入 Beta 阶段。遵循与其他 Jetpack 库相同的原则,Beta 意味着它的功能完整且 API 稳定,您可以开始准备为生产环境构建应用。如需了解更多信息,请查阅这篇博客文章:

https://android-developers.googleblog.com/2022/05/announcing-compose-for-wear-os-beta.html

更完善的指南

我们增加并修订了关于 Compose 的一系列指南供您参考和学习:
  • 关于在 Compose 中使用状态的研讨会和改版的 Codelab

  • 研讨会
    https://io.google/2022/program/c9768969-9e81-4865-9dff-29a2ab1201ea/

  • Codelab
    https://developer.android.google.cn/codelabs/jetpack-compose-state

  • 关于 Compose 中基础布局的研讨会和改版的 Codelab

  • 研讨会
    https://io.google/2022/program/05c2523e-be40-4c63-8308-5379b9717a7c/

  • Codelab
    https://developer.android.google.cn/codelabs/jetpack-compose-layouts

  • 全新的 Compose 性能说明文档

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

  • 更新的自定义输入文档

    https://developer.android.google.cn/jetpack/compose/handling-interaction.html

  • I/O 演讲视频:Jetpack Compose 中常见的性能问题以及 Compose 中的惰性布局

  • Jetpack Compose 中常见的性能问题
    https://io.google/2022/program/213421b6-9873-464f-9b36-38eeb232a854/

  • Compose 中的惰性布局
    https://io.google/2022/program/14bb63ef-2dd1-460a-9871-5f51ec1afec9/

  • 对于新手开发者,可查阅 Android 基础课程:使用 Compose

    https://developer.android.google.cn/courses/android-basics-compose/course

Happy Composing!

我们期待您能像我们一样为这些新特性感到兴奋,如果您尚未开始,那么现在正是学习 Jetpack Compose 的好时机,了解它如何适配您的团队和开发过程,这样您便能体验到提高效率和开发者生产力所带来的好处。Happy Composing!

  • Jetpack Composehttp://developer.android.google.cn/jetpack/compose

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2158

    浏览量

    66248
  • 框架
    +关注

    关注

    0

    文章

    404

    浏览量

    18320

原文标题:一起看 I/O | Jetpack Compose 中的新特性

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图扑 HT 驱动智慧社区数字化转型:多维可视化与系统集成实践

    社区管理向数字化、智能化升级的浪潮,图扑软件(Hightopo)依托自主研发的HT for Web 前端可视化技术,构建起覆盖社区全场景的数字孪生智慧
    的头像 发表于 10-31 14:44 212次阅读
    图扑 HT 驱动智慧<b class='flag-5'>社区</b>数字化转型:多维可视化与系统集成实践

    智慧社区智能安全用电消防系统:构建安全可靠的社区用电环境

    随着城市化进程的加快,智慧社区建设已成为提升居民生活品质的重要方向。其中,智能安全用电消防系统作为社区安全的核心组成部分,通过物联网技术与传统用电设备的结合,有效解决了传统用电管理存在的监测滞后
    的头像 发表于 08-28 16:46 1145次阅读

    开放原子旋武开源社区正式成立

    近日,2025开放原子开源生态大会开幕式上,开放原子旋武开源社区正式宣告成立。
    的头像 发表于 07-28 17:01 843次阅读

    开放原子电鸿开源社区正式成立

    能源革命与数字技术深度融合的背景下,我国电力行业开源生态建设迈出关键一步。近日,2025开放原子开源生态大会开幕式上,开放原子电鸿开源社区正式启动,并同步发起“社区十大开源示范案例
    的头像 发表于 07-28 17:00 723次阅读

    飞腾国产工控主板智慧家园的应用有哪些?

    智慧家园是由社区管理机构联合科技企业开发的3D社区网络服务平台,通过三维实景技术与物联网技术整合社区资源。而国产工控主板作为支持智慧家园硬件体系的核心力量,可以将智慧家园的各种生成设
    的头像 发表于 07-23 09:01 307次阅读

    deepin社区正式入驻RuyiSDK开发者社区

    近日,deepin(深度)社区正式入驻 RuyiSDK 开发者社区,双方将紧密协作,共同推动 RISC-V 技术的创新发展!
    的头像 发表于 07-15 09:47 729次阅读

    Docker Compose的常用命令

    大家好,今天给大家分享Docker Compose的常用命令,以及docker-compose文件的属性。Docker Compose 是一个用于定义和运行多容器 Docker 应用应用的重要工具
    的头像 发表于 04-30 13:40 935次阅读

    openKylin社区会员突破1000家

    开源技术驱动全球创新的时代浪潮,OpenAtom openKylin(简称“openKylin”)开源操作系统社区再迎重大里程碑——企业会员突破1000家。此次会员突破1000家,是社区
    的头像 发表于 04-25 13:05 921次阅读

    社区之星】赵云:不要浮躁,沉着稳定,才能做好技术

    电子行业的呢? 兴趣是最好的老师,只有对某个行业感兴趣了,才可能在行业上有所突破、有所成就,之前芯片公司待过一段时间,但是发现自己兴趣点不在这上面,所以转行进入了电子行业。 社区小助手:您对那些想进
    发表于 04-14 16:42

    社区之星】张飞:做技术值不值钱,核心竞争力在于精

    员,建议系统地进行学习。对于已经工作的工程师,可以看碎片式的知识,一般是工作缺啥补啥。叫补差式学习。 社区小助手:作为一名从业多年的工程师,能否分享你的工作经历和一些比较成功的工程项目或优秀作品
    发表于 04-07 15:50

    Jetpack Compose解锁CameraX的强大功能

    本文是 "相机与媒体 Spotlight Week" 系列的内容之一。此系列,我们会提供文章、视频、示例代码等资源,以帮助您提升应用的媒体体验。
    的头像 发表于 02-25 11:50 967次阅读

    详解Jetpack Compose布局流程

    我们与 Android 经典视图系统的生命周期 (Measure,Layout,Drawing) 做一个对比: 组合是 Compose 的特有阶段,是其能够通过函数调用实现声明式 UI 的核心,想要深入理解 Compose 第一课就是理解这个过程。
    的头像 发表于 02-05 13:38 1051次阅读
    详解Jetpack <b class='flag-5'>Compose</b>布局流程

    华为云 Flexus 云服务器 X 实例之 openEuler 系统部署 Docker Compose 管理工具 Dockge

    的 docker-compose.yaml 部署文件时,Dockge 以其精美的设计和易用性脱颖而出,成为不可或缺的管理工具。利用华为云 Flexus 云服务器 X 实例的强大性能, openEuler 系统上部署 Dockge,不仅能够实现对容器应用的精细控制,更能充
    的头像 发表于 01-08 11:41 1015次阅读
    华为云 Flexus 云服务器 X 实例之 openEuler 系统部署 Docker <b class='flag-5'>Compose</b> 管理工具 Dockge

    黄鹤开源社区正式发布

    近日,2024开放原子开发者大会暨首届开源技术学术大会开幕式上,基于开放原子开源基金会旗下AtomGit开源协作平台搭建的黄鹤开源社区正式发布,标志着武汉市开源促进工作进入了一个新的阶段。社区支持
    的头像 发表于 12-23 11:33 992次阅读

    鸿蒙原生开源库ViewPoolOpenHarmony社区正式上线

    近日,由伙伴参与共建的鸿蒙原生开源库“ViewPool”OpenHarmony社区正式上线。这个开发库是基于OpenHarmony技术孵化的成果,充分发挥了平台的技术特性,同时融入了伙伴应用开发
    的头像 发表于 12-20 14:44 853次阅读