Dagger 2: почему и зачем?

Я поделюсь своим богатым опытом Dependency injection при разработке под Android, в том числе при помощи Dagger 1 и 2. А также расскажу об интеграции Dagger 2 в большие проекты и пролью свет на подводные камни и «камасутру» написания юнит-тестов с Dagger 2.