Skip to content

Instantly share code, notes, and snippets.

@okalman
okalman / modules.kt
Created May 27, 2020 13:58
koin modules
val applicationModule = module {
...
}
val activityModule = module {
declareScope(scopeMainActivity)
...
}
val interactorModule = module {
factory { SomeInteractor(get()) }
@okalman
okalman / App.kt
Created May 27, 2020 13:59
App with koin
class App : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@App)
modules(
listOf(
applicationModule,
interactorModule,
activityModule,
@okalman
okalman / MainActivity.kt
Created May 28, 2020 06:06
MainActivity
val scopeMainActivity= ScopeSet(named<MainActivity>()).apply {
viewModel { (activity: Actitivty) ->
val data = activity.intent.getStringExtra("DATA")
MainViewModel(MainViewState(), data)
}
}
class MainActivity : BaseActivity<MainViewModel, MainViewState, ActivityMainBinding>(), MainView {
override var viewModelFactory: MainViewModelFactory = MainViewModelFactory(Provider {
currentScope.viewModel(