📊 Capítulo 12: Injeção de Dependências (Hilt & Koin)
Especialização em Mobile Nativo Android
🗺️ O Grafo de Dependências com Hilt no Android
flowchart TD
APP["@HiltAndroidApp class MyApplication"]
--> SINGLETON["@Singleton @Provides fun provideDatabase(context): AppDatabase"]
--> VM["@HiltViewModel class ProdutosViewModel @Inject constructor(repository)"]
--> COMPOSE["@Composable fun ProdutosScreen(viewModel = hiltViewModel())"]
style APP fill:#ede7f6,stroke:#512da8,stroke-width:2px
style SINGLETON fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style VM fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style COMPOSE fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
🎯 Slide 1: Hilt (Baseado em Dagger / Compile-Time)
-
Vantagens: Validação do grafo de injeção em tempo de compilação (impossível tomar crash por dependência faltante em produção).
- Suporte nativo a
@HiltViewModele integração direta com o Compose viahiltViewModel().
🎯 Slide 2: Koin (Pragmático / Kotlin DSL)
val appModule = module {
single<HttpClient> { criarHttpClient() }
single<ProdutoRepository> { ProdutoRepositoryImpl(get()) }
viewModel { ProdutosViewModel(get()) }
}
- Sem geração pesada de código ou anotações complexas de compilação!
🎯 Slide 3: Escopos no Android
-
SingletonComponent: Vive durante todo o ciclo de vida do aplicativo. -
ActivityRetainedComponent: Sobrevive a rotações de tela (escopo do ViewModel). ViewModelScoped: Compartilhado entre múltiplos nós dentro da mesma tela de navegação.
🔗 Navegação do Capítulo 12
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim