different apps, in different codebases ! Should not assume clients will be using a 3rd party library ! Stay lean and lightweight ! Make the SDK configurable
Code Generation YES YES NO NO Single Instance NO NO YES NO Available at the time YES YES YES NO Adds dependency on another library YES YES YES YES ❌ ❌ ❌ ❌
that much ! Slightly more verbose ! Have to manually build advanced DI features ! Great for most use cases when you don’t already know a DI library really well
a Dependency Injection Library, Dagger ! There are no magic annotations. @Inject (JSR-330) ! Kotlin language features make this concise and straightforward ! Dependency Injection is critical for any app