Kotlin的魔能機甲 KtArmor(一)

2021-09-25 14:04:20 字數 3112 閱讀 1644

學習了kotlin有一段時間了, 每次寫專案/demo的時候, 總是用到網路請求mvpmvvm常用工具類通用自定義view, 索性把這些整合到一起, 搭成乙個android的腳手架——ktarmor.

ktarmor寓意著 為android 賦予戰鬥裝甲, 方便開發者快速進行android 開發。節約開發者開發時間。為了滿足開發者需求, 我整合了兩個分支, 分別對應著mvp,mvvm.

mvvm分支

架構模式:mvvm+androidx+kotlin+livedata+viewmodel

網路請求:coroutines+retrofit+okhttp

先在 build.gradle(project:***x) 的 repositories 新增:

allprojects 

}}

implementation 'com.github.hyzhan43:ktarmor:mvp-1.0.4'  // 根據github 引入最新版本即可
第二個引數是對應retrofitconfig配置。 (

)}再新建乙個 retrofitconfig 配置類, 繼承baseretrofitconfig. 並複寫baseurl屬性, 新增自己的 baseurl。

class myretrofitconfig :

baseretrofitconfig()

這樣你就建立好了乙個擁有kotlin+retrofit+okhttp+coroutine專案了。然後就可以愉快編寫自己的業務**了(●』◡』●)

我們先從簡單登入流程來熟悉一下ktarmor。首先編寫 logincontract, **如下:

inte***ce logincontract 

inte***ce presenter : basecontract.

presenter

}

然後新建乙個loginactivity, 繼承mvpactivity並傳遞對應logincontract.presenter泛型,實現logincontract.view介面, **如下:

class loginactivity : mvpactivity()

, logincontract.

view

}override

funaccountempty

(msg: int)

override

funpasswordempty

(msg: int)

override

funloginsuc

(loginrsp: loginrsp)

}

這裡 activity_login 裡面是簡單的 textinputedittext,呼叫presenter, 發起登入請求。傳遞賬號和密碼。其中 str() 為 textview 擴充套件方法。

// 獲取text內容

fun textview.

str(

): string

然後我們再看看對應 loginpresenter 實現, 繼承basepresenter,並傳遞對應 logincontract.view

class

loginpresenter

(view: logincontract.view)

: basepresenter

(view)

, logincontract.

presenter

if(password.

isempty()

)launchui(}

else},

)}}

在這裡, 我們採用協程來實現切換執行緒操作。在 launchui() 方法裡面啟動了乙個 ui 協程,在這裡呼叫 loginmodel 真正發起網路請求操作。

object loginmodel :

basemodel()

}}

同樣,loginmodel 需要繼承basemodel(),並呼叫 launchio 進行執行緒切換。切換到 io執行緒 通過apimanager.apiservice 發起網路請求。然後呼叫 await() 返回結果。這裡 apiservice 通過 retrofitfactory建立, 傳入 service class。

object apimanager 

}

inte***ce apiservice
以上就是登入的全過程。看到這裡,編寫乙個簡單login功能需要新建四個類,有點麻煩。有沒有更便捷的方法的。那肯定!ktarmor框架還有與之對應ktarmor-mvp外掛程式,幫助開發者快速生成對應模板**(activitypresentercontractmodel)。

這是ktarmor開篇的第一篇。大概講解了ktarmor基本用法。後續會詳細講解框架的使用、以及外掛程式的使用。至於ktarmor-mvvm版目前還在測試階段。後續也會陸續更新。敬請期待吧!

著急的小夥伴可以直接檢視下文原始碼~

下次再見

Kotlin的魔能機甲 KtArmor 三

繼上篇說到,ktarmor mvp的外掛程式使用。我們可以快速建立基本的模板 但是在編寫業務 時候,不熟悉ktarmor mvp框架,不知其然,無法駕馭這個魔能機甲。所以這篇我先從baseactivity 開始說起,介紹ktarmor mvp 的用法,深入原始碼 解析,帶你走進 ktarmor mv...

藍魔i7s刷機

刷i7s安卓bios 1.準備好fat32格式的u盤乙個,usb介面的鍵盤乙個,usbhub乙個,otg線一條 2.把fparts.txt fpt64.efi 自動公升級指令碼startup.nsh,以及需要公升級的bios bin檔案,一般命名為i7s spinor 0x.bin,如檔名更換則須修...

魔屏賦能「某大型銀行」 做金融時代的資訊化主場

原標題 魔屏賦能 某大型銀行 做金融時代的資訊化主場 某大型銀行 簡稱a銀行 中國五大銀行之 一 香港聯交所主機板上市,全國高達xwuqpuul40000個營業網點 31個省市分行,全國交易額最大的個人金融服務網路平台 a銀行總部和北京分行新建大廈在北京竣工,行內資訊化部署成為a銀行大廈重點落成航向...