Ответ
ViewModel доставляется через Koin с помощью viewModel или viewModelOf функций в модуле. Koin автоматически связывает жизненный цикл ViewModel с активити/фрагментом.
Пример модуля:
val appModule = module {
viewModel { MainViewModel(get()) } // get() внедряет зависимости
}
Использование во фрагменте:
private val viewModel: MainViewModel by viewModel()
Ключевые моменты:
- Koin автоматически создает ViewModelProvider.Factory
- ViewModel сохраняется при повороте экрана
- Зависимости внедряются через конструктор
- Можно использовать параметры через
parametersOf()