Un recetario para evaluar Expo UI, embed brownfield y flags experimentales de forma segura - ramas con límite de tiempo, criterios de éxito claros y resultados de ADR para que la exploración no se convierta en deuda de producción permanente.
Evalúa si los componentes Expo UI pueden reemplazar un chrome de pestaña nativa personalizado para layouts de tablet.
Paso 1 - Charter (antes del código)
## Spike: expo-ui-tablet-tabs- **Límite de tiempo:** 3 días- **Hipótesis:** Los primitivos de pestaña de Expo UI reducen PRs nativas para vista dividida de iPad- **Éxito:** Cambio de pestaña < 100ms en iPad 10ª gen; tipos de TypeScript compilan SDK 57- **Fallo:** Crash en Android API 26 o requiere edición manual de ios/ fuera de CNG- **Documento de resultado:** docs/adr/0012-expo-ui-tabs.md
# ADR 0012: Expo UI para pestañas de tablet - DEFER- **Razón:** Brechas de paridad de Android; equipo carece de revisor de SwiftUI- **Revisitar:** SDK 58 o cuando Expo UI llegue a estable en changelog- **Rama eliminada:** spike/expo-ui-tabs
PoC no se fusiona en host main hasta que CI publique artefactos automáticamente - Brownfield CI/CD
Paso 2 - Criterios de éxito
- [ ] Host lanza pantalla de checkout de RN desde botón nativo- [ ] Arranque en frío de superficie RN < 2s en Android de rango medio- [ ] Navegación atrás regresa a nativo sin fuga (Instruments / LeakCanary)- [ ] Token de auth pasado a través de contrato de bridge v1 - documentar en ADR- [ ] Sin copia manual de bundle JS en host assets
Paso 3 - Versión de contrato de bridge
// Documentar en ADR - host y RN deben aumentar juntosexport const BRIDGE_CONTRACT_VERSION = "1.0.0-spike";
- [ ] ADR: Nueva Arquitectura habilitada en todo el proyecto- [ ] Todos los módulos nativos compatibles con NA o reemplazados- [ ] Matriz de producción de eas build en verde- [ ] 72h sin crashes en canal de preview
Solo con ADR, feature flag desactivada por defecto, evidencia normal de plantilla PR y sin hacks solo spike restantes en app.config.ts. De lo contrario, programa sprint de PoC.
¿Quién aprueba la fusión de spike brownfield en repositorio host?
Líder de plataforma nativa + líder de móvil + propietario de CI. Solo aprobación de RN es insuficiente - el binario host se envía a tiendas.
Spike de Nueva Arquitectura falló - ¿bloqueamos SDK 57?
No - documenta plan de reemplazo de módulo. SDK 57 / RN 0.86 aún se envía; el módulo fallido obtiene fila de registro de EOL y cronograma de intercambio.