hilt предоставляет viewmodel в качестве реализации зависимостей

#android-jetpack-compose #dagger-hilt #koin

Вопрос:

Моя функция compose получает viewmodel в качестве параметра:

 @Composable
 fun Home(
viewModel: HomeViewModel = ViewModel()
 ) {
    val viewState by viewModel.state.collectAsState()
   }
}
 

Я хочу, чтобы ViewModel реализовал некоторый интерфейс и передал viewmodel self в качестве реализации :

 interface SomeInterface{
  val state: StateFlow<String>
}
class MainViewModel: ViewModel(),SomeInterface{
override val state: StateFlow<String>
    get() = MutableStateFlow("")
}

@Composable
 fun Home(
someInterface: SomeInterface
 ) {
    val viewState by someInterface.state.collectAsState()
   }
}
 

Как это сделать в Hilt или в Koin?

Комментарии:

1. Документация Android предлагает использовать viewModel: HomeViewModel = hiltViewModel() вместо viewModel: HomeViewModel = ViewModel()