O que Migração de Navegação no Expo (SDK 58) faz?
Três tarefas. Escolha conforme a solicitação; um plano de migração precisa de todas as três em ordem.
| Solicitação | Ação |
|---|---|
| "Como a navegação é feita neste repositório?" | Analisar |
| "Planeje a migração", "Podemos colocar uma flag nisso?", "React Navigation ou @expo/ui?" | Analisar, depois Planejar |
| "Estamos no React Navigation e queremos mais elementos nativos e uma biblioteca estável para navegação e deep links" | Analisar, depois Planejar, com o cenário React Navigation existente |
| "Como faço uma sidebar / sheet / layout Duo?", "X funciona?" | Consultar o catálogo |
Nomes alvo usados em todo o documento:
- React Navigation significa Expo Router sobre react-native-screens. Desde o SDK 56
expo-routernão depende mais de@react-navigation/*e bifurca as partes nas quais se baseia. O SDK 58 removeu a maior parte dessa API bifurcada. - Plain React Navigation significa
@react-navigation/*7.x sem o Expo Router. - @expo/ui significa SwiftUI no iOS e Jetpack Compose no Android.
Leia apenas o repositório alvo. Esta skill planeja; ela não altera nenhum código do aplicativo, a menos que o usuário solicite separadamente.
O Expo muda a cada SDK. Os fatos da API aqui foram verificados em 02/11/2026 contra o SDK 58. Busque https://docs.expo.dev/versions/v58.0.0/ para qualquer API que você esteja prestes a usar e que o catálogo não mostre como verificada.
Analisar
- Execute
node <skill>/scripts/inventory-navigation.mjs <raiz-do-repositorio>. Ele apenas lê e imprime sinais com localizaçõescaminho:linha. Quando um sinal mostratruncadoacima de zero, execute novamente com--max-locations 200. - Siga references/analysis.md. Preencha templates/analysis-report.md.
Concluído quando cada linha do relatório tiver um valor com evidência, ou disser o que foi pesquisado e não encontrado, e cada sinal do inventário for confirmado ou descartado pela leitura do seu código.
Planejar
Siga references/migration-planning.md. Ele recorre a:
- references/target-decision.md: a recomendação entre os alvos
- references/flag-seams.md: onde uma flag pode ficar, o que está documentado, o que precisa de um spike
- references/no-flag-paths.md: a troca quando uma flag não é possível
- references/api-mapping.md: saltos de SDK, substituições de importação, mudanças de quebra
- references/existing-react-navigation.md: o cenário para o arquétipo N, ou a parte N de M: ponto de partida, ordem de estabilidade, deep links
Preencha templates/migration-plan.md. O plano sempre cobre a troca com flag, a troca sem flag, passos ordenados que cada um é enviado e verificado sozinho, e uma saída limpa que remove qualquer flag e o que o plano substituiu. Ele nomeia uma recomendação com razões deste repositório. Essa recomendação pode ser manter o proprietário atual da navegação; quando apenas o SDK se move, o plano diz que não há nada para colocar uma flag e explica por quê.
Consultar um padrão
references/pattern-catalog.md lista cada cenário e seu arquivo. Cada arquivo fornece código de um protótipo funcional para ambos os alvos no iOS e Android, status por plataforma, pegadinhas e notas de migração. Cite as palavras de status como escritas: verificado significa testado em um simulador ou emulador, e nenhum hardware físico foi usado.
templates/ contém os arquivos reutilizáveis: os módulos locais para seções de sidebar, posicionamento de sidebar e visibilidade da barra de navegação, a camada de ajudante de navegação e os componentes de dobradiça e painel dividido. Módulos locais precisam de um build de desenvolvimento.