MVVM全称:Model、View、ViewModel;
- Model:负责数据的请求、解析、过滤等数据层操作,其中Repository: 提供数据的 API(从本地或者网络)。
- View:负责视图部分展示
- ViewModel:作为View和Model之间的桥梁,负责监听Model的数据变化,并通知View进行更新
- 组件化通信路由(router) auto-service
- ViewModel > ViewModel overview > ViewModel
- androidx.lifecycle
- LiveData
- Databinding android.databinding ViewDataBinding kapt compiler plugin 数据绑定库 androidx.databinding Android Gradle 插件 1.5.0推出的新特性 Android Gradle 插件 4.0.0开始放在buildFeatures
- 网络框架1 retrofit2 + 协程 协程上下文与调度器 中文文档 协程上下文与调度器 英文文档
- 网络框架2 retrofit2 + Rxjava3 + rxandroid
- 日志框架 okhttp3:logging-interceptor
- 数据库 room
- api 玩Android 开放API
- Gradle依赖统一版本管理 compositebuild
- KSP 从 kapt 迁移到 KSP KSP官网文档
- TextInputEditText
- 开启Databinding数据绑定仍需要在模块中启用 kapt。在使用数据绑定的模块中,不能移除 kapt。
- 创建ViewModel方式 在BaseActivity和BaseFragment里统一通过ViewModelProvider创建ViewModel
- 如果没有封装成统一的方式,独立创建ViewModel 在gradle里依赖androidx.activity:activity-ktx:xxx 在Activity里,可以通过 by viewModels() 在gradle里依赖androidx.fragment:fragment-ktx:xxx 在Fragment里,可以通过 by activityViewModels()
- 依赖auto-service-annotations 在baselib里添加依赖 dependencies { api(“com.google.auto.service:auto-service-annotations:1.1.1”) }
- 依赖auto-service 在每个model单独添加依赖 dependencies { kapt(“com.google.auto.service:auto-service:1.1.1”) }
KotlinMVVMComponent 每个model都是单独创建gradle plugin, 也可以将业务层的HomeGradlePlugin、CommunityGradlePlugin、MineGradlePlugin,这三个改成统一使用一个gradle plugin。
Kotlin搭建MVVM, 使用DataBinding出现:XXX Unresolved reference: BR
生成kapt,在模块的build.gradle.kts中添加Kotlin-apt插件
plugins {
id("kotlin-kapt")
}
android {
kapt{
generateStubs = true
}
}