學習了kotlin有一段時間了, 每次寫專案/demo
的時候, 總是用到網路請求
、mvp
、mvvm
、常用工具類
、通用自定義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
外掛程式,幫助開發者快速生成對應模板**(activity
、presenter
、contract
、model
)。
這是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銀行大廈重點落成航向...