FastAAC
简介: 一个浅封装、快速开发的 Android MVVM 开发框架github
更多:做者 提 Bug apache
标签:网络
上手特别容易,不会 MVVM 开发模式的均可以快速上手。
一个浅封装、快速开发的 Android MVVM 开发框架。
基于 Android Architecture Components(AAC)。
项目使用 Androidx 搭建。
只使用官方部分的 MVVM 和 databind 的部分特性。
Lib 结构
优势
简单、浅封装、扩展性强框架
代码简单,没有过分的封装,上手很是容易,Lib 只有十几个类。ide
除了 Android 原生的依赖之外, 只集成了一个工具库 utilcodex,事件总线 live-event-bus,页面状态管理 loadsir, 状态栏沉浸式工具 immersionbar,而且都是能够插拔的,不须要替换便可。工具
图片加载库,网络请求库等其余第三方 Lib 可根据我的兴趣本身选择集成便可。post
快速开发学习
经过泛型能够减小不少没必要要的重复代码,之前每一个 Activity 都须要写以下重复代码,例如:this ActivityMainBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
MainVm mainVm = ViewModelProviders.of(this).get(MainVm.class);
如今只须要在类名上面写上泛型便可,自动解析: public class MainActivity extends AbsMvvmActivity {}
自动页面状态管理
平常开发 Activity 的页面状态有:有网、无网络、空页面、loading 加载页面等各类页面。
使用 LiveData 的监听集成在 BaseActivity 中,根据 BaseResult 返回的 code 来自动管理页面显示状态。 switch (httpResult.getErrorCode()) {
case BaseResult.SUCCESS_CODE:
if (httpResult.getData() != null) {
resultCode = SuccessCallback.class;
} else {
resultCode = EmptyCallback.class;
}
break;
default:
resultCode = ErrorCallback.class;
}
若是想手动改变页面状态,只需在 ViewModel 中很是简单的设置,例如:
无网络时: postPageState(new BaseResult(-1));
数据为空时: public void clickNoData() {
BaseResult baseResult = new BaseResult<>();
baseResult.setErrorCode(0);
baseResult.setData(null);
postPageState(baseResult);
}
具体使用
见 demo 中的 MainActivity。
END
你们有什么更好的建议请提出,一块儿学习进步。
既然来了,麻烦动动手指,点个 star,很是感谢。
License
Copyright 2019 Wutao
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0