Primeros pasos con React Native

Última actualización: 16/05/2023

En este artículo, exploraremos dos métodos para crear una app con React Native, centrándonos en el entorno de macOS. Sin embargo, es importante destacar que el proceso es bastante similar en otros sistemas operativos.

Dependencias mínimas en macOS

Si tenemos la versión de Ruby distribuida con el sistema, se recomienda instalar rbenv y poner un archivo .ruby-version en la raíz del proyecto RN. En el caso de RN 0.71.4 corresponde Ruby 2.7.6.

1. Proyecto con Expo Go

Es un método sencillo para empezar un proyecto React Native, no es necesario tener Xcode o Android Studio, ya que se ejecuta nuestra app en un entorno llamado Expo Go, que cuenta con las APIs más comunes de iOS y Android.

  • Crear nuestra primera aplicación:
  • Iniciar el servidor de desarrollo para nuestra app:
  • Instalar app Expo en nuestro dispositivo Android o iOS. Escaneamos el código qr o introducir la url en Expo para mostrar la app en el dispositivo.
  • Si queremos lanzar la app en el dispositivo virtual de Android, en una máquina virtual Genymotion o en el simulador de iOS, se entiende que se ha instalado Xcode y/o Android Studio:

2. Proyecto con código nativo usando React Native CLI

Con este método tendremos nuestro código React acompañado del proyecto nativo en Xcode para iOS y/o en Java para Android. Pudiendo acceder a estos como cualquier app nativa. Muy similar a como podemos trabajar en Xamarin, con Xamarin Forms y código nativo.

2.1. Preparar el entorno de trabajo

  • Instalar Xcode y/o Android Studio.
  • En el caso de Android Studio:
    • Instalar el Android SDK y crear un dispositivo en Android Studio.
    • Definir las variables de entorno en ~/.zshrc:
    • Instalar Java Development Kit:
  • Instalar Node.js y Watchman, como expliqué al inicio del artículo.

2.2. Pasos a seguir para crear un nuevo proyecto

  • Crear nuestra primera aplicación con código nativo:
  • Iniciar el servidor de desarrollo para nuestra app:
  • Configurar ESLint en nuestro proyecto.
  • Instalar dependencias en iOS con CocoaPods

    Si al realizar la compilación de iOS, los Pods generan algún error, puedes solucionarlo eliminando la línea correspondiente a los Pods en el archivo del proyecto Xcode. Para ello, debes acceder a la pestaña “Target” -> “Build Phases” -> “Copy Pods Resources” -> “Remove Ouput Files” y eliminar los archivos de salida relacionados con los Pods.

3. Tips

3.0. Limpiar caches

  • Xcode -> Product -> Clean Build Folder
  • Android Studio -> Build -> Clean Project

3.1. Opciones en dispositivo/Simulador

  • En iOS:
    • Recargar app con los cambios realizados en el código fuente: Cmd + r
    • Menú de desarrollo: Cmd + d
  • En Android:
    • Recargar app: Pulsar dos veces la tecla R, si estamos en emulador, o desde el menú de desarrollo en el dispositivo físico.
    • Menú de de desarrollo: Botón menú del dispositivo.

3.2. Migrar desde Create React Native App a un proyecto con código nativo

El siguiente comando funciona de manera similar a react-native init, creando el proyecto nativo para iOS y Android:

3.3. Ejecutar en dispositivo físico

Sólo es posible ejecutar en dispositivos físicos con proyectos React Native con código nativo.

En Android:

  • Activar modo depuración en el dispositivo: Ajustes -> Información del teléfono -> Número de compilación (Pulsar 7 veces).
  • Ir a Opciones de desarrollador -> Depuración por USB (Activar).
  • En el caso de de tener un dispositivo MI (MIUI) desactivar “Activar optimización MIUI” en Opciones de desarrollo. Si está activo no se instalará nuestra app.
  • Conectar el dispositivo por USB al ordenador.
  • Ejecutar el comando react-native run-android.

En iOS, el método es igual que con una app nativa:

  • Abrir el .xcworkspace de nuestro proyecto iOS.
  • Configurar la firma del código con nuestro Apple Developer.
  • Seleccionar el dispositivo físico y ejecutar.

3.4. Activar App Transport Security para iOS

En el caso de que usemos servicios, como API REST, debemos indicar el dominio en el info.plist de nuestro proyecto Xcode:

Si necesitáramos permitir cualquier dominio, sería así (No es lo recomendable):

3.5. Incluir tipografías personalizadas

  1. Añadir las tipografías que vayamos a usar al directorio /assets/fonts/. Si no existiera lo creamos.
  2. Editar el archivo package.json añadiendo las siguientes líneas a la raíz del JSON:
  3. Ejecutar, en la Terminal, el siguiente comando:
  4.  Ya podríamos usar las tipografías en React Native. Podemos comprobar que se han añadido al info.plist de iOS  y en /app/src/main/assets/fonts para Android.

3.6. Generar APK (Android)

Instalar en el dispositivo para debug:

  1. Conectar, por USB al ordenador, el dispositivo con la depuración USB habilitada.
  2. react-native run-android

APK/AAB firmado (Signed realease):

  1. Hacer los pasos que indica la documentación oficial para firmar un APK.
  2. Existen diversas opciones para compilar un APK, según su destino..
    • Paquete AAB para publicar en Google Play:
    • APK para probar una compilación de lanzamiento en un dispositivo, si está el dispositivo físico conectado se instala directamente:
    • APK para compartir con otras personas:

Guías oficiales para publicar en Apple App Store y Google Play Store
Fuentes consultadas: React Native Getting Started Guide, Running on device