Summary
In this chapter, we analyzed the concept of DI and how it should be applied to separate concerns and prevent objects from having the responsibility of creating other objects. We saw how this is of great benefit for testing. We started the chapter by analyzing the concept of manual DI. This served as a good example of how DI works and how it can be applied to an Android application; it served as the baseline when comparing the DI frameworks.
We also analyzed two of the most popular frameworks that help developers inject dependencies. We started with a powerful and fast framework called Dagger 2, which relies on annotation processors to generate code to perform an injection. We then looked at how Hilt reduces the complexity of Dagger for Android applications. We also investigated Koin, a lightweight framework written in Kotlin with slower performance but simpler integration and a lot of focus on Android components, which makes it ideal for smaller projects but might become...