MVPCommonLib 实现快速搭建开发MVP APP
2019-02-26 本文已影响0人
ByteStefan
最近在 github 上上传了我的第一个小项目 MVPCommonLib,正确的说应该是 Android Module。该 Module 是通过 Kotlin 开发,包含搭建 MVP+Retrofit+RxJava 需要的基础类以及日常开发中的部分工具类,希望能帮助大家更加快速的搭建 APP。接下来让我们看一下该 Module 中都有哪些东西吧。
Module 层级结构
|— com.zebar.stefan_shan.commonlib
|— — base // 基础包
|— — — ActivityManager // Activity 管理类
|— — — AppConstant // 全局静态数据(如:基础域名等)
|— — — BaseActivity // 基础 Activity 类
|— — — BaseMVPActivity // MVP 架构中基础 Activity 类
|— — — BaseFragment // 基础 Fragment 类
|— — — BaseMVPFragment // MVP 架构中基础 Fragment 类
|— — — BasePresenter // MVP 架构中基础 Presenter 类
|— — http // 网络请求基础包
|— — — ModuleCallBack // Module 层回调接口
|— — — ObserverImp // 数据结果预处理类
|— — — RetrofitManager // Retrofit 管理类
|— — — SubscribeManager // 订阅关系管理类
|— — util // 工具包
|— — — ActivityKTX // Activity 跳转工具类
|— — — BitmapUtil // 图片工具类
|— — — ConverKTX // 转换工具类
|— — — DialogUtil // Dialog 工具类
|— — — EncruptionUtil // 加密工具类
|— — — LogUtil // Log 日志工具类
|— — — SharedPreferenceUtil // SP工具类
|— — — ToastUtil // Toast 工具类
|— — view // 公共视图包
|— — — LoadingLayout //加载状态工具类
Module 依赖第三方
// Design 库
api "com.android.support:design:${SUPPORT_LIB_VERSION}"
api 'com.android.support.constraint:constraint-layout:1.1.3'
// RecyclerVIew 刷新头
api 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
// RecyclerView 万能适配器
api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.42'
api "com.android.support:recyclerview-v7:${SUPPORT_LIB_VERSION}"
// Eventbus
api 'org.greenrobot:eventbus:3.1.1'
// Gson
api 'com.google.code.gson:gson:2.8.5'
// Retrofit & adapter & converter & logging-interceptor
api 'com.squareup.retrofit2:retrofit:2.4.0'
api 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
api 'com.squareup.retrofit2:converter-gson:2.4.0'
api 'com.squareup.okhttp3:logging-interceptor:3.8.1'
// RxJava & RxAndroid
api 'io.reactivex.rxjava2:rxjava:2.2.1'
api 'io.reactivex.rxjava2:rxandroid:2.1.0'
// Glide
api 'com.github.bumptech.glide:glide:4.8.0'
前面我们大体了解了 Module 结构,接下来让我们看一下导入使用需要注意哪些。
-
统一项目中的配置版本。在 project 层级中可以发现有一个 gradle.properties 文件,我们就在这里面去做配置,这样方便之后修改一处全部更新。例如:
图一 定义变量
图二 变量使用
ps: 关于图一中 SUPPORT_LIB_VERSION 的使用,可以参照上面“Module 依赖第三方”中 “Design库”,注意在使用 ${} 时外层必须是双引号("") -
由于使用到第三方库“RecyclerView 万能适配器”,需要在 project 的 build.gradle 中添加 “maven{url 'https://jitpack.io'}”
-
关于 ActivityKTX 和 ConverKTX 两个工具类,可能会有不太清楚怎么使用的,这里做一个简单的例子
到这里该 Module 基本上算是介绍完毕了,如果您喜欢希望能赏一个 star 或者有什么意见欢迎提交 issues。至于工具类的使用请看代码注释,关于如何真正导入使用,我会再之后单独写一篇实战文章,方便大家结合使用。
特别鸣谢,同事张昕的技术支持,以及上述引用到的第三方库开源者。同时也为大家提供一个 Android 工具类大全项目 — AndroidUtilCode