什么样的框架适合你?什么样的框架也许都不适合你。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'
复制代码
基础 Base 类。模块化
适用于 Databinding 的通用 Activity && Fragment.工具
注意: binding 变量 请谨慎使用,非必要场景下,务必禁止使用,避免形成视图不一致的问题。oop
适用于 ViewBing 的通用 Activity && Fragment.
BaseViewBingActivity ----Activity-ViewBing扩展
BaseViewBingFragment ----Fragment-ViewBing扩展
BaseViewBingVMActivity<VM,Bing>
Activity-ViewBing扩展,包含了默认的viewModel委托使用
BaseViewBingVMFragment<VM,Bing>
Fragment-ViewBing扩展,包含了默认的viewModel委托使用
适用于主页 tab 的 扩展。
更多扩展等待加入,CloudAAC 尽量采用扩展与组合方式,以便于不一样人群的不一样需求,固然若是你有更好的想法,欢迎 PR.
你知道的越多,你不知道的越多。并不提倡你们去频繁造轮子,但但愿你们都能拥有去改造轮子的想法,CloudAAC 代码结构比较清晰,相关注释与边界已经注明,但愿会对你会有所帮助。