In this post, I'd like to compare the steps required to apply Dagger and Koin to the MVVM project. From the very beginnign, we can already see a couple of big differences. Dagger is written in Java and Koin in Kotlin, and using both libraries in a Kotlin project should not bring any challenges. However, implementing Koin in Java can be a little tricky. One big thing worth mentioning is that while Dagger is a fully acknowledged DI project, while Koin is only described as Service Locator.
A couple of assumptions for this article: To fully understand this article reader should have at least basic knowledge about Dagger 2 library. To simplify things, later on, I will refer to Dagger 2 library just as Dagger. I used here as example MVP architecture but any other could be used with either of those libraries.