Support falling back to factory on platforms without AndroidX ViewModel
Is your feature request related to a problem? Please describe.
I specify my ViewModel modules differently on iOS and Android. On Android, I want the viewModel<> specifier. However, on iOS (I am using SwiftUI) I want this to be a normal factory<> specifier.
Describe the solution you'd like
I'd like to be able to make the @ViewModel annotation fall back to @Factory on platforms that doesn't support viewModel natively.
BaseViewModel.kt
expect abstract class BaseViewModel()
BaseViewModel.ios.kt
actual abstract class BaseViewModel()
BaseViewModel.ios.kt
import androidx.lifecycle.ViewModel
actual abstract class BaseViewModel actual constructor(): ViewModel()
MyViewModel.kt
@FactoryViewModel
class MyViewModel: BaseViewModel()
@Module
@ComponentScan
class MyModule
Describe alternatives you've considered
I can do this with an expect/actual module with pure Koin.
ViewModelModule.ios.kt
actual object MyModule {
val module = module {
factory<MyViewModel> { MyViewModel() }
}
}
ViewModelModule.android.kt
actual object MyModule {
val module = module {
viewModel<MyViewModel> { MyViewModel() }
}
}
Target Koin project
koin-annotations
could be an option
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.