在以前一個月的裏,我係統的學習了Android Jetpack
組件,並輸出了即學即用Android Jetpack
系列文章🚀:android
第一篇:《即學即用Android Jetpack - Navigation》
第二篇:《即學即用Android Jetpack - Data Binding》
第三篇:《即學即用Android Jetpack - ViewModel & LiveData》
第四篇:《即學即用Android Jetpack - Room》
第五篇:《即學即用Android Jetpack - Paging》
第六篇:《即學即用Android Jetpack - WorkManger》git
該系列文章的意義在於指導初學者從零到一搭建一個MVVM + Anroid Jetpack組件
的App,最終完成一個以下的案例:github
圖片 | 圖片 |
---|---|
項目地址:github.com/mCyp/Hoo數據庫
確認過眼神,是迷戀鞋的人~。須要且必要說明的是,該項目的一部分參考自谷歌的官方示例:android-sunflower設計模式
本項目採用的語言是Kotlin
,**爲何是Kotlin
?**顯然,谷歌已經宣佈Kotlin
成爲開發安卓的首選語言,且從此的新出的東西會優先支持Kotlin
。網絡
Android Jetpack
是谷歌推出的加快Android應用開發的組件,而本應用使用的一部分僅僅是左上角綠色的一部分: 架構
CameraX
。不過,仍然能夠預見的是,谷歌在致力於安卓生態環境的搭建。
個人Demo採用MVVM的設計模式,這一點能夠從個人架構圖能夠看出: 框架
示例Demo少了網絡請求的部分,不過我以爲對於指導總體搭建的影響不是很大。其實我以爲這個問題能夠簡化爲Android Jetpack組件的做用是什麼?工具
Fragment
切換的工具類,可視化、可綁定控件、支持動畫等是其優勢。MVVM
的建立。Activity
和Fragment
的生命週期的重要緣由,在AndroidX
的Fragment
和Activity
已經對Lifecycle
提供了默認支持。MVVM
的ViewModel層
,並具備聲明週期意識的處理和UI相關的數據。RxJava
的做用同樣,對數據進行監聽,優勢就是無需處理生命週期、無內存泄漏等。RecyclerView
。如下多是你會選擇Android Jetpack的緣由:佈局
Android Jetpack
組件中的不少庫都對其餘庫提供了支持,好比Room
和Paging
就對LiveData
提供了支持。RxJava
:因爲RxJava
強大的生態環境,幾乎和數據相關的組件都對RxJava
提供了支持。Data Binding + ViewModel + LiveData
或RxJava
構建的MVVM
模式可以顯著減小代碼量,比較平時使用的MVP
模式也會更加方便,無需主動更新UI。Android Jetpack
系列組件能夠無需捆綁使用,你若是隻想用裏面的單個庫,那麼就能夠僅僅依賴一個庫。即便Android Jetpack
來自於谷歌官方,可是你也可能有太多的理由拒絕它!好比:
RxJava
那麼強大,我會什麼要選擇LiveData
?Navigation
的底層對Fragment
的管理直接採起了替換的方式,雖然它能夠配合BottomNavigationView
使用,但每次都從新加載顯然是不合理的。Room
和其餘數據庫框架相比,顯然沒有什麼的優點,而且,我爲何還要多學一種數據庫框架呢?而且,Room
的遷移也比較繁瑣。其實,比較難以讓人難以接受的也就LiveData
和Navigation
的替換方式的採起,其餘而言,Android Jetpack
系列組件仍然值得一試。
學,確定要學,Android Jetpack
於谷歌而言,這是他們從新整理和統一安卓生態環境決心的體現,Android Jetpack
所展示的內容,也是谷歌想拓展和維護的方向。於長期苦惱於第三方庫選擇的廣大Android開發者而言,這是谷歌爲咱們提供的一盞明燈。
也許,Android Jetpack
系列的部分庫還沒成熟到成爲你工做的第一選擇,可是,深刻學習Android Jetpack
組件會爲你提供與谷歌大佬深刻交流的機會,爲你平常的開發帶來一些想法,不過,遺憾的是,即學即用Android Jetpack系列博客的目的僅僅是爲初學者提供入門指導,對於進階研究,能夠閱讀卻把青梅嗅的《Android Jetpack專欄》。
除去能夠學到Kotlin + MVVM + Android Jetpack
的知識,相信你還能夠在個人項目中學到:
ConstraintLayout
的使用,幾乎每一個界面佈局都採用的ConstraintLayout
。