Notícias sobre produtos

O Jetpack Navigation 3 está estável

Leitura de 3 min
Ver o perfil de Don Turner
Don Turner Engenheiro de relações com desenvolvedores

A versão 1.0 do Jetpack Navigation 3 é estável 🎉. Use-a nos seus apps de produção hoje mesmo. A JetBrains já está usando o Compose no app KotlinConf (link em inglês).

A Navigation 3 é uma nova biblioteca de navegação criada do zero para adotar o estado do Jetpack Compose. Ele oferece controle total sobre a backstack, ajuda a manter o estado de navegação e permite criar layouts adaptáveis com facilidade, como detalhes e listas. Há até uma versão multiplataforma da JetBrains.

Por que uma nova biblioteca?

A biblioteca original do Jetpack Navigation (agora Nav2) foi projetada há sete anos e, embora atenda bem aos objetivos originais e tenha sido aprimorada de forma iterativa, a maneira como os apps são criados mudou fundamentalmente. 

A programação reativa com uma interface declarativa agora é o padrão. O Nav3 adota essa abordagem. Por exemplo, o NavDisplay (o componente de interface do Nav3 que mostra suas telas) simplesmente observa uma lista de chaves (cada uma representando uma tela) apoiada pelo estado do Compose e atualiza a interface quando essa lista muda.

nav-display.png

A Nav2 também pode dificultar o uso de uma única fonte de verdade para o estado de navegação, porque ela tem o próprio estado interno. Com a Nav3, você fornece seu próprio estado, o que dá controle total.

Por fim, vocês pediram mais flexibilidade e personalização. Em vez de ter uma única API monolítica, a Nav3 oferece APIs menores e separadas (ou "blocos de construção") que podem ser combinadas para criar funcionalidades complexas. O Nav3 usa esses elementos básicos para fornecer padrões sensatos para casos de uso de navegação bem definidos. 

Essa abordagem permite: 

Leia mais sobre o design e os recursos no blog de lançamento. 

Migrar do Navigation 2

Se você já usa o Nav2, especificamente o Navigation Compose, considere migrar para o Nav3. Para ajudar você, há um guia de migração. As principais etapas são: 

  1. Adicione as dependências do Navigation 3.
  2. Atualize as rotas de navegação para implementar a NavKey. Suas rotas não precisam implementar essa interface para usar o Nav3, mas, se fizerem isso, você poderá aproveitar a função rememberNavBackStack do Nav3 para criar uma backstack persistente.
  3. Crie classes para armazenar e modificar o estado de navegação. É nelas que as backstacks são armazenadas.
  4. Substitua NavController por essas classes.
  5. Mova os destinos do NavGraph do NavHost para um entryProvider.
  6. Substitua NavHost por NavDisplay.

Como testar a migração de agentes de IA

Você pode usar um agente de IA para ler o guia de migração e realizar as etapas no seu projeto. Para testar isso com o Modo Agente do Gemini no Android Studio:

  • Salve esta versão em markdown do guia no seu projeto.
  • Cole este comando no agente (mas não pressione Enter): "Migrate this project to Navigation 3 using ".
  • Digite @migration-guide.md para fornecer o guia como contexto ao agente. 

Como sempre, revise com atenção as mudanças feitas pelo agente de IA, porque ele pode cometer erros. 

Queremos saber como foi sua experiência ou a do seu agente. Envie seu feedback aqui.

Receitas de navegação saborosas para cenários comuns

Para casos de uso comuns, mas com nuances, temos um repositório de receitas. Isso mostra como combinar as APIs Nav3 de uma maneira específica, permitindo que você escolha ou modifique a receita de acordo com suas necessidades. Se uma receita se tornar popular, vamos considerar "graduar" as partes não diferenciadas dela na biblioteca principal do Nav3 ou em bibliotecas complementares. 

code-recipes.png

Atualmente, há 19 receitas, incluindo: 

No momento, estamos trabalhando em uma receita de links diretos, além de uma integração com o Koin, e temos muitas outras planejadas. Um engenheiro da JetBrains também publicou uma versão multiplataforma do Compose das receitas (links em inglês).

Se você tiver um caso de uso comum e quiser ver uma receita para ele, envie uma solicitação de receita. 

Resumo

Para começar a usar o Nav3, confira a documentação e as receitas. Além disso, fique de olho em uma semana inteira de conteúdo técnico, incluindo: 

  • Um vídeo de investigação sobre a API que aborda modularização, animações e layouts adaptáveis.
  • Uma sessão de perguntas e respostas ao vivo com os engenheiros que criaram o Nav3.

A Semana de Destaque do Nav3 começa em 1º de dezembro de 2025. 


Como sempre, se você encontrar algum problema, informe aqui. 

Escrito por:
Continue lendo