最近在 github 上上傳了我的第一個(gè)小項(xiàng)目 MVPCommonLib,正確的說應(yīng)該是 Android Module。該 Module 是通過 Kotlin 開發(fā),包含搭建 MVP+Retrofit+RxJava 需要的基礎(chǔ)類以及日常開發(fā)中的部分工具類,希望能幫助大家更加快速的搭建 APP。接下來讓我們看一下該 Module 中都有哪些東西吧。
Module 層級(jí)結(jié)構(gòu)
|— com.zebar.stefan_shan.commonlib
|— — base // 基礎(chǔ)包
|— — — ActivityManager // Activity 管理類
|— — — AppConstant // 全局靜態(tài)數(shù)據(jù)(如:基礎(chǔ)域名等)
|— — — BaseActivity // 基礎(chǔ) Activity 類
|— — — BaseMVPActivity // MVP 架構(gòu)中基礎(chǔ) Activity 類
|— — — BaseFragment // 基礎(chǔ) Fragment 類
|— — — BaseMVPFragment // MVP 架構(gòu)中基礎(chǔ) Fragment 類
|— — — BasePresenter // MVP 架構(gòu)中基礎(chǔ) Presenter 類
|— — http // 網(wǎng)絡(luò)請(qǐng)求基礎(chǔ)包
|— — — ModuleCallBack // Module 層回調(diào)接口
|— — — ObserverImp // 數(shù)據(jù)結(jié)果預(yù)處理類
|— — — RetrofitManager // Retrofit 管理類
|— — — SubscribeManager // 訂閱關(guān)系管理類
|— — util // 工具包
|— — — ActivityKTX // Activity 跳轉(zhuǎn)工具類
|— — — BitmapUtil // 圖片工具類
|— — — ConverKTX // 轉(zhuǎn)換工具類
|— — — DialogUtil // Dialog 工具類
|— — — EncruptionUtil // 加密工具類
|— — — LogUtil // Log 日志工具類
|— — — SharedPreferenceUtil // SP工具類
|— — — ToastUtil // Toast 工具類
|— — view // 公共視圖包
|— — — LoadingLayout //加載狀態(tài)工具類
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 結(jié)構(gòu),接下來讓我們看一下導(dǎo)入使用需要注意哪些。
-
統(tǒng)一項(xiàng)目中的配置版本。在 project 層級(jí)中可以發(fā)現(xiàn)有一個(gè) gradle.properties 文件,我們就在這里面去做配置,這樣方便之后修改一處全部更新。例如:
圖一 定義變量
圖二 變量使用
ps: 關(guān)于圖一中 SUPPORT_LIB_VERSION 的使用,可以參照上面“Module 依賴第三方”中 “Design庫”,注意在使用 ${} 時(shí)外層必須是雙引號(hào)("") -
由于使用到第三方庫“RecyclerView 萬能適配器”,需要在 project 的 build.gradle 中添加 “maven{url 'https://jitpack.io'}”
-
關(guān)于 ActivityKTX 和 ConverKTX 兩個(gè)工具類,可能會(huì)有不太清楚怎么使用的,這里做一個(gè)簡(jiǎn)單的例子
到這里該 Module 基本上算是介紹完畢了,如果您喜歡希望能賞一個(gè) star 或者有什么意見歡迎提交 issues。至于工具類的使用請(qǐng)看代碼注釋,關(guān)于如何真正導(dǎo)入使用,我會(huì)再之后單獨(dú)寫一篇實(shí)戰(zhàn)文章,方便大家結(jié)合使用。
特別鳴謝,同事張昕的技術(shù)支持,以及上述引用到的第三方庫開源者。同時(shí)也為大家提供一個(gè) Android 工具類大全項(xiàng)目 — AndroidUtilCode



