MVPCommonLib 實(shí)現(xiàn)快速搭建開發(fā)MVP APP

最近在 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)入使用需要注意哪些。

  1. 統(tǒng)一項(xiàng)目中的配置版本。在 project 層級(jí)中可以發(fā)現(xiàn)有一個(gè) gradle.properties 文件,我們就在這里面去做配置,這樣方便之后修改一處全部更新。例如:

    圖一 定義變量

    圖二 變量使用

    ps: 關(guān)于圖一中 SUPPORT_LIB_VERSION 的使用,可以參照上面“Module 依賴第三方”中 “Design庫”,注意在使用 ${} 時(shí)外層必須是雙引號(hào)("")

  2. 由于使用到第三方庫“RecyclerView 萬能適配器”,需要在 project 的 build.gradle 中添加 “maven{url 'https://jitpack.io'}”

  3. 關(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容