icerockdev / moko-mvvm

Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development
https://moko.icerock.dev/
Apache License 2.0
995 stars 95 forks source link

add koin integration module #160

Open Alex009 opened 2 years ago

Alex009 commented 2 years ago

https://kotlinlang.slack.com/archives/CMC5LN42W/p1634901111003300?thread_ts=1634899812.002200&cid=CMC5LN42W

So for Koin, we have our own method too In common:

expect inline fun <reified T : BaseViewModel<*, *>> Module.viewModelDefinition(
    qualifier: Qualifier? = null,
    noinline definition: Definition<T>
): Pair<Module, InstanceFactory<T>>

While then for Android the implementation will call the Koin viewModel:

actual inline fun <reified T : BaseViewModel<*, *>> Module.viewModelDefinition(
    qualifier: Qualifier?,
    noinline definition: Definition<T>,
): Pair<Module, InstanceFactory<T>> = viewModel(qualifier = qualifier, definition = definition)

And for iOS will use a factory:

actual inline fun <reified T : BaseViewModel<*, *>> Module.viewModelDefinition(
    qualifier: Qualifier?,
    noinline definition: Definition<T>,
): Pair<Module, InstanceFactory<T>> = factory(qualifier = qualifier, definition = definition)
periva101 commented 1 year ago

.

periva101 commented 1 year ago

any updates?

sunyongsheng commented 1 year ago

any updates? +1

enoler commented 1 year ago

No updated on that? I think it would be a really useful implementation.