📊 Capítulo 09: Navigation Compose Type-Safe
Especialização em Mobile Nativo Android
🗺️ A Nova Navegação Type-Safe do Jetpack Compose (Sem Strings Mágicas!)
flowchart TD
SERIALIZABLE["@Serializable data class DetalheProdutoRoute(val produtoId: Long)"]
--> NAV_HOST["NavHost(navController, startDestination = HomeRoute)"]
NAV_HOST --> COMPOSABLE["composable<DetalheProdutoRoute> { backStackEntry ->\n val rota = backStackEntry.toRoute<DetalheProdutoRoute>()\n DetalheProdutoScreen(id = rota.produtoId)\n}"]
CLICK["navController.navigate(DetalheProdutoRoute(produtoId = 42))"] --> NAV_HOST
style SERIALIZABLE fill:#ede7f6,stroke:#512da8,stroke-width:2px
style NAV_HOST fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style COMPOSABLE fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style CLICK fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
🎯 Slide 1: O Fim dos Argumentos por String (“produtos/{id}”)
- Na versão moderna do Navigation Compose com KotlinX Serialization, todas as rotas e argumentos são classes Kotlin fortemente tipadas, validadas em tempo de compilação!
🎯 Slide 2: Definindo Rotas com @Serializable
@Serializable
data object HomeRoute
@Serializable
data class PerfilUsuarioRoute(val usuarioId: String, val modoEdicao: Boolean = false)
🎯 Slide 3: Transições Animadas com enterTransition
- Personalize animações de entrada e saída de telas (
slideInHorizontally,fadeIn,scaleOut) de forma declarativa dentro doNavHost.
🔗 Navegação do Capítulo 09
| 📖 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