Staff software engineer for Google. Currently member of Google's Java Core Libraries Team working on Dagger (google.github.io/dagger/): dependency injection for Java and Android. Former projects include Guava, Caliper, Google Takeout and Feedburner.
Dagger 2 is Google's solution for dependency injection on Android. It powers some of the largest and most successful applications from Google and others, but applying it has been fraught with ambiguity and ad hoc solutions that require a lot of up-front engineering.
In an effort to make it a viable solution for more projects, the Dagger team at Google has focused specifically on creating new features, libraries and well-documented patterns for using Dagger 2 in an Android application. The result is a structure that allows Android applications to be modular, testable, and performant with minimal boilerplate and infrastructure.
This is an overview of what has been added, how it was designed and how to apply it. Attendees should leave with a clear understanding the benefits of dependency injection in an Android app and how Dagger 2 can help realize those benefits most simply and effectively.
Take a peek into Dagger's generated code to better understand Dependency Injection and Dagger 2's recent optimizations. Get an insight into Dagger's design decisions and how it weighs various tradeoffs to implement common patterns consistently and effectively. Attendees will leave with a better understanding of how Dagger works, as well how the lessons learned can be applied more broadly.