前言
自谷歌官方将Kotlin設定為官方語言以來,越來越多的人開始投入Kotlin的學習,前不久還有朋友問我Kotlin要怎麼學。
這些天,我也一直在思考這個問題。這裡就給大家分享一個項目,教大家如何用Kotlin實作MVP架構的Android快速開發架構?
簡介
- KCommon快速開發架構是基于rxjava、rxcache、okhttp、retrofit、rxlifecycle等第三方庫,采用mvp架構,使用kotlin語言開發的一個第三方庫,配合一鍵生成mvp相關代碼檔案的Android Studio模闆檔案,可以使使用者快速開發,專注于代碼邏輯,而非mvp相關的繁瑣配置。并且內建了Loading、成功、失敗和空頁面的切換,同時還提供了對下拉重新整理以及上拉加載更多的清單的模闆(BaseRefreshAndLoadMoreActivity||BaseRefreshAndLoadMoreFragment),省去了Android開發人員對相同類型代碼的重複編寫。Github位址
- 使用此開發架構需要的一些前置知識
- 熟悉android中的mvp架構
- 熟悉rxjava、rxcache、rxlifecycle等響應式程式設計架構
- 熟悉okhttp、retrofit
- 會複制快速開發模闆到指定位置并使用
- KCommon提供了兩種便于開發的模闆
- 以Base開頭的BaseActivity和BaseFragment。這種适合通用的開發。具體的使用請參考相關的demo。
- 以BaseRefreshAndLoadMore開頭的BaseRefreshAndLoadMoreActivity和BaseRefreshAndLoadMoreFragment。這種适合清單展示的頁面開發,具備下拉重新整理和上拉加載更多資料的功能。具體的使用請參考相關的demo。
- kotlin版本的demo java版本的demo
圖檔展示
- 總的示範
- 下拉重新整理和上拉加載更多
- 空頁面

- 在斷網情況下加載緩存
- 網絡請求錯誤并重新加載
基于Kotlin的使用說明(Java的使用具體參考java版本的demo)
- 導入依賴
- 在根目錄中的build.gradle檔案中加入
maven { url "https://jitpack.io" }
- 在應用下的build.gradle檔案中加入
- 在自定義的Application類中的onCreate方法中初始化CommonLibrary
//初始化KCommon
CommonLibrary.instance.initLibrary(this,
BuildConfig.APP_URL,
ApiService::class.java,
CacheService::class.java)
* 建議配合一鍵生成相關MVP類的Android Studio模闆進行開發,可極大提高開發效率。模闆位置 [Android Studio 快速開發模闆](https://github.com/BlackFlagBin/KCommonTemplate)
### 詳細說明
* CommonLibrary.instance.initLibrary()
/**
* 初始化
*
* @param context Application
* @param baseUrl retrofit所需的baseUrl
* @param apiClass retrofit使用的ApisService::Class.java
* @param cacheClass rxcache使用的CacheService::Class.java
* @param spName Sharedpreference檔案名稱
* @param isDebug 是debug環境還是release環境。debug環境有網絡請求的日志,release反之
* @param startPage 分頁清單的起始頁,有可能是0,或者是2,這個看背景
* @param pageSize 分頁大小
* @param headerMap 網絡請求頭的map集合,便于在網絡請求添加統一的請求頭,比如token之類
* @param errorHandleMap 錯誤處理的map集合,便于針對相關網絡請求傳回的錯誤碼來做相應的處理,比如錯誤碼401,token失效需要重新登入
* @param onPageCreateListener 對應頁面activity或fragment相關生命周期的回調,便于在頁面相關時機做一些統一處理,比如加入友盟統計需要在所有頁面的相關生命周期加入一些處理
* @param onPageDestroyListener 對應頁面activity或fragment相關生命周期的回調,便于在頁面相關時機做一些統一處理,比如加入友盟統計需要在所有頁面的相關生命周期加入一些處理
* @param onPageResumeListener 對應頁面activity或fragment相關生命周期的回調,便于在頁面相關時機做一些統一處理,比如加入友盟統計需要在所有頁面的相關生命周期加入一些處理
* @param onPagePauseListener 對應頁面activity或fragment相關生命周期的回調,便于在頁面相關時機做一些統一處理,比如加入友盟統計需要在所有頁面的相關生命周期加入一些處理
*
*/
fun initLibrary(
context: Application,
baseUrl: String,
apiClass: Class<*>,
cacheClass: Class<*>,
spName: String = "kcommon",
isDebug: Boolean = true,
作者:BlackFlagBin
原文位址:https://segmentfault.com/a/1190000014387119?utm_source=sf-related
該項目作者最近還有維護,雖然還存在一些問題,但是對很多人來說還是有很多值得學習的地方。感興趣的朋友可以深入鑽研一下。
以上就是本次的Kotlin項目實戰分享,下面我想帶給大家的是由國外某大佬整理出來的 Kotlin學習手冊
《kotlin 從入門到精通》。
這個手冊,内容深入淺出,把知識點進行了詳細的拆分講解,非常适合作為新手入門的第一份資料。檔案免費分享,需要的朋友記得**點贊+留言,然後點選這裡的藍色字型進入我的GitHub,**裡面有領取通道。
目錄
- 準備開始
- 基礎
- 類和對象
- 函數和lambda表達式
- 互用性
- 工具
- FAQ
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
準備開始
- 基本文法
- 習慣用語
- 編碼風格
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
基礎
- 基本類型
- 包
- 控制流
- 傳回與跳轉
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
類和對象
- 類和繼承
- 屬性和字段
- 接口
- 可見性修飾詞
- 擴充
- 資料對象
- 泛型
- 嵌套類
- 枚舉類
- 對象表達式和聲明
- 代理模式
- 代理屬性
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
函數和lambda表達式
- 函數
- 進階函數和lambda表達式
- 内聯函數
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
互用性
- 動态類型
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
工具
- Kotlin代碼文檔
- 使用Maven
- 使用Ant
- 使用Griffon
- 使用Gradle
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
FAQ
- 與 java 的對比
- 與 Scala 對比
- ……
如何用Kotlin實作MVP架構的Android快速開發架構?
這個手冊,内容深入淺出,把知識點進行了詳細的拆分講解,非常适合作為新手入門的第一份資料。檔案免費分享,需要的朋友記得**點贊+留言,然後點選這裡的藍色字型進入我的GitHub,**裡面有領取通道。