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 FlatList con getItemLayout y claves estables; nunca listas anidadas en scrollables.
  • Memoiza con useCallback/React.memo solo 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

  1. Crea la ficha en Google Play Console (nombre, descripción, gráficos).
  2. Completa Seguridad de los datos, Permisos y enlaza la política de privacidad en una URL pública.
  3. Sube el AAB a la pista interna/prueba cerrada y prueba con dispositivos reales.
  4. 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.