Koin is a pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin using functional resolution only: no proxy, no code generation, no reflection!
I’m sure you’ve read a lot about writing good code using best practises like first five object-oriented design(OOD) by Uncle Bob, if you haven’t now would be a good time to quickly touch up on the top S.O.L.I.D: The First 5 Principles of Object Oriented Design as we will make some references to some of these principles.
Let’s assume you’re working on a project with several modules, either using dynamic feature modules or a runtimeOnly. In both cases the features modules code will not be made available at compile time but instead at runtime (this just means we can’t reference any code defined in the our dynamic or runtime only modules). Either way at some point you have to solve a certain number of…