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 and 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 reduced 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.
The exercises in this chapter were intended to explore how...