The extensions declared in this artifact simplify ViewModel injection with Katana. Also see katana-androidx-viewmodel-savedstate.
Create a ViewModel binding inside a module:
data class MyViewModel(val someDependency: SomeDependency) : ViewModel()
Module {
viewModel { MyViewModel(get()) }
}
Inject ViewModel in your Activity
or Fragment
:
class MyFragment : Fragment(),
KatanaTrait {
override val component = Component(...)
private val viewModel by viewModel<MyViewModel, MyFragment>()
}