Compose 是 Google 推出的现代化 UI 开发工具包,基于声明式 UI 开发风格,加上 @Composable 函数帮助开发者有效的实现关注点分离,另外 Compose 内部最大程度优化了重组范围,可以帮助我们高效的刷新UI,考虑到 Compose 整体架构设计过于复杂,这篇文章主要带大家了解 Compose 核心原理的实现逻辑
声明式UI
声明式 UI 对于 Android 开发同学可能有点陌生,不过熟悉 React 和 Flutter 的同学应该比较清楚,不管是 React、Flutter、Compose,核心都是 MVI 架构方式,通过数据驱动 UI,底层需要维护相应的 UI Tree,比如 React 的 VirtualDOM,Flutter 的 Element,而 Compose 的核心是 Composition。
所谓 “数据驱动UI”,就是当 state 变化时,重建这颗树型结构并基于这棵 NodeTree 刷新 UI。 当然,出于性能考虑,当 NodeTree 需要重建时,各框架会使用 VirtualDom 、GapBuffer(或称SlotTable) 等不同技术对其进行 “差量” 更新,避免 “全量” 重建。compose.runtime 的重要工作之一就是负责 NodeTree 的创建与更新。
可以想象的是Jetpack Compose能给我们界面开发带来多大的方便。。
接下该如何学习Jetpack Compose
说了这么多也没有说如何学习,在之后这份谷歌发布的Jetpack Compose开发指南中您将学习:
- 你可以遵循的不同迁移路径
- 如何逐步将应用迁移到Compose
- 如何将Compose添加到使用View构建的现有界面
- 如何在Compose中使用View
- 如何在Compose中使用基于View的主题
- 如何测试使用View和Compose编写的混合界面
Android Jetpack Compose开发应用指南
第⼀章 初识Jetpack
- JetPack是什么
- JetPack和AndroidX
- AndroidX的迁移
第⼆章 Compose的设计原理和基本概念
- JetPack Compose 环境搭建
- JetPack Compose 新特性和组件依赖
- JetPack Compose 编程思想总结
第三章 Compose⼊⻔
- JetPack Compose ⼊⻔的基础案列
- JetPack Compose ⼊⻔的基础案列
第四章 Compose布局
- Compose State
- Compose 样式(Theme)
- Compose布局核⼼控件
- ⾃定义布局
- Compose中的ConstraintLayout
第五章 Compose动画
- Compose SideEffect
- Compose 动画概述
- Compose Crossfade
- Compose animateContentSize
- Animatable
- Compose⾃定义动画
第六章 Compose图形
- Compose Canvas
- Compose 绘制API的分析
- Compose⾃定义绘制
第七章 Compose核⼼控件总结
- Scaffold
- LazyColumn
有需要的朋友可以【点击下方卡片】免费下载。