I am just playing with compose multiplatform and injecting viewModel using Koin. Here are my koin Initialization in common Module:
fun initKoin(config: KoinAppDeclaration? = null) {
startKoin {
config?.invoke(this)
modules(
sharedModule,
platformModule
)
}
}
expect val platformModule: Module
val sharedModule = module {
singleOf(::DataRepositoryImpl).bind<DataRepository>()
viewModelOf(::HomeViewModel)
}
My actual implementation are like this in specific platform:
actual val platformModule = module {
single { createHttpClient(OkHttp.create()) }
}
My app runs fine in Android platform. But when I try to run it in desktop it doesnt start and gives an error dialog saying that “Can not create instance of Viewmodel..”. So far I found out that it only happens when I am using any coroutinescope
in the viewmodel. If I just use a plain viewmodel the app runs perfectly.
Please help!