聚焦 Android 11: UI 与 Compose
作者 / Chris Banes 和 Nick Butcher
在往期 #11WeeksOfAndroid 系列文章中我们介绍了联系人和身份、隐私和安全、 Android 11 兼容性 、开发语言、Jetpack、 Android 开发者工具 、 Google Play 应用分发与盈利 、 游戏开发新工具 ,本期我们 聚焦 UI 与 Compose ,下面就来看看您需要了解的内容。
重大更新: Jetpack Compose Alpha
Jetpack Compose 的 第一个 alpha 版本 已经发布,这是 Android 的现代化 UI 工具包,可以访问原生平台 API。Compose 将 Kotlin 的强大功能与响应式编程模型相结合,使界面构建更简单、更快速。我们也希望您的 反馈 能帮助我们了解您构建应用所需的 API,开始试用吧!
为了帮助您快速掌握 Compose,我们发布了 4 个新的 Codelab、7 个新的示例 以及相关 新增文档,Compose 团队还发布了一个 播客,以及更多视频介绍供您参考。
要了解响应式思维方式以及如何使用 Compose 构建应用,可以观看视频 了解 Compose 的编程思想。
您也可以观看视频,通过开源示例应用中的具体示例,了解 Jetpack Compose 如何简化 Android 界面。
最后,您可以在 视频 "Compose for Existing" 应用 中,了解 Jetpack Compose 和基于视图的 UI 如何共存和交互,使您轻松按照自己的节奏采用 Compose。
键盘 (IME) 动画
Android 11 的新功能之一是应用能够在屏幕键盘打开和关闭之间无缝过渡,以及改进的 WindowInsets API,实现对键盘 (IME) 等控件的控制。要了解如何将其添加到您的应用中,欢迎访问相关 视频、博文 以及 示例应用…
Material Design 组件
我们 建议 您参考 Material Design 指南,确保应用一致运行,以及应用的使用习惯可以延续。官方文档介绍了使用 Material Design Components (MDC) 库 的 Material Theming (颜色、类型 和 形状)、深色主题以及 Material 的 动效系统。
采用 MDC 可以使您的代码库为以后尝试 Jetpack Compose 做好准备,他们使用了相同的概念、设计词汇以及组件。甚至可以通过新的 MDC Compose 主题适配器 等库简化您的迁移,将 MDC XML 主题转换为 Compose MaterialTheme
。
如果您尚未迁移到 MDC,可以参考我们的 迁移指南。
开始学习
我们为您准备了两个学习计划,帮您轻松了解本期的要点: Compose 学习计划 和 "现代界面" 学习计划。
学习计划是指允许用户完成预定义模块的有序教程,学完模块后需要参加测验。学习计划可能包括 Codelab、视频、文章和博文。通过测验后,每个用户将获得虚拟徽章。在每种学习计划中测试您掌握的知识,获取限量版徽章。
知识点
无论您是使用当前的 UI 工具包进行构建,还是为下一代做准备,我们都希望本期分享的资源能够帮助您打造深受用户喜爱的 UI 界面。感谢大家收看或加入我们的 AMA。您可以按照 "现代界面" 学习计划学习如何利用 Material Design、动画或最新的 Android 11 功能。欢迎通过 Compose 学习计划了解 Android UI 开发的未来,并提供 反馈 助力其发展。
资源
您可以查看 #11WeeksOfAndroid 视频内容的 完整播放列表,或点击阅读原文前往官方网站详细 了解更多主题。我们将持续聚焦每期的新领域,敬请留意,也请继续关注我们,期待您的反馈。感谢您与我们相伴前行!
- 《Java程序设计基础》 第8章手记Part 1
- 你很有想法,跟我学做菜吧No.3
- 《数据结构》 定长顺序串常用操作代码集合
- 一斤代码深入理解系列(七):微信小程序中使用微信风格样式库-WeUI
- 餐厅老板要累疯了No.2
- linux学习第十九篇:压缩介绍,gzip,bzip2,xz压缩工具
- 区块链?黑人问号?NO.1
- linux学习第二十一篇:安装软件包的三种方法,rpm,yum工具用法,yum搭建本地仓库
- iOS使用自签名证书实现HTTPS请求
- 《Java程序设计基础》 第7章手记
- linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向
- Python yield关键字 和 Generator(生成器)
- linux学习第二十篇:zip压缩,tar打包以及打包压缩
- 数据结构之图
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- PHP使用JPGRAPH制作圆柱图的方法详解
- PHP 实现超简单的SESSION与COOKIE登录验证功能示例
- PHP 图像处理与SESSION制作超简单验证码的方法示例
- 简述PHP7.4 新特性和废弃的功能
- laravel5.1框架下的批量赋值实现方法分析
- Laravel框架环境与配置操作实例分析
- 记Laravel调用Gin接口调用formData上传文件的实现方法
- Laravel框架视图和模型操作方法分析
- 接口测试框架实战(六) | 配置的数据驱动
- PHP连续签到功能实现方法详解
- PHP实现发送微博消息功能完整示例
- php实现快速对二维数组某一列进行组装的方法小结
- PHP实现提取多维数组指定一列的方法总结
- PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
- Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解