Migration de la navigation Expo (SDK 58)
Trois tâches. Choisissez selon la demande ; un plan de migration nécessite les trois dans l'ordre.
| Demande | Action |
|---|---|
| "Comment la navigation est-elle gérée dans ce dépôt ?" | Analyser |
| "Planifier la migration", "Pouvons-nous flaguer cela ?", "React Navigation ou @expo/ui ?" | Analyser, puis Planifier |
| "Nous sommes sur React Navigation et voulons plus d'éléments natifs et une bibliothèque stable pour la navigation et les deep links" | Analyser, puis Planifier, avec le scénario React Navigation existant |
| "Comment construire une sidebar / feuille / mise en page Duo ?", "Est-ce que X fonctionne ?" | Consulter le catalogue |
Noms cibles utilisés tout au long :
- React Navigation signifie Expo Router sur react-native-screens. Depuis SDK 56,
expo-routerne dépend plus de@react-navigation/*et forke les parties sur lesquelles il s'appuie. SDK 58 a supprimé la majeure partie de cette API forkée. - Plain React Navigation signifie
@react-navigation/*7.x sans Expo Router. - @expo/ui signifie SwiftUI sur iOS et Jetpack Compose sur Android.
Lisez uniquement le dépôt cible. Cette compétence planifie ; elle ne modifie aucun code d'application sauf demande explicite de l'utilisateur.
Expo change à chaque SDK. Les faits d'API ici ont été vérifiés le 2026-11-02 par rapport à SDK 58. Récupérez https://docs.expo.dev/versions/v58.0.0/ pour toute API que vous êtes sur le point d'utiliser et que le catalogue ne montre pas comme vérifiée.
Analyser
- Exécutez
node <skill>/scripts/inventory-navigation.mjs <racine-du-depot>. Il lit uniquement et affiche des signaux avec les emplacementspath:line. Lorsqu'un signal montretruncatedau-dessus de zéro, réexécutez avec--max-locations 200. - Suivez references/analysis.md. Remplissez templates/analysis-report.md.
Fait lorsque chaque ligne du rapport a une valeur avec des preuves, ou indique ce qui a été cherché et non trouvé, et que chaque signal d'inventaire est confirmé ou écarté en lisant son code.
Planifier
Suivez references/migration-planning.md. Il fait référence à :
- references/target-decision.md : la recommandation entre les cibles
- references/flag-seams.md : où un flag peut être placé, ce qui est documenté, ce qui nécessite un pic
- references/no-flag-paths.md : le basculement lorsqu'un flag n'est pas possible
- references/api-mapping.md : sauts de SDK, remplacements d'importation, changements cassants
- references/existing-react-navigation.md : le scénario pour l'archétype N, ou la partie N d'une approche mixte : point de départ, ordre de stabilité, deep links
Remplissez templates/migration-plan.md. Le plan couvre toujours le basculement flagué, le basculement sans flag, les étapes ordonnées dont chacune est livrée et vérifiée seule, et une sortie propre qui supprime tout flag et ce que le plan a remplacé. Il nomme une recommandation avec des raisons issues de ce dépôt. Cette recommandation peut être de conserver le responsable actuel de la navigation ; lorsque seul le SDK bouge, le plan indique qu'il n'y a rien à flaguer et pourquoi.
Consulter un pattern
references/pattern-catalog.md liste chaque scénario et son fichier. Chaque fichier donne du code provenant d'un prototype fonctionnel pour les deux cibles sur iOS et Android, le statut par plateforme, les pièges et les notes de migration. Citez les mots de statut tels qu'écrits : verified signifie testé sur un simulateur ou émulateur, et aucun matériel physique n'a été utilisé.
templates/ contient les fichiers réutilisables : les modules locaux pour les sections de sidebar, le placement de la sidebar et la visibilité de la barre de navigation, la couche d'aide à la navigation, et les composants de charnière et de panneau divisé. Les modules locaux nécessitent une build de développement.