Ответ
Для сохранения сущности, привязанной к объекту в Koin, используйте get() или by inject() для получения зависимости. Если объект должен сохраняться между экранами, объявите его как single или scoped в модуле Koin.
Пример с scoped для ViewModel:
// Модуль Koin
val appModule = module {
scope<MyActivity> {
scoped { MyRepository() }
viewModel { MyViewModel(get()) }
}
}
// В Activity
class MyActivity : AppCompatActivity() {
private val viewModel: MyViewModel by viewModel()
// или для обычной зависимости
private val repo: MyRepository by inject()
}
Для single (синглтон на всё приложение):
module {
single { MyRepository() }
}