為什麼大廠開始全面轉向Compose?
縱觀Android發展至今,十餘年間Google一直在針對不同的主題對它進行整改補強,其目的就是為了給開發者們一個更加舒適高效的開發平台,更好地 實現各種功能。
然而在 UI構建 方面,最初的那一套UI體系基本還是沿用至今,基本沒有什麼改變。就現在的發展趨勢來説,傳統的UI架構讓很多開發者表示苦不堪言:UI的構建需要 大量的代碼 ,寫個自定義View需要實現測量、佈局,響應用户行為需要滿篇的Listener事件,與此同時,還得配合上XML自定義屬性,可以説是 繁瑣至極 。而且從現有的代碼體量來説,優化重構基本是天方夜譚。
Compose應運而生
無法優化重構,那麼就只能創造新的架構來進行開發。自Flutter之後,Google也是正式發佈了Compose1.0。早在1.0版本正式發佈之前,很多大廠就已經在用Compose進行UI的編寫了,並且都對這個新貴讚不絕口:
很多人可能都會有疑問:有了Flutter,為什麼還要推出Compose,這不是 自己打臉嗎 (其實主要是也學不過來了)?
雖然同為聲明式UI,二者雖然比較相似,但究其根本定位還是不盡相同:
Flutter: 作為一款專為跨平台而生的框架,從上到下都透露着大膽和創新,選擇Dart已經是膽大包天,在Web平台支持選用Canvaskit 的WebAssembly 模式更是足夠冒進,很多人難以接受他的任性
Flutter架構圖(圖片來自網絡)
Compose: Compose則是一個全新的UI庫,隸屬Jetpack中的一員,它的出現是為了重新定義Android UI的開發方式,相比原生Android UI的開發方式,它大幅度提高了原生UI的開發效率:
-
聲明式UI ,不需要手動刷新數據
-
去掉XML ,完全解除了混合寫法(xml+Java、kotlin)的侷限性
-
超強兼容性 ,大多數常用庫(如Navigation、ViewModel和Kotlin協程)都適用於Compose,Compose 能夠與現有 View 體系並存,你可以為一個既有項目引入 Compose
-
加速開發 ,為我們提供了很多開箱即用的Material 組件,如果的APP是使用的material設計的話,那麼使用Jetpack Compose 能讓你節省不少精力。
-
精簡代碼數量 ,減少bug的出現
-
功能完備 ,可以完全覆蓋Android現有視圖系統的所有能力
-
實時預覽 ,Compose 預覽機制可以做到與真機無異,真正的所見所即得
相比之下,二者的區別一目瞭然:如果想做一個多端跨平台開發者,那麼Flutter會讓你如虎添翼;想要繼續紮根Android深耕細作,那麼 Compose 更適合作為你學習的第一選擇。
但是對於大部分開發者來説,Compose確實是一套比較難學的東西, 它是一個完整的、全新的框架: 渲染機制、佈局機制、觸摸算法以及 UI 的具體寫法,全都是新的 , 拋棄了我們寫了 N 年的 View 和 ViewGroup 那一套東西。 但是想要讓自己跟上時代,成為真正的技術人員,對於這種可以 提高生產力 的技術,則一定要儘可能 地 掌握它,不能抱有任何藉口。
為了幫助大家更好地理解Compose這個新技術風口,早日跟上時代潮流,這裏給大家介紹一份谷歌大佬強勢分享 《Jetpack Compose-從入門到精通》,手把手帶大家領略Compose的風采。
掃碼即可領取
這份資料旨在給希望瞭解、學習、應用Android Jetpack Compose的小夥伴一個參考資料:
第一章 初識Jetpack Compoese
1. 為什麼我們需要一個新的UI 工具?
2. Jetpack Compose的着重點
加速開發
強大的UI工具
直觀的Kotlin API
3. API 設計
4. Compose API 的原則
一切都是函數
頂層函數(Top-level function)
組合優於繼承
信任單一來源
5. 深入瞭解Compose
Core
Foundation
Material
6. 插槽API
第二章 Jetpack Compose構建Android UI
1. Android Jetpack Compose 最全上手指南
Jetpack Compose 環境準備和Hello World
佈局
使用Material design 設計
Compose 佈局實時預覽
……
2. 深入詳解 Jetpack Compose | 優化 UI 構建
Compose 所解決的問題
Composable 函數剖析
聲明式 UI
組合 vs 繼承
封裝
重組
……
3. 深入詳解 Jetpack Compose | 實現原理
@Composable 註解意味着什麼?
執行模式
Positional Memoization (位置記憶化)
存儲參數
重組
……
第三章 Jetpack Compose實戰演練
1. Jetpack Compose應用1
開始前的準備
創建DEMO
遇到的問題
2. Jetpack Compose應用2
3. Jetpack Compose應用做一個倒計時器
數據結構
倒計時功能
狀態模式
Compose 佈局
繪製時鐘
4. 用Jetpack Compose寫一個玩安卓App
準備工作
引入依賴
新建 Activity
創建 Compose
PlayTheme
畫頁面
底部導航欄
管理狀態
添加頁面
5. 用Compose Android 寫一個天氣應用
開篇
畫頁面
畫背景
畫內容
……
6. 用Compose快速打造一個“電影App”
成品
實現方案
實戰
不足
……
想要全方位系統學習瞭解Compose, 那麼這份《Jetpack Compose-從入門到精通》你一定不要錯過。
掃碼即可領取
- 厲害了!自己寫個App 啟動任務框架
- 一個解決滑動衝突的新思路,做到視圖之間無縫地嵌套滑動!
- 谷歌官方改了兩次的知識點,你一定要知道!
- Android 最新架構詳解 | MVI = 響應式編程 單向數據流 唯一可信數據源 !
- 説兩件事~
- 最新的動畫布局來了,一文帶你瞭解!
- Gradle:你必須掌握的開發常見技巧~
- Kotlin DSL 實戰:像 Compose 一樣寫代碼!
- 厲害了,Android自定義樹狀圖控件來了!
- 一文帶你全面掌握Android組件化核心!
- 為什麼大廠開始全面轉向Compose?
- 谷歌限制俄羅斯使用Android系統,俄或將轉用 HarmonyOS!
- 鴻蒙OS、安卓、iOS測試對比,結果出乎意料!
- 最詳細的Android圖片壓縮攻略,讓你一次過足癮(建議收藏)
- Android字體漸變效果實戰!
- 攔截控件點擊 - 巧用ASM處理防抖!
- Android正確的保活方案,拒絕陷入需求死循環!
- 再見 MMKV,自己擼一個FastKV,快的一批
- 白嫖一個Android項目的類圖生成工具!(建議收藏)
- 日常需求做的挺好,面試就被底層原理放倒