Migración de navegación en Expo (SDK 58)
Tres trabajos. Elige según la solicitud; un plan de migración necesita los tres en orden.
| Solicitud | Hacer |
|---|---|
| "¿Cómo se hace la navegación en este repo?" | Analizar |
| "Planificar la migración", "¿Podemos marcar esto con un flag?", "¿React Navigation o @expo/ui?" | Analizar, luego Planificar |
| "Estamos en React Navigation y queremos más elementos nativos y una librería estable para navegación y deep links" | Analizar, luego Planificar, con el escenario de React Navigation existente |
| "¿Cómo construyo un diseño sidebar / sheet / Duo?", "¿Funciona X?" | Buscar en el catálogo |
Nombres objetivo utilizados en todo el documento:
- React Navigation significa Expo Router sobre react-native-screens. Desde SDK 56,
expo-routerya no depende de@react-navigation/*y bifurca las partes sobre las que se construye. SDK 58 eliminó la mayor parte de esa API bifurcada. - Plain React Navigation significa
@react-navigation/*7.x sin Expo Router. - @expo/ui significa SwiftUI en iOS y Jetpack Compose en Android.
Lee solo el repositorio objetivo. Esta skill planifica; no cambia código de la aplicación a menos que el usuario lo solicite por separado.
Expo cambia cada SDK. Los datos de API aquí fueron verificados el 2026-11-02 contra SDK 58. Consulta https://docs.expo.dev/versions/v58.0.0/ para cualquier API que estés a punto de usar y que el catálogo no muestre como verificada.
Analizar
- Ejecuta
node <skill>/scripts/inventory-navigation.mjs <repo-root>. Solo lee e imprime señales con ubicacionesruta:línea. Cuando una señal muestratruncatedmayor que cero, vuelve a ejecutar con--max-locations 200. - Sigue references/analysis.md. Completa templates/analysis-report.md.
Terminado cuando cada fila del informe tiene un valor con evidencia, o dice qué se buscó y no se encontró, y cada señal del inventario es confirmada o descartada al leer su código.
Planificar
Sigue references/migration-planning.md. Busca:
- references/target-decision.md: la recomendación entre objetivos
- references/flag-seams.md: dónde puede ubicarse un flag, qué está documentado, qué necesita un spike
- references/no-flag-paths.md: el cambio cuando un flag no es posible
- references/api-mapping.md: saltos de SDK, reemplazos de importación, cambios disruptivos
- references/existing-react-navigation.md: el escenario para el arquetipo N, o la parte N de M: punto de partida, orden de estabilidad, deep links
Completa templates/migration-plan.md. El plan siempre cubre el cambio con flag, el cambio sin flag, pasos ordenados que cada uno se despliega y verifica solo, y una salida limpia que elimina cualquier flag y lo que el plan reemplazó. Nombra una recomendación con razones de este repositorio. Esa recomendación puede ser mantener al propietario actual de la navegación; cuando solo se mueve el SDK, el plan dice que no hay nada que marcar con flag, y por qué.
Buscar un patrón
references/pattern-catalog.md enumera cada escenario y su archivo. Cada archivo proporciona código de un prototipo funcional para ambos objetivos en iOS y Android, estado por plataforma, problemas y notas de migración. Cita las palabras de estado tal como están escritas: verified significa probado en un simulador o emulador, y no se usó hardware físico.
templates/ contiene los archivos reutilizables: los módulos locales para secciones de sidebar, colocación de sidebar y visibilidad de la barra de navegación, la capa de ayuda de navegación, y los componentes de bisagra y panel dividido. Los módulos locales necesitan una compilación de desarrollo.