Как нам внедрить ViewModel с зависимостью с помощью Koin?
Итак, например, у меня есть ViewModel
вот так:
class SomeViewModel(val someDependency: SomeDependency, val anotherDependency: AnotherDependency): ViewModel()
Теперь в официальной документации, здесь, говорится, что для предоставления a ViewModel
мы могли бы сделать что-то вроде:
val myModule : Module = applicationContext {
// ViewModel instance of MyViewModel
// get() will resolve Repository instance
viewModel { SomeViewModel(get(), get()) }
// Single instance of SomeDependency
single<SomeDependency> { SomeDependency() }
// Single instance of AnotherDependency
single<AnotherDependency> { AnotherDependency() }
}
Затем, чтобы ввести его, мы можем сделать что-то вроде:
class MyActivity : AppCompatActivity(){
// Lazy inject SomeViewModel
val model : SomeViewModel by viewModel()
override fun onCreate() {
super.onCreate()
// or also direct retrieve instance
val model : SomeViewModel= getViewModel()
}
}
Меня сбивает с толку то, что обычно вам понадобится ViewModelFactory
, чтобы предоставить ViewModel
зависимости. Где здесь ViewModelFactory
? это больше не нужно?