React Native permite construir aplicaciones Android nativas compartiendo código con iOS. Aquí tienes el recorrido completo desde la creación del proyecto hasta el botón "Disponible en Play Store".
1. Expo o React Native CLI
Expo es la opción recomendada hoy: trae tooling listo (metrobundler, actualización por QR, expo-dev-client) y permite build en la nube con EAS. Elige React Native CLI (bare) solo si necesitas módulos nativos muy específicos, y aun así considera usar una app de Expo prebuild (config plugina): obtienes el proyecto nativo cuando lo necesitas.
2. Estructura de carpetas que escala
src/
app/ # rutas (expo-router) o pantallas
components/ # piezas reutilizables
features/ # módulos por dominio: auth, perfil, orders...
services/ # API, clientes HTTP
hooks/ # lógica reutilizable
state/ # stores y queries
theme/ # colores, tipografía, tokens
utils/
Agrupar por domino (feature folders) mantiene el proyecto comprensible cuando supera las cien pantallas.
3. Navegación y pantallas
Usa expo-router (basado en archivos) o React Navigation. Define el flujo de autenticación con guardas: si no hay sesión redirige a login; si hay sesión, a la pantalla principal. Carga de forma perezosa (React.lazy/Suspense) las pantallas pesadas.
4. Estado, caché y llamadas a la API
Evita el infierno de prop drilling: usa React Query / TanStack Query para servidor (cache, revalidación) y un store mínimo (Zustand) solo para estado de UI y sesión. Centraliza el cliente HTTP con interceptores para añadir el token y manejar errores 401.
5. Rendimiento y memoria
- Usa
FlatListcongetItemLayouty claves estables; nunca listas anidadas en scrollables. - Memoiza con
useCallback/React.memosolo donde haya re-renderizaciones costosas. - Evita imágenes gigantes; usa
resizeMode, formatos modernos y caché de imágenes. - Profila con el uso del perfil de Hermes (operaciones JS, memoria) antes de optimizar a ciegas.
6. Permisos y datos sensibles
Solicita permisos en contexto (cuando el usuario realiza la acción), no en la primera pantalla. Declara únicamente los permisos que tu app realmente usa; Google Play revisa esas declaraciones contra el comportamiento real. Si accedes a datos personales, debes publicar una política de privacidad y completar el formulario de seguridad de datos.
7. Firma y build (AAB)
Google Play exige el formato AAB (Android App Bundle). Firma con una upload key para subir y Play gestiona la firma de los APKs con la app signing key; guárdate ambas copias de seguridad en un lugar seguro: perder la clave equivale a perder la app.
# con EAS Build
eas build --platform android --profile production
# factibles: prebuild, bundle nativo, firmado con valores de app.json
8. Publicar en Play Store
- Crea la ficha en Google Play Console (nombre, descripción, gráficos).
- Completa Seguridad de los datos, Permisos y enlaza la política de privacidad en una URL pública.
- Sube el AAB a la pista interna/prueba cerrada y prueba con dispositivos reales.
- Promociónalo a producción y monitoriza crash reporting (Sentry o Firebase Crashlytics).
9. CI/CD básico
Automatiza: test + lint en cada Pull Request, después build de staging y, al etiquetar una release, build y publicación o generación del AAB. Así cada versión subida nace del mismo pipeline que probaste en CI.