Dagger 2 is a dependency injection framework for Java and Android. It implements the full stack with generated code