// Step 1: Add Koin dependencies in your build.gradle
implementation "org.koin:koin-android:2.2.2"
implementation "org.koin:koin-core:2.2.2"
// Step 2: Create a Koin module
val appModule = module {
single { MyRepository() }
viewModel { MyViewModel(get()) }
}
// Step 3: Start Koin in your Application class
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@MyApp)
modules(appModule)
}
}
}
// Step 4: Use injected ViewModel in Activity or Fragment
class MyActivity : AppCompatActivity() {
private val myViewModel: MyViewModel by viewModel()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myViewModel.someLiveData.observe(this, Observer { data ->
// Update UI
})
}
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?