一起看 I/O | Compose for Wear OS Beta 版发布!

作者 / Kseniia Shumelchyk, Developer Relations Engineer & John Nichol, Tech Lead of Compose for Wear OS

我们正式发布了 Compose for Wear OS 的 Beta 版,这是我们的现代声明式用户界面工具包,旨在帮助开发者为 Wear OS 构建精美的用户体验。

Compose for Wear OS 增加了为手表优化的组件,这些组件均基于 Wear OS 的最新 Material 设计规范,且建立在核心 Compose 库之上。工具包充分活用了 Modern Android Development (现代 Android 开发),以加速整体开发进程。

在 Beta 版发布后,Compose for Wear OS 就拥有了 1.0 版本 (将于今年晚些时候发布) 所需的完整功能,且能供您构建生产就绪的应用。这也意味着它的 API 已经稳定,今后我们将专注于提升性能以及针对 1.0 版本继续打磨现有组件。查看 Compose for Wear OS Beta 版发布视频 了解更多详情。

Beta 版本介绍

自去年的 I/O 大会以来,我们一直在努力将 Jetpack Compose 的优势带到 Wear OS,还通过 Slack 与社区互动,收集开发者对 API、组件和工具的反馈。一些组件也因此得到了改进,如导航、可缩放惰性列表 (scaling lazy list)、输入和手势支持等等。

在现在的 Beta 1 之前我们已经发布了 21 个 Alpha 版。让我们一起看看自 开发者预览版 发布以来的主要变化:

🆕 输入组件

开发者要求我们提供用户输入组件,所以我们增加了不同的 Composable,供大家为自己的手表应用进行定制:

  • Picker 可让用户从滚动列表中选择一个项目。默认情况下,这个包含可选择项目的列表会在两个方向上 "无限" 重复,从侧面看上去像是一个旋转的滚筒。有趣的是,Picker 在底层使用了 ScalingLazyColumn 来实现,并将许多 ScalingLazyColumn 的高级功能进行了拓展和打磨。

  • Slider 可让用户从一个数值范围内进行选择,是调整字体大小或亮度等设置的理想组件。

  • Stepper 是让用户从一个数值范围内进行选择的全屏控制组件。例如,用户可以用其控制耳机的音量。

🆕 对话框

我们增加了全屏警告和确认 Composable,它们既可以作为导航目的地,也可以用作传统的全屏 对话框 (Dialog),后者将被覆盖在任何其他内容之上。对话框支持滑动关闭,继而显示背景中的父级内容。

为了与 Scaffold 保持一致,全屏对话框会显示一个 PositionIndicator 和一个 Vignette

🆕 进度指示器

我们添加了 CircularProgressIndicator,这是一个为手表屏幕优化的进度指示器,通过将指示器沿顺时针方向的圆形轨道绘制来显示进度:

对于如何使用 CircularProgressIndicator,我们提供了以下几种选择: 要么显示无限的进度,要么表达正在进行的任务的完成比例。进度指示器允许在圆形轨道中留出空隙,为其他内容留出空间,例如在全屏时使用 TimeText

🆕 页面指示器

为了帮助您实现分页,用户界面工具包还提供了 HorizontalPageIndicator 组件,会显示总页数和所选页数:

HorizontalPageIndicator 将提供当前展示的页面以及在总页面数中的位置,并会根据屏幕的实际形状使用对应的视觉呈现方式。

改进一览

  • ScalingLazyColumn: 改进了默认行为,使其与 Wear OS 的 Material 设计一致,包括更新了缩放参数、默认的额外填充,以及从其包含的内容获取尺寸。
  • Scaffold: 增加了 PageIndicator 槽位,以保证在圆形屏幕上的正确定位。
  • Navigation: 确保与 Compose Navigation 的功能一致,并增加了对边缘滑动的支持,以实现全屏和页面滚动的良好体验。
  • 曲线元素: 增加了 CurvedModifier 和一个新的 DSL,使开发者能够使用极坐标相关的概念,如径向、角度、扫描、顺/逆时针、圈内/外等。CurvedLayout 是连接直角坐标和极坐标的桥梁,而 curvedComposable 可以用来引入传统的 Composable 组件 (前提是这样做有意义)。

在增加了这些最新的补充内容之后,用于 Wear OS 的 Compose Material 组件目录现在有了比基于视图 (View) 的布局更多的组件,并提供了基于新的 Wear OS 设计指南的开箱即用的实现。

工具

Android Studio Electric Eel 提供了最新的功能,让您获得 Compose for Wear OS 开发的最佳体验:

  • 编辑器和工具支持改进自动补全和编辑器动作
  • 针对 Wear OS 的 Composable Preview
  • 🆕 支持实时调试的实时编辑功能
  • 🆕 Compose for Wear OS 项目模板

Horologist

我们还发布了 Horologist。这是一个 Google 开源项目,提供了一套 Wear 开发库,对 Compose for Wear OS 和其他 Wear OS API 所提供的功能进行了补充。

△ 进一步了解 Horology

Horologist 提供有用的 Compose 扩展供您选用:

  • 媒体用户界面组件,包括播放和音量控制界面
  • Material 风格的日期和时间选择器
  • 带有 TimeText 和 PositionIndicator 的导航感知 Scaffold,可与滚动和导航屏幕的变化保持同步。

Horologist 将不断发展,为开发者提供更多的工具,以便大家为不同的项目构建优秀的 Wear OS 应用。请在 Github 上查看 Horologist repo,为我们提供反馈,并贡献可能对 Wear 开发者有用的通用功能。请大家继续关注之后的版本!

即刻开始使用

许多移动端 Compose 的开发原则同样适用于 Wear OS 版本的 Compose,如果您不熟悉这套用户界面工具包,可以从 Jetpack Compose 的基础知识开始上手。

我们准备了一套材料来帮助您开始使用 Compose for Wear OS:

随着 Compose for Wear OS Beta 版的到来,现在是时候开始使用 Compose 来构建自己的应用或是用它来更新既有的界面了。想要了解有关为 Wear OS 构建应用的更多信息,请前往 开发者网站

我们迫不及待想听到您对 Compose for Wear OS 的使用感想,也非常期待看到您构建的佳作!欢迎大家加入 Kotlin Slack #compos-wear 频道的讨论,也请大家继续在问题反馈专页上向我们 提交反馈

祝大家使用 Compose 创作愉快!

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容