Mejores prácticas de Expo CLI
Un resumen condensado de las 25 mejores prácticas más importantes extraídas de todas las páginas en esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 mejores prácticas más importantes extraídas de todas las páginas en esta sección.
Inicia Metro con npx expo start: Usa la entrada de Expo CLI - react-native start puro omite el middleware específico de Expo e integraciones de doctor.
Usa LAN en Wi-Fi compartida: Iteración más rápida para teléfono + laptop en la misma red - tunnel añade latencia y dependencias externas.
Recurre al tunnel solo cuando estés bloqueado: Las VPN corporativas y el aislamiento de Wi-Fi de invitados necesitan --tunnel - documenta la expectativa de recarga más lenta para el equipo.
Usa --clear cuando los bundles se vean obsoletos: Sospecha fantasmas de Fast Refresh o archivos de entrada incorrectos - limpiar la caché es más barato que agujeros de depuración de horas.
Estandariza scripts npm: start, start:tunnel, ios, android - la incorporación no debe requerir memorizar combinaciones de banderas.
Abre el iOS Simulator con i desde la terminal: Más rápido que cambiar de contexto a Xcode para trabajo de UI diario - mantén un simulador encendido durante desarrollo de características.
Elige un nivel de API de Android realista: Coincide con la guía de RN 0.86 (imágenes de API recientes) - emuladores antiguos ocultan regresiones de borde a borde y permisos.
Captura simuladores en capturas de pantalla de CI: xcrun simctl y adb exec-out screencap - la regresión visual no necesita dispositivos físicos para cada PR.
Prueba en dispositivos físicos al menos semanalmente: Los simuladores se pierden cámara, push, haptics y rendimiento - construcciones USB o internas de EAS cierren la brecha.
Usa expo run:ios --device para iteración nativa: Los builds de desarrollo en hardware vencen a Expo Go una vez que se envía código nativo personalizado.
Empareja USB de Android con adb reverse cuando sea necesario: Los flujos de trabajo localhost Metro en dispositivo necesitan reenvío de puerto inverso - documenta el comando en README.
Adopta expo-dev-client temprano: Instala antes del primer módulo nativo - Expo Go no puede cargar dependencias nativas arbitrarias.
Inicia el cliente de desarrollo con npx expo start --dev-client: El lanzador espera el esquema personalizado - mezclar banderas de Expo Go causa errores de conexión confusos.
Reconstruye el cliente de desarrollo cuando actualices el SDK: OTA no puede cambiar shells nativos - programa eas build --profile development en la lista de verificación de actualización.
Registra elementos personalizados del menú dev con moderación: registerDevMenuItems para banderas de características y badges de env - no diez entradas que nadie recuerda.
Abre React Native DevTools con j: Depuración de Hermes vive en DevTools - depuración remota de Chrome no es compatible en RN moderno.
Usa el panel Components para bugs de layout: Seleccionar en dispositivo vence console.log conjeturas de layout - inspecciona props y arrays de estilo en vivo.
Emula light/dark en DevTools en RN 0.86: La emulación de media de Command Palette atrapa bugs de tema sin voltear constantemente la configuración del sistema.
Trata Flipper como legado: Por defecto a DevTools + IDEs de plataforma - no agregues Flipper a apps de Expo SDK 57 greenfield sin una brecha concreta.
Usa Xcode y Android Studio para fallos nativos: JS DevTools no reemplazan pilas de llamadas nativas - abre el IDE nativo cuando el redbox está del lado nativo.
Confía en Fast Refresh, no en Hot Reload: Hot Reload se ha ido - si el estado se ve mal después de editar, verifica las exportaciones default/named mixtas que rompen los límites de refresh.
Marca archivos // @refresh reset cuando sea necesario: Los módulos con estado que deben remontar deben optar por no preservarse - documenta por qué en el comentario.
Espera que useEffect se ejecute nuevamente después de refresh: No luches contra la re-fetch en refresh - efectos idempotentes o guarda con refs cuando la duplicación duele.
Depuración inalámbrica funciona después del emparejamiento USB: Android adb pair / iOS Xcode network pairing - verifica una vez por dispositivo, luego suelta el cable para pruebas en escritorio.
Distribución interna para QA fuera de ingeniería: Builds preview de EAS para PM y diseño - Expo Go no es un sustituto para comportamiento nativo de producción.
@refresh reset.r) es el escape hatch - no es un hábito diario.Versiones de stack: Esta página fue escrita para React 19.2.3, React Native 0.86.0, y Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última actualización: 16 jul 2026