前言
在 2019 年的 Google/IO 大会上,亮相了一个全新的 Android 原生 UI 开发框架 Jetpack Compose。与 IOS 的 SwiftUI 一样,Jetpack Compose 也是一个声明式的 UI 框架,随着 Android 和 IOS 两大移动平台相继推出了自己平台专属的声明式 UI 框架,标志着整个行业已开始转向声明性界面模型,该模型大大简化了与构建和更新界面关联的工程设计
经过两年多的打磨,到了去年七月底,Google 正式发布了 Jetpack Compose 的 1.0 版本,这是 Compose 的稳定版本,可供开发者在生产环境中使用
引用 Google 官网对 Jetpack Compose 的介绍:Jetpack Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,帮助您使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用

为什么要学Jetpack Compose?
在Android中,UI工具包的历史可追溯到至少10年前。自那时以来,情况发生了很大变化,例如我们使用的设备,用户的期望,以及开发人员对他们所使用的开发工具和语言的期望。
以上只是我们需要新UI工具的一个原因,另外一个重要的原因是View.java这个类实在是太大了,有太多的代码,它大到你甚至无法在Githubs上查看该文件,因为它实际上包含了30000行代码,这很疯狂,而我们所使用的几乎每一个Android UI 组件都需要继承于View。
GogleAndroid团队的Anna-Chiara表示,他们对已经实现的一些API感到遗憾,因为他们也无法在不破坏功能的情况下收回、修复或扩展这些API,因此现在是一个崭新起点的好时机。
这就是为什么Jetpack Compose学不动也要学的原因,同时也标志着移动操作系统将正式全面拥抱声明式 UI 开发模式。
其核心功能包括:
- 互操作性:Compose 可以和既有的应用进行互操作。您可以将 Compose UI 嵌入 View,反之亦然。您可以只在屏幕上添加一个按钮,也把自己创建的自定义视图保留在现在用 Compose 打造的界面中
 - Jetpack 集成:Compose 和大家熟知且喜爱的 Jetpack 开发库天然整合。通过与 Navigation、Paging、LiveData (或 Flow/RxJava)、ViewModel 和 Hilt 的整合,Compose 可以与您现有的架构完美共存
 - Material:Compose 提供了 Material Design 组件和主题的实现,使您能够轻松构建符合您的品牌个性的美观应用。Material 主题系统更容易理解和追踪,再也不需要翻阅多个 XML 文件
 - 列表:Compose 的 Lazy 组件为数据列表的呈现提供了一种简单扼要且功能强大的方式,而且将模版代码精简到了最少
 - 动画:Compose 简明的动画 API 让您可以更轻松地打造出让用户眼前一亮的体验
 

Jetpack Compose从入门到精通
接下来,我将会给大家介绍一份由字节大牛整理出来的《Jetpack Compose入门到精通》,这份资料将会手把手带大家Jetpack Compose从入门到精通。
这份资料旨在给希望了解、学习、应用Jetpack Compose的小伙伴一个参考资料,需要的朋友可以【点击这里】免费获取。
资料详情
第一章 初识 Jetpack Compose
- 为什么我们需要一个新的UI 工具?
 - Jetpack Compose的着重点
 
- 加速开发
 - 强大的UI工具
 - 直观的Kotlin API
 

- API 设计
 

- 
- Compose API 的原则
 
 
- 一切都是函数
 - 顶层函数(Top-level function)
 - 组合优于继承
 - 信任单一来源
 

- 深入了解Compose
 
- Core
 - Foundation
 - Material
 

- 插槽API
 
第二章 Jetpack Compose构建Android UI
- Android Jetpack Compose 最全上手指南
 
- Jetpack Compose 环境准备和Hello World 布局
 - 使用Material design 设计
 - Compose 布局实时预览
 - ……
 

- 深入详解 Jetpack Compose | 优化 UI 构建
 
- Compose 所解决的问题
 - Composable 函数剖析
 - 声明式 UI
 - 组合 vs 继承
 - 封装
 - 重组
 - ……
 

- 深入详解 Jetpack Compose | 实现原理
 
- @Composable 注解意味着什么?
 - 执行模式
 - Positional Memoization (位置记忆化)
 - 存储参数
 - 重组
 - ……
 

第三章 Jetpack Compose 项目实战演练(附Demo)
需要这份《Jetpack Compose入门到精通》的朋友可以【点击这里】免费获取。
- Jetpack Compose应用1
 
- 开始前的准备
 - 创建DEMO
 - 遇到的问题
 
- 
Jetpack Compose应用2
 - 
Jetpack Compose应用做一个倒计时器
 
- 数据结构
 - 倒计时功能
 - 状态模式
 - Compose 布局
 - 绘制时钟
 

- 用Jetpack Compose写一个玩安卓App
 
- 准备工作
 - 引入依赖
 - 新建 Activity
 - 创建 Compose
 - PlayTheme
 - 画页面
 - 底部导航栏
 - 管理状态
 - 添加页面
 

- 用Compose Android 写一个天气应用
 
- 画页面
 - 画背景
 - 画内容
 - ……
 

- 用Compose快速打造一个“电影App”
 
- 成品
 - 实现方案
 - 实战
 - 不足
 - ……
 

由于文章篇幅影响无法展示全部资料,需要这份《Jetpack Compose入门到精通》的朋友可以【点击这里】免费获取。

京公网安备 11010502036488号