Navigating Dependency Injection with Metro
summary
Metro is a Kotlin compiler plugin that implements a compile-time DI system, generating IR (no source stubs) and claiming 40–70% faster builds by avoiding multiple KSP/annotation-processing compilation stages. It produces graphs, supports scopes, assisted injection, multibindings, and private provider generation so injected helpers can stay nonpublic. Aggregation mirrors Anvil with Anvil-style aggregation built-in and offers runtime interop with Dagger/Anvil/Kotlin Inject; benchmarks and repo samples validate the approach. Multiplatform and IDE support are experimental but present.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:49Dependency injection importance
- 4:40Manual DI vs frameworks
- 5:42Why Metro DI
- 7:05Metro basics
- 9:10Binding types explained
- 12:00Advanced binding types
- 15:12Aggregation and contributions
- 18:01Provider and Lazy in Metro
- 19:25Graph extensions and architecture
- 21:53Metro compiler advantages
- 26:48Frontend FIR processing
- 29:39IR transformation and validation
- 33:49Error handling in Metro
- 35:11Interoperability with frameworks
- 37:40FAQ and future plans
- 39:25Q&A
related talks
40mNavigating Dependency Injection with Metro
45mFuture of Dependency Injection
37mAdvanced multi-platform dependency injection
37mDagger + Anvil: Learning to Love Dependency Injection
29mDIY Dependency Injection with Kotlin
40mPlugging into Anvil and powering up your dependency injection
35mDIY Dependency Injection with Kotlin
38mExtending kotlin-inject for fun & profit
