- Android Studio Flamingo ou mais recente.
- Conhecimento básico em Jetpack Compose e Kotlin.
MainActivity: Configura a navegação e o tema.App: Define oNavHoste gerencia as rotas.ScreenA: Tela inicial com botão para navegar paraScreenB.ScreenB: Tela que exibe um ID recebido como argumento e permite retornar àScreenA.- Rotas: Implementadas com objetos (
@Serializable) para facilitar o compartilhamento de dados.
As rotas são definidas como objetos serializáveis, como mostrado abaixo:
@Serializable
object RouteScreenA
@Serializable
data class RouteScreenB(val id: Int)Ao navegar, os dados podem ser passados diretamente como argumentos:
navController.navigate(RouteScreenB(id = 1))E na tela de destino, os argumentos são recuperados:
val (id) = it.toRoute<RouteScreenB>()O NavHost conecta as rotas e seus respectivos composables:
NavHost(
navController = navController,
startDestination = RouteScreenA
) {
composable<RouteScreenA> {
ScreenA(navController)
}
composable<RouteScreenB> {
val (id) = it.toRoute<RouteScreenB>()
ScreenB(navController, id)
}
}- Screen A: Tela inicial com um botão para navegar para a próxima tela (
Screen B). - Screen B: Exibe um ID recebido como parâmetro e permite voltar para a tela anterior.
- Jetpack Compose: Interface declarativa para Android.
- Kotlin Serialization: Para criar rotas dinâmicas e serializáveis.
- Material3: Componentes visuais modernos.
Sinta-se à vontade para abrir issues e pull requests para contribuir com melhorias neste projeto.
Desenvolvido com ❤️ usando Jetpack Compose.