DEPENDENCY INJECTION ▸ Decouples application components ▸ Classes receive dependencies, don’t have to know where to find them or how to create them ▸ Makes it easy to swap components for mocks in tests
DAGGER ▸ Define dependencies at compile time to avoid reflection at runtime ▸ Compiler validates modules and injections ▸ Jake Wharton “Architecting Android Applications with Dagger" goo.gl/JIM7KI square.github.io/dagger
MOCKITO ▸ Mock/stub dependencies and function return values ▸ Inject mocks to validate behavior in tests ▸ Use included Hamcrest matchers for clear, readable tests code.google.com/p/mockito/
SAMPLE APPLICATION OVERVIEW ▸ Retrofit API with sample requests ▸ Dagger module ▸ Lombok & Android Studio plugin ▸ Login activity ▸ Activity with list fragment to make API request and display data