谷歌大佬強勢分享《Jetpack Compose 權威指南》,帶你參透聲明式UI的終極奧義!
聲明式 UI 的大哥 Flutter 已經出道很久了,再學習 Compose 還有意義嗎?Flutter 還是 Compose?先拋出我的結論:如果你想運用到實際的生產環(huán)境中,Flutter 肯定是更好的選擇,因為更多的人幫你踩過了坑。如果你想 Kotlin 一把梭,只是學習嘗鮮,結合 Jetpack Compose 可以很好的作為你的技術儲備。簡單的聊聊 Compose 中還不錯的地方:
Android開發(fā)習慣的繼承
相信很多同學都有這樣的習慣:
①使用 Kotlin 開發(fā)
②必須協(xié)程
③復雜的布局會使用 ConstraintLayout
…
是的,這些東西我們依然在 Compose 中運用,從而降低我們的上手難度。
Android Jetpack 的支持
在 Compose 剛剛發(fā)布的時候,Android Jetpack 中的很多其他庫都第一時間給予了 Compose 支持,從而豐富了 Compose 的開發(fā)生態(tài)。目前,能夠直接在 Compose 上使用的 Jetpack 庫有:Navigation、Paging、ViewModel、LiveData、hilt 、lifecycle
理論上來講,Android Jetpack 上跟 UI 不相關的庫 Compose 應該都是支持的,在我寫的Hoo中,就使用了Paging、Navigation、ViewModel和LiveData等 Android Jetpack 庫,再有協(xié)程和 Kotlin 的加持,整個開發(fā)過程中輕松不少!
?更少的代碼
Compose 可以使我們更加專注于 UI 的開發(fā),聲明式UI 可以顯著的減少方法數和包體積。在谷歌官方的 《Jetpack Compose 使用前后對比》 一文說道:Tivi應用在使用了 Compose 后,我們發(fā)現 APK 大小縮減了 41%,方法數減少了 17%。
其實這些都是可以預見的,比如更加簡單的動畫和觸摸事件的 Api。
Preview
Compose支持代碼的Preview,如圖:

Compose 代碼寫完后,可以直接在右邊預覽,但是更新速度差點意思,不如 Flutter 的熱重載方便。
其他的一些點可能就跟 Flutter 有點像了:
Compose 的主題原生支持黑夜模式,開發(fā)者定制主題的時候提供兩套顏色即可,想起之前,起點讀書支持黑夜模式可是花了很大的功夫。
通過 Scaffold,可以輕松集成很多 Material 組件,比如 Topbar、FloatingActionButton和BottomNavigationBar 等,這些都可以幫助我們節(jié)省出不少的時間。另外,在 Compose 中不能輕松實現效果的時候,借助于AndroidView,可以去調用Android原生View。
第一章 初識Jetpack Compoese
1. 為什么我們需要一個新的UI 工具?
2. Jetpack Compose的著重點?
加速開發(fā)
強大的UI工具
直觀的Kotlin API

3. API 設計?

4. Compose API 的原則?
一切都是函數
頂層函數(Top-level function)
組合優(yōu)于繼承
信任單一來源

5. 深入了解Compose?
Core
Foundation
Material

6. 插槽API
第二章 Jetpack Compose構建Android UI
1. Android Jetpack Compose 最全上手指南
Jetpack Compose 環(huán)境準備和Hello World
布局
使用Material design 設計
Compose 布局實時預覽
……

2. 深入詳解 Jetpack Compose | 優(yōu)化 UI 構建
Compose 所解決的問題
Composable 函數剖析
聲明式 UI
組合 vs 繼承
封裝
重組
……

3. 深入詳解 Jetpack Compose | 實現原理
@Composable 注解意味著什么?
執(zhí)行模式
Positional Memoization (位置記憶化)
存儲參數
重組
……

第三章?Jetpack Compose實戰(zhàn)演練
1. Jetpack Compose應用1
開始前的準備
創(chuàng)建DEMO
遇到的問題

2. Jetpack Compose應用2
3. Jetpack Compose應用做一個倒計時器
數據結構
倒計時功能
狀態(tài)模式
Compose 布局
繪制時鐘

4. 用Jetpack Compose寫一個玩安卓App
準備工作
引入依賴
新建 Activity
創(chuàng)建 Compose
PlayTheme
畫頁面
底部導航欄
管理狀態(tài)
添加頁面

5. 用Compose Android 寫一個天氣應用
開篇
畫頁面
畫背景
畫內容
……

6. 用Compose快速打造一個“電影App”
成品
實現方案
實戰(zhàn)
不足
……

如果想要全方位系統(tǒng)學習了解Compose,那么這份《Jetpack Compose 權威指南》你一定不要錯過。以上資料都已打包整理好,需要的朋友掃描下面二維碼添加「月亮老師」報名練營領取!
