最近由于项目改造,由MVP模式改为了MVVM模式,另外项目中使用到了组件化的架构。碰到很多问题简单阐述下:
Koin 基础的注入
val loginModel = module {
single {
RetrofitManager.instance.create(HttpConstants.ROOT_API, LoginApi::class.java)
}
single {
LoginRepository(get())
}
viewModel {
LoginViewModel(androidApplication(), get())
}
viewModel {
RegisterViewModel(androidApplication(),get())
}
}
application里面的开始初始化
startKoin{
// androidLogger(Level.DEBUG)
androidContext(this@LoginApplication)
modules(loginModel)
}
进阶的一些使用
在 Activity/Fragments 之间共享 ViewModel
class RegisterActivity : BaseActivity() {
val viewModel: RegisterViewModel by viewModel()
}
class AFragment : BaseFragment() {
val viewModel: RegisterViewModel by sharedViewModel()
}
class BFragment : BaseFragment() {
val viewModel: RegisterViewModel by sharedViewModel()
}