Kotlin MVVM 开发框架:Retrofit、协程、ViewBinding 和 EventBus 实践

本项目使用了MVVM架构,结合Kotlin、Retrofit、协程、ViewBinding和EventBus,整体架构如图所示。
### 框架特点
1. **使用Kotlin语言**
2. **采用MVVM + 协程开发模式**:相比传统的MVP + RXJava模式,减少了大量的MvpView创建及接口替代,不再需要Presenter的注册和替换,降低了内存泄漏的风险。
3. **ViewBinding**:通过根据xml自动生成代码,省去了手动调用findViewById的繁琐过程,使用起来比ButterKnife更加便捷。
4. **消息传递**:尽管GitHub上有LiveData改造的LiveDataBus,但我们仍然选择了EventBus,原因在于EventBus的强大功能。
zip
MVVM-master.zip 预估大小:76个文件
folder
MVVM-master 文件夹
file
.gitignore 208B
folder
app 文件夹
file
.gitignore 6B
file
build.gradle 2KB
folder
src 文件夹
folder
main 文件夹
file
AndroidManifest.xml 3KB
folder
res 文件夹
folder
mipmap-xhdpi 文件夹
file
ic_launcher_round.png 7KB
file
ic_launcher.png 5KB
folder
mipmap-mdpi 文件夹
file
ic_launcher_round.png 3KB
file
ic_launcher.png 3KB
folder
layout 文件夹
file
activity_test_event.xml 1KB
file
item_article.xml 2KB
file
activity_main.xml 2KB
file
activity_splash.xml 555B
folder
mipmap-xxhdpi 文件夹
file
ic_launcher_round.png 12KB
file
ic_launcher.png 8KB
folder
drawable 文件夹
file
ic_launcher_background.xml 5KB
folder
mipmap-anydpi-v26 文件夹
file
ic_launcher_round.xml 272B
file
ic_launcher.xml 272B
folder
xml 文件夹
file
network_security_config.xml 145B
file
file_path.xml 299B
folder
drawable-v24 文件夹
file
ic_launcher_foreground.xml 2KB
folder
mipmap-hdpi 文件夹
file
ic_launcher_round.png 5KB
file
ic_launcher.png 4KB
folder
mipmap-xxxhdpi 文件夹
file
ic_launcher_round.png 16KB
file
ic_launcher.png 10KB
folder
values-v23 文件夹
file
styles.xml 955B
folder
values 文件夹
file
attr.xml 65B
file
strings.xml 66B
file
colors.xml 1KB
file
styles.xml 833B
file
ids.xml 189B
folder
java 文件夹
folder
com 文件夹
folder
byl 文件夹
folder
mvvm 文件夹
folder
api 文件夹
folder
retrofit 文件夹
file
SSLContextSecurity.kt 1KB
file
RetrofitClient.kt 2KB
folder
response 文件夹
file
BaseResult.kt 147B
file
URLConstant.kt 351B
folder
interceptor 文件夹
file
LoggingInterceptor.kt 4KB
folder
error 文件夹
file
ErrorResult.kt 226B
file
ErrorUtil.kt 827B
file
ApiService.kt 455B
file
HttpUtil.kt 714B
folder
event 文件夹
file
Event.kt 162B
file
EventCode.kt 159B
file
EventMessage.kt 197B
folder
widget 文件夹
file
ViewClickDelay.kt 812B
folder
ui 文件夹
file
SplashActivity.kt 3KB
folder
main 文件夹
file
MainViewModel.kt 412B
folder
model 文件夹
file
ArticleBean.kt 717B
file
ArticleListBean.kt 252B
file
MainActivity.kt 2KB
file
TestEventActivity.kt 630B
folder
adapter 文件夹
file
ArticleListAdapter.kt 651B
folder
common 文件夹
folder
model 文件夹
file
TestModel.kt 57B
folder
base 文件夹
file
BaseViewHolder.kt 242B
file
BaseFragment.kt 5KB
file
BaseViewModel.kt 4KB
file
BaseActivity.kt 4KB
file
BaseAdapter.kt 2KB
folder
utils 文件夹
file
ToastUtil.kt 316B
file
StatusBarUtil.java 47KB
file
SysUtils.kt 3KB
file
LogUtil.kt 676B
file
App.kt 2KB
file
proguard-rules.pro 750B
file
settings.gradle 40B
file
build.gradle 864B
file
gradlew 5KB
file
README.md 7KB
file
gradlew.bat 2KB
file
gradle.properties 1KB
folder
.idea 文件夹
file
misc.xml 357B
file
gradle.xml 728B
folder
codeStyles 文件夹
file
codeStyleConfig.xml 142B
file
Project.xml 3KB
file
runConfigurations.xml 564B
file
jarRepositories.xml 2KB
folder
gradle 文件夹
folder
wrapper 文件夹
file
gradle-wrapper.properties 232B
file
gradle-wrapper.jar 53KB
...
zip 文件大小:178.43KB