Пытаюсь интегрировать Jetpack ViewModel в проект KMP.
При следующей конфигурации настольное приложение невозможно скомпилировать (ошибка ниже).
libs.versions.toml
androidxLifecycle = "2.8.0"
koin-compose = "1.2.0-Beta4"
navigation-compose = "2.8.0-alpha02"
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidxLifecycle" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin-compose" }
navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "navigation-compose" }
Коин
viewModelOf(::MyViewModel)
MyViewModel.kt
class MyViewModel(useCase: MyUseCase): androidx.lifecycle.ViewModel() {
val data = useCase()
.stateIn(
scope = viewModelScope,
SharingStarted.Eagerly,
initialValue = emptyList()
)
...
}
Исключение времени компиляции
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g. 'kotlinx-coroutines-android' and ensure it has the same version as 'kotlinx-coroutines-core'
Чтобы предоставить главный диспетчер для Compose Desktop, вы можете использовать зависимость org.jetbrains.kotlinx:kotlinx-coroutines-swing
из kotlinx.coroutines.
Для других платформ смотрите список доступных Сопрограмм для пользовательского интерфейса
Мне интересно, почему для ios это работает без добавления каких-либо зависимостей.