Android ViewModel
This tutorial lets you write an Android/Kotlin application and use Koin inject and retrieve your ViewModel components.
Get the code
Gradle Setup
Add the Koin Android dependency like below:
Our components
Let's create a HelloRepository to provide some data:
Let's create a ViewModel class, for consuming this data:
Writing the Koin module
Use the module
function to declare a module. Let's declare our first component:
info
we declare our MyViewModel class as a viewModel
in a module
. Koin will give a MyViewModel
to the lifecycle ViewModelFactory and help bind it to the current component.
Start Koin
Now that we have a module, let's start it with Koin. Open your application class, or make one (don't forget to declare it in your manifest.xml). Just call the startKoin()
function:
Injecting dependencies
The MyViewModel
component will be created with HelloRepository
instance. To get it into our Activity, let's inject it with the by viewModel()
delegate injector:
info
The
by viewModel()
function allows us to retrieve a ViewModel instance from Koin, linked to the Android ViewModelFactory.
The
getViewModel()
function is here to retrieve directly an instance (non lazy)