Jetpack Compose是Google I/O 2019 发布的Andorid UI框架,它不同于Andorid常见的Xml+命令式Coding的UI开发范式,而是基于Kotlin的DSL实现了一套类似React的声明式UI框架。Jetpack Compose目前仍然处于Alpha版本目标是2020年能够发布稳定的Beta版本。伴随React Native、Flutter等大前端框架的兴起以及Jetpack Compose、SwiftUI等native框架的出现,声明式UI正逐渐成为客户端UI开发的新趋势。
我们在后台和社区等各渠道收到了很多来自开发者们的反馈,也把一些开发者们常见的问题进行了简单的收集和梳理,整理成这一篇关于为折叠屏和大屏幕设备构建应用的常见问题和解答,如果您在构建过程中有任何其他的问题,欢迎通过留言的方式让我们知道。
在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的UI框架,随着了今年安卓和苹果两大移动平台相继推出自己的UI开发框架Jetpack Compose 和SwiftIUI,标志着移动操作系统正式全面拥抱声明式 UI 开发模式。
Jetpack Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速让应用生动而精彩。Compose 使用全新的组件——可组合项 (Composable) 来布局界面,使用 修饰符 (Modifier) 来配置可组合项。
在过去的 12 个月内,有约 1 亿台新平板设备被激活,Chrome OS 的激活量增长了 92%,是增长速度最快的桌面平台。这意味着在平板电脑、可折叠设备和 Chrome OS 设备上,有超过 2.5 亿台大屏幕设备运行着 Android 系统,而关于可折叠设备的使用数量也在不断增长,同比增长超过 250%,因此,"大屏" 正在成为 Android 设备中一个重要且增长势头最快的细分市场。这也让设备制造厂商们意识到,针对大屏做优化是让设备在高端手机细分市场中脱颖而出的机会。
https://www.psvmc.cn/article/2024-04-07-jetpack-compose-ui-adaptation.html
一直以来,在Android 中构建UI页面是一个很耗时的操作,我们需要图形界面和xml去创建布局,通过预览达到我们想要的效果,而Jetpack推出的新组件Compose就解决了这个痛点,下面让我们来了解它,使用它。
在上一篇中,我们不仅了解了 Compose 中的 Column、Row、Box 等几种常见的布局方式 还学习了 CompositionLocal 类在 Compose 中进行传值的方法;还有可快速搭建 App 结构的 Scaffold 脚手架组件,顺便学习了 Surface、Modifier 的一些使用,还有 ConstraintLayout 在Compose 中的使用方法。虽然官方提供了这么多 Compose 组件,但在实际需求开发中,定制化组件仍然必不可少。
Compose 编译后不是转化为原生的 Android 上的 View 去显示,而是依赖于平台的Canvas ,在这点上和 Flutter 有点相似,简单地说可以理解为 Compose 是全新的一套 View 。
上个月,Android 开发者峰会 为 Jetpack Compose 带来了许多 激动人心的更新,包括 Google 的新设计语言 Material You,Compose 现已对其提供支持。若您错过了某些内容,可以通过本文简要了解精彩内容,也可以 点击这里 查看精彩内容视频。
Jetpack Compose 是一个现代化的 UI 工具包,旨在帮助开发者通过原生平台 API 简单快捷地在全 Android 平台构建精美应用,它能大幅降低代码量并包含交互式工具,以及使用直观的 Kotlin API,为您的应用增添活力。现在,我们正式发布 Jetpack Compose 的 Alpha 版本,邀请您体验!
假如页面的宽度是700dp,我们设置minSize = 300.dp,这样它会自动变成两列,每列350dp。
目前,超过 2.5 亿台大屏幕设备搭载了 Android 系统,其中包括平板电脑、可折叠设备和 ChromeOS 设备。仅在过去的 12 个月里,就有近 1 亿台新的 Android 平板电脑被激活,同比增长 20%;而 ChromeOS 的增长率为 92%,是目前增长最快的桌面设备平台。可折叠设备正在崛起,同比增长超过 265%!总的来说,目前有超过 2.5 亿台活跃的大屏幕设备搭载了 Android 系统。在这样的势头下,我们将继续努力让 Android 成为更好的操作系统,为用户和开发者提供更优质的服务。
Jetpack Compose 是响应式 UI 框架。当我们更新 UI 状态时,Compose 会自动刷新 UI,将状态的变化同步到界面上。这个过程是自动的,不需要我们手动调用setText或setColor之类的方法。
我们已经推出了 Jetpack Compose Beta 版,这是我们的全新 UI 工具包,旨在帮助开发者更快速、更轻松地在所有 Android 平台构建原生应用。Compose 提供了新一代声明式的 Kotlin API,可帮助您以更少的代码构建精美、响应迅速的应用。构建该工具包的目的在于与现有 Android 应用和 Jetpack 开发库集成,您可以将 Android 视图与 Compose 相结合,按照您自己的节奏应用 Compose。
Jetpack Compose 提供了强大的 Material Design 组件,其中 TabRow 组件可以用于实现 Material Design 规范的选项卡界面。但是默认的 TabRow 样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式。
做 Android 开发的都知道一个规矩:布局文件的界面层级要尽量地少,越少越好,因为层级的增加会大幅拖慢界面的加载。这种拖慢的主要原因就在于各种 Layout 的重复测量。虽然重复测量对于布局过程是必不可少的,但这也确实让界面层级的数量对加载时间的影响变成了指数级。而 Jetpack Compose 是不怕层级嵌套的,因为它从根源上解决了这种问题。它解决的方式也非常巧妙而简单——它不许重复测量。
这一篇是为了填上一篇学习笔记三中提到的 Compose 也可多次测量的“坑”,那就是固有特性测量。
Row本身是不支持滚动的(Column同理),但是想要滚动的话,可以使用Modifier.horizontalScroll()来实现,代码如下
在今年的 Google I/O 大会上,我们讨论了您的应用如何适配 Android 设备的 各种屏幕尺寸。如果您错过了大会直播,可通过本文了解其中最重要的内容,也可以查看 无缝构建跨设备体验 | Google I/O 大会精彩回顾 视频了解
在前一篇笔记中,我们知道了 Compose 布局的一些基本知识,这篇笔记就来详细看看 Compose 布局吧!还有些 Compose 其他的知识,根据官方的实例,我们边看边说。
作者 / Amanda Alexander, Product Manager, Android
compose正式发布已经一年多了,越来越多的开发人员选择使用它,声明式UI也是未来的一个主流趋势,本人也是一年前学习后,并没有真正的使用,所以本着边学习,边分享的心态,准备写个compose系列的文章 首先compose目前只支持kotlin,基于google对移动端的鸿图,未来应该也不会支持其他语言,和传统安卓的xml布局不同,compose是通过kotlin定义一个一个组件,由于是通过代码定义的组件,每个组件都可以很方便的重用,这点在UI开发时确实便利了不少。至于声明式UI和命令式UI的区别,相信你会在后续实际使用时有很大的感触
Jetpack Compose 将动画实现的门槛降低了——从 "如果有时间再慢慢打磨" 到 "动画实现很简单,没有理由不试试看了"。这里有个很大的课题是页面级的过渡动画,这也是 Navigation Compose 一直致力解决的问题,具体是满足下面三种场景:
Jetpack Compose 是用于构建原生 Andorid 界面的新工具包,Compose 使用了更少的代码,强大的工具和直观的 Kotlin Api 简化并且加快了 Android 上界面的开发。
为了包含 Jetpack Compose 1.0.0-beta05 的更新内容,这篇文章在第一次发布后做出了更新。如果您希望查看 原始版本,请点击 这里。
Material You 是下一代 Material Design 的发展方向,也是一种全新的设计愿景: 方便您打造个性化的样式设计、满足各种需求并自适应各种屏幕;Jetpack Compose 是用于构建原生 Android 界面的新款现代工具包,可以帮助您更快地构建更出色的应用。
欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。
Jetpack 的Site Accelerator站点加速器(前身为 Photon,注意:“Photon”现在是站点加速器的一部分)允许 Jetpack 优化图像并通过他们的全球服务器网络CDN提供图片和静态文件(如CSS 和 JavaScript),进而帮助您更快地加载页面。
不久前,谷歌正式推出Jetpack Compose 1.0 版本。近日,JetBrains 在此基础上发布了 Compose Multiplatform Alpha 版本,旨在将 Compose 扩展到桌面和 Web 端。
作者 / Florina Muntenescu, Android Developer Advocate
目前为止,我们只在 Android 开发中看到 Jetpack Compose[2]。今天,我们将进入一个崭新的阶段,因为 JetBrains 宣布了 IntelliJ 的早期访问版本,允许你使用 Jetpack Compose 来构建 Windows 应用程序。
2020年11月5日 Jetpack Compose for Desktop 终于发布了第一个里程碑版本,作为新一代的 Kotlin UI 框架,Jetpack Compose 可快速地构建高性能和美观的用户界面。
前段时间刚在公众号上分享了一篇关于 Jetpack Compose动画 的文章,看到了评论区有这样一条留言。
此前我更新了Jetpack Architecture系列的文章,如果你还不了解Jetpack,可以移步至 Android JetPack系列文章 ,持续更新中
历时两年,Android 团队推出了全新的原生 Android 界面 UI 库——Compose。当然,Compose 也是属于 Jetpack 工具库中的一部分,官方宣称可以简化并加快 Android 上的界面开发,可以用更少的代码去快速打造生动而精彩的应用。1.0 版本就在上个月底刚刚发布,而且可以在生产环境中使用!不管咋样,先上手看一看!
作者 / Maru Ahues Bouza, Director, Android Developer Relations
作者 / Google Play 技术负责人 Andrew Flynn 和 Jon Boekenoogen
JetBrains 提供了 Kotlin Multiplatform 的首个稳定版本,支持跨 iOS、Android、桌面、Web 和服务器进行代码共享——尽管用于共享用户界面(UI)代码的部分,Compose Multiplatform,仅适用于 Android 和桌面。
注意,Jetpack Compose中的控件被定义成一个一个的可组合函数,官方称这些控件为Composable,翻译成中文是“可组合项”,当强调它作为一个界面的一部分出现时,我会使用“控件”或“元素”之类的术语,要注意这三者之间的差别,我不知道有没有更好的词,所以我只能用这两个。当仅仅强调它是一个可组合项时,我会正常使用“可组合项”这个术语。 Layout系统
每年9/10月份 Google 都会举行为期约2天的 Android Dev Summit,在活动上 Google 的技术专家们会分享一些 Android 领域的技术动向以及开发心得。
Compose 能应用于跨平台,主要是基于 KMM 架构,KMM 的介绍可以查看官方文档《Get started with Kotlin Multiplatform Mobile[1]》,我们来看下 KMM 的简单架构:
编译|核子可乐、燕珊 不久前,谷歌正式推出 Jetpack Compose 1.0 版本。近日,JetBrains 在此基础上发布了 Compose Multiplatform Alpha 版本,旨在将 Compose 扩展到桌面和 Web 端。 Compose Multiplatform 由 Compose for Desktop 和 Compose for Web 组成,通过 Kotlin Multiplatform 支持许多不同的平台。其中,Compose Desktop 采用 Google 的 Sk
Jetpack Compose 作为 Android 的新一代 UI 开发框架,提供了非常强大的工具来构建用户界面。
Jetpack Compose 提供了一系列用于构建用户界面的布局组件,这些组件可以帮助您创建各种复杂的布局结构。
前面几篇笔记讲了那么多内容,都是基于静态界面的展示来说的,即给我一个不变的数据,然后将它展示出来。如何在 Compose 中构建一个随数据而变化的动态界面呢?相信看完这篇就知道了。
Jetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏。
在往期 #11WeeksOfAndroid 系列文章中我们介绍了 联系人和身份 、隐私和安全 、 Android 11 兼容性 、 开发语言 、 Jetpack ,本期将聚焦 Android 开发者工具 。我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。
声明式 UI 的大哥 Flutter 已经出道很久了,再学习 Compose 还有意义吗?Flutter 还是 Compose?先抛出我的结论:如果你想运用到实际的生产环境中,Flutter 肯定是更好的选择,因为更多的人帮你踩过了坑。如果你想 Kotlin 一把梭,只是学习尝鲜,结合 Jetpack Compose 可以很好的作为你的技术储备。简单的聊聊 Compose 中还不错的地方:
随着Jetpack Compose首个Beta版的发布,Google在上周四的时候发起了一个Android开发挑战赛的活动。
领取专属 10元无门槛券
手把手带您无忧上云