Skip to content

koin: Injecting the view‐model in activity

Devrath edited this page Mar 7, 2024 · 1 revision

ViewModel

class MainViewModel : ViewModel() {
   // ViewModel logic
}

Activity

class MainActivity : ComponentActivity() {

    val viewModel: MainViewModel by viewModel()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            KoinDemoTheme {
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    
                }
            }
        }
    }

}

DeclareViewModelModule

val viewModelModules = module {
    viewModelOf(::MainViewModel)
}

ApplicationClass

class KotlinApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin {
            androidContext(this@KotlinApplication)
            modules(viewModelModules)
        }
    }
}
Clone this wiki locally