MVVM大家都了解差不多了尉间,但是我發(fā)現(xiàn)MVVM整成架構(gòu)時(shí)锹引,每個(gè)人的寫法真的是千差萬(wàn)別冶伞。
除了MVVM必要的ViewModel系任、LiveData,其它寫法也沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)恳蹲,看下來(lái)寫法特別多,jetpack俩滥、kotlin嘉蕾、java、databinding霜旧、rxjava错忱、協(xié)程、操作符等等各種混用,甚至還有把mvp的presenter當(dāng)vm使用的颁糟,有的項(xiàng)目混用的多了看起來(lái)真的很不直觀航背,沒(méi)法用到實(shí)際項(xiàng)目中。
純kotlin+ViewModel+LiveData+協(xié)程
那就自己寫一個(gè)簡(jiǎn)單的純凈版mvvm棱貌,不用jetpack玖媚、databinding、rxjava婚脱、晦澀的操作符等今魔。同時(shí)也練習(xí)一下kotlin各種高階函數(shù)、擴(kuò)展障贸、新特性等错森。git地址https://github.com/wushaoge/WsgMvvm
屏幕截圖
主要功能
- 封裝統(tǒng)一Base基類,加載頁(yè)篮洁、錯(cuò)誤頁(yè)
- ViewModel和LiveData擴(kuò)展
- 常用各種擴(kuò)展
- 網(wǎng)絡(luò)請(qǐng)求+協(xié)程回調(diào),封裝統(tǒng)一的onAppLoading 涩维、onAppSuccess、onAppError袁波、onAppComplete回調(diào)
- 網(wǎng)絡(luò)框架使用的Rxhttp https://github.com/liujingxing/okhttp-RxHttp
- 圖片框架使用的colihttps://github.com/coil-kt/coil
- 發(fā)現(xiàn)界面拷貝eyepetizer項(xiàng)目
- 新建項(xiàng)目可以以base module作為依賴
參考項(xiàng)目
https://github.com/Reginer/MVVMHub
https://www.pgyer.com/eyepetizer
這兩個(gè)項(xiàng)目強(qiáng)烈建議多學(xué)習(xí)
License
所有數(shù)據(jù)來(lái)源于開(kāi)眼瓦阐,僅供學(xué)習(xí)和交流使用,嚴(yán)禁用于任何商業(yè)用途篷牌,原作公司擁有所有權(quán)利睡蟋。
Copyright (c) 2020.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.