Introduction
  • Introduction
Fundamental Dependency Injection Techniques
  • Dependency Injection Terminology
  • Fundamental Dependency Injection Techniques
  • Udemy Course Review Popup
  • Comparison Between Fundamental Dependency Injection Techniques
  • Large-Scale Structure
Dependency Injection Architectural Pattern
  • Architectural Patterns
  • Dependency Injection Architectural Pattern (DIAP)
  • Fundamental Dependency Injection Techniques vs DIAP
Tutorial Application
  • Tutorial Application Demo
  • How to Get the Source Code of the Tutorial Application
  • Tutorial Application Code Review
  • Tutorial Application Refactoring Rationale
Journey to Dependency Injection in the Tutorial Application
  • Extraction of the User Interface Logic into MVC View
  • Exercise 1
  • Base Class for MVC Views
  • Extraction of the Domain Logic into Use Case
  • Exercise 2
  • Extraction of the Dialogs Management Logic into Dialogs Navigator
  • Extraction of the Navigation Logic into Screens Navigator
  • Model View Controller (MVC) Architectural Pattern
  • Sharing an Instance of a Service among Multiple Clients
  • Removing Unneeded "Proxy" Dependencies
  • The Law of Demeter
  • Refactoring the 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 a Factory
  • 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 (CoC)
  • 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
  • Provider Methods in Modules vs Automatic Discovery
  • Workflow with Dagger
  • Dagger Tutorial Summary
Additional Dagger Conventions
  • Android Services and Dialogs
  • Static Provider Methods and Component Builders
  • Type Bindings
  • Qualifiers
  • Providers
Dagger 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
  • Why ViewModel is So Complex
  • Simplification of ViewModel with SavedState
Hilt
  • Hilt
  • Hilt's Fundamental Assumptions
  • How to Get the Source Code
  • Gradle Configuration, Hilt Application, Android Entry Points
  • Installing Modules into Components
  • Hilt Scopes
  • Providing AppCompatActivity
  • Hilt and ViewModel
  • Hilt Summary
Course Summary
  • Course Summary
  • Bonus Lecture