Dependency Injection in Android with Dagger and Hilt Course
Fundamental Dependency Injection Techniques
Terminology
Fundamental Dependency Injection Techniques
Comparison of Fundamental Dependency Injection Techniques
Large Scale Structure
Dependency Injection Architectural Pattern
Architectural Patterns
Dependency Injection Architectural Pattern (DIAP)
Fundamental Techniques vs Architectural Pattern
Tutorial Application
Tutorial Application
How to Get the Source Code
Code Review
Journey to Dependency Injection
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
Presentation Composition Root
Tutorial Application Refactoring Summary
Pure Dependency Injection
Pure Dependency Injection
The Main Benefit of Dependency Injection
Context Isolation
Objects vs Data Structures
Injecting Services “from Outside”
Convention Over Configuration
Dependency Injection Frameworks
Dagger 2 Tutorial
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
Workflow with Dagger
Dagger Tutorial Summary
Additional Dagger 2 Conventions
Injection into Android Services and Dialogs
Static Provider Methods and Component Builders
Type Bindings
Qualifiers
Providers
Dagger 2 and ViewModel
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
Reasons for the Complexity of ViewModel
Simplification of ViewModel with SavedState
Hilt
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
Providing ViewModels
Hilt Summary
Course Summary
Course Summary
Next Lesson
Terminology
Dependency Injection in Android with Dagger and Hilt Course
Terminology
Back to Course
Next Lesson