Dagger gets a bad rap for being "difficult to understand", or "overly complicated", or "black magic". In reality, Dagger generates pretty straight-forward, elegant wiring code similar to how we would likely write it manually and, I believe, it's the complexity of large scale apps that makes it complex.
In this talk we'll look at different types of injection that Dagger supports, and the code it generates to do so, to get an understanding of what it's doing and how it works. We'll then dive into Components and Subcomponents to see how Dagger wires together our dependencies into a graph. Finally, we'll look at how Dagger can be extended using Anvil and other tools.