一个基于AAC的模块化组件库,采用组合的方式提高现代化Android开发体验。
什么样的框架适合你?什么样的框架也许都不适合你。
与大千你我一样,皆是从 无架构到MVC->模块化->MVP->MVVM->AAC->组件化AAC。
很多时候,我有在考虑,我们真的需要过度去设计吗?可能有人喜欢 BaseVMFragment,但有些时候,我们真的需要ViewModel吗,我们真的只有一个ViewModel吗,我可能真的不想去写,对于2020的今天,带着这些问题,我开始思考,什么样的架构才是我们最合适的,适合于各类人士?,我想不出来,于是将选择主动权交给大家,并将过程中的一些想法通过代码汇聚于此,便于为大家提供思路,这就是CloudAAC,化繁为简,一个简易的组合式框架。
导入依赖
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 支持扩展 以下模块。
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'
基础 Base 类。
- BaseActivity -------基础BaseActivity类
- BaseFragment -----基础BaseFragment类
- ...其他相关工具
适用于 Databinding 的通用 Activity && Fragment.
注意: binding 变量 请谨慎使用,非必要场景下,务必禁止使用,避免造成视图不一致的问题。
- BaseDataBingActivity ----Activity-DataBing扩展
- BaseDataBingFragment -----Fragment-DataBing扩展
- DataBingdinConfig ---- DataBing的配置相关 (参考自 KunMinx)
适用于 ViewBing 的通用 Activity && Fragment.
- BaseViewBingActivity ----Activity-ViewBing扩展
- BaseViewBingFragment ----Fragment-ViewBing扩展
- BaseViewBingVMActivity<VM,Bing> ----Activity-ViewBing扩展,包含了默认的viewModel委托使用
- BaseViewBingVMFragment<VM,Bing> ----Fragment-ViewBing扩展,包含了默认的viewModel委托使用
适用于主页 tab 的 扩展。
- base
- BasePagerAdapter
- BaseTabActivity
- ...其他相关工具
更多扩展等待加入,CloudAAC 尽可能采用扩展与组合方式,便于不同人群的不同需求,当然如果你有更好的想法,欢迎 PR.
你知道的越多,你不知道的越多。并不提倡大家去频繁造轮子,但希望大家都能拥有去改造轮子的想法,CloudAAC 代码结构比较清晰,相关注释与边界已经注明,希望会对你会有所帮助,。