Dependency Injection can seem to be an intimidating topic at first but is quite simple when you finally get to understand it. Dependency Injection is a technique in which an object receives other objects that it depends on (Wikipedia).
In this course, we will learn about Dependency Injection without using a library. You might just find out that you have already been using Dependency Injection in your code ?.
We will then go on to use Dagger and Guice Library for dependency injection.
Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is an adaptation of an earlier version created by Square and now maintained by Google. (Official Docs)
Guice (pronounced 'juice') is a lightweight dependency injection framework, it is developed and managed by Google.
Some topics you will learn in the course are field injection, method injection, modules, Dagger annotations, bindings, scopes, and custom scopes.
Dependency injection is a technique in which an object receives other objects that it depends on. These other objects are called dependencies. In the typical "using" relationship the receiving object is called a client and the passed (that is, "injected") object is called a service. The code that passes the service to the client can be many kinds of things and is called the injector. Instead of the client specifying which service it will use, the injector tells the client what service to use. The "injection" refers to the passing of a dependency (a service) into the object (a client) that would use it. (Wikipedia)