Android Dependency Injection with Dagger 2 and Hilt
Course Overview
Fundamental Dependency Injection Techniques
Lesson
Course Overview
Terminology
Fundamental Dependency Injection Techniques
Dependency Injection Architectural Pattern
Comparison of Fundamental Dependency Injection Techniques
Large Scale Structure
Architectural Patterns
Tutorial Application
Dependency Injection Architectural Pattern (DIAP)
Fundamental Techniques vs Architectural Pattern
Tutorial Application
Journey to Dependency Injection
How to Get the Source Code
Code Review
Tutorial Application Refactoring
Extraction of User Interface Logic into MVC View
Exercise 1
Extraction of a Base Class for MVC Views
Extraction of Domain Logic into Use Case
Exercise 2
Extraction of Dialogs Management Logic into DialogsNavigator
Extraction of Navigation Logic into ScreensNavigator
Model View Controller (MVC) Architectural Pattern
Reusing Single Instance of a Service in Multiple Clients
Removing Unneeded “Proxy” Dependencies
The Law of Demeter
Refactoring Use Case According to the Law of Demeter
Exercise 3
Application Composition Root
Lazy Initialization of Services
Activity Composition Root
Exercise 4
Exercise 4 Solution
Runtime Construction Arguments
Extraction of MVC Views Construction Logic into ViewMvcFactory
Exercise 5
Pure Dependency Injection
Presentation Composition Root
Tutorial Application Refactoring Summary
Pure Dependency Injection
The Main Benefit of Dependency Injection
Context Isolation
Objects vs Data Structures
Injecting Services “from Outside”
Dagger 2 Tutorial
Convention Over Configuration
Dependency Injection Frameworks
Dagger 2
Gradle Configuration
Components and Modules
Exercise 6
Scopes
Component as Injector
Dependent Components
Exercise 7
Subcomponents
Exercise 8
Multi-Module Components
Automatic Discovery of Services
Explicit Provider Methods vs Automatic Discovery
Additional Dagger 2 Conventions
Workflow with Dagger
Dagger Tutorial Summary
Injection into Android Services and Dialogs
Static Provider Methods and Component Builders
Type Bindings
Dagger 2 and ViewModel
Qualifiers
Providers
ViewModel
Incorrect ViewModel Integration
Dedicated Factories for ViewModels
Refactoring ViewModel Factories According to the Law of Demeter
Centralized Factory for ViewModels
Multibinding
ViewModel with SavedState
Hilt
Reasons for the Complexity of ViewModel
Simplification of ViewModel with SavedState
Dagger Hilt
Hilt’s Fundamental Assumptions
How to Get the Source Code
Gradle Setup
Removing Custom Dagger Components
Hilt Injection Mechanics
Installing Modules in Components
Hilt Scopes
Providing AppCompatActivity
Course Summary
Providing ViewModels
Hilt Summary
Course Summary
Previous Lesson
Next Lesson
Code Review
Android Dependency Injection with Dagger 2 and Hilt
Code Review
Previous Lesson
Back to Course
Next Lesson