Skip to content

ChinaDragon01/KotlinMVVMComponent

Repository files navigation

一、简介Android MVVM架构模式

MVVM架构模式

MVVM全称:Model、View、ViewModel;

  • Model:负责数据的请求、解析、过滤等数据层操作,其中Repository: 提供数据的 API(从本地或者网络)。
  • View:负责视图部分展示
  • ViewModel:作为View和Model之间的桥梁,负责监听Model的数据变化,并通知View进行更新

本demo演示MVVM架构的使用

提醒

  • 开启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
    }
}

About

Android:使用Kotlin搭建MVVM+组件化App架构

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages