Android Dependency Injection with Dagger 2 and Kotlin

Android Dependency Injection with Dagger 2 and Kotlin

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 1h 52m | 266 MB

Dependency injection (DI) is increasingly popular in Android. Injection reduces the amount of code required in an application, reducing debugging overhead. A DI tool like Dagger, which assumes responsibility for creating and providing dependencies of an object, can help make your code cleaner, easier to understand, and easier to test. Dagger 2, the latest version, is particularly highly regarded for its speed and compile-time safety. In this course, Blake Meike teaches Android developers to use Dagger 2 with Kotlin—the newly embraced Android programming language. Review Dagger basics, including the four major types of dependency injection: method, field, lazy, and provider injection. Learn how to use Dagger annotations to declare dependencies, satisfy them, and create reusable modules you can share across your apps. Plus, learn about multibinding and components, the new way of associating modules with injection targets in Dagger 2.

Topics include:

  • Dagger basics
  • Method and field injection
  • Lazy and provider injection
  • Dagger annotations: @Module, @Binds, @Provides, and @Named
  • Multibinding
  • Components and subcomponents
  • Singletons and custom scope
Table of Contents

Introduction
1 Improve dependency injection with Dagger
2 What you should know
3 Using the exercise files

Basics
4 What is Dagger
5 Why use Dagger
6 Setting up a Dagger project

Essential Dagger
7 Building the graph with Inject and Component
8 Introducing Dagger
9 Method and field injection
10 Lazy and provider injection

Modules
11 When Dagger cant figure it out Modules and Binds
12 When its complicated Provides
13 When types are not enough Named
14 Multibinding Sets
15 Multibinding Maps with simple keys
16 Real-world example Architecture components 1
17 Real-world example Architecture components 2
18 Real-world example Architecture components 3
19 Multibinding Maps with complex keys
20 Real-world example Architecture components solved

Components
21 Components review
22 Extending the builder with Component.Builder and BindsInstance
23 Component dependencies
24 Introducing Subcomponents
25 Subcomponents review
26 Extending the subcomponent builder

Scope
27 Rethinking the graph
28 Singletons and Reuseable
29 Custom Scope

Conclusion
30 Next steps