開源項目 | ☁️CloudAAC,一個基於JetPack的Android通用化框架

image-20200908210016039

什麼樣的框架適合你?什麼樣的框架也許都不適合你。android


與大千你我同樣,皆是從 無架構到MVC->模塊化->MVP-> MVVM->AAC->組件化AAC。git

多時候,我有在考慮,咱們真的須要過分去設計嗎?可能有人喜歡 BaseVMFragnment,但有些時候,咱們真的須要ViewModel嗎,咱們真的只有一個ViewModel嗎,我可能真的不想去寫,對於2020的今天,帶着這些問題,我開始思考,什麼樣的架構纔是咱們最合適的,適合於各種人士?,我想不出來,因而將選擇主動權交給你們,並將過程當中的一些想法經過代碼匯聚於此,便於爲你們提供思路,這就是CloudAAC,化繁爲簡,一個簡易的組合式框架。github

github:github.com/Petterpx/Cl…markdown

如何使用?

導入依賴架構

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
複製代碼
implementation 'com.github.Petterpx.CloudAAC:core:v1.0.3' 
複製代碼

CloudAAC已經導入瞭如下組件:框架

//一個很是優秀的狀態欄處理工具
implementation 'com.gyf.immersionbar:immersionbar:3.0.0'
implementation 'com.gyf.immersionbar:immersionbar-ktx:3.0.0'

//Android-ktx擴展相關
implementation 'androidx.activity:activity:1.1.0'
implementation 'androidx.fragment:fragment-ktx:1.2.5'

//viewModel數據恢復
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0"
複製代碼

擴展支持

core模塊僅提供了核心的基礎類,選擇將主動改造權交給了你們,爲了更好的便於使用,CloudAAC 支持擴展 如下模塊。maven

implementation 'com.github.Petterpx.CloudAAC:databing_ktx:v1.0.3' 
implementation 'com.github.Petterpx.CloudAAC:viewbing_ktx:v1.0.3' 
implementation 'com.github.Petterpx.CloudAAC:tab_ktx:v1.0.3' 
複製代碼

核心類解釋

Core

基礎 Base 類。模塊化

  • BaseActivity ----基礎BaseActivity類
  • BaseFragment ----基礎BaseFragment類
  • ...其餘相關工具

Databing_ktx

適用於 Databinding 的通用 Activity && Fragment.工具

注意: binding 變量 請謹慎使用,非必要場景下,務必禁止使用,避免形成視圖不一致的問題。oop

  • BaseDataBingActivity ----Activity-DataBing擴展
  • BaseDataBingFragment ----Fragment-DataBing擴展
  • DataBingdinConfig ---- DataBing的配置相關 (參考自 KunMinx)

ViewBing_ktx

適用於 ViewBing 的通用 Activity && Fragment.

  • BaseViewBingActivity ----Activity-ViewBing擴展

  • BaseViewBingFragment ----Fragment-ViewBing擴展

  • BaseViewBingVMActivity<VM,Bing>

    Activity-ViewBing擴展,包含了默認的viewModel委託使用

  • BaseViewBingVMFragment<VM,Bing>

    Fragment-ViewBing擴展,包含了默認的viewModel委託使用


Tab_ktx (仍在優化中)

適用於主頁 tab 的 擴展。

  • base
    • BasePagerAdapter
    • BaseTabActivity
  • ...其餘相關工具

...ktx

更多擴展等待加入,CloudAAC 儘量採用擴展與組合方式,以便於不一樣人羣的不一樣需求,固然若是你有更好的想法,歡迎 PR.



你知道的越多,你不知道的越多。並不提倡你們去頻繁造輪子,但但願你們都能擁有去改造輪子的想法,CloudAAC 代碼結構比較清晰,相關注釋與邊界已經註明,但願會對你會有所幫助。

相關文章
相關標籤/搜索