Empezando con Android y React-Native

En este post vamos a configurar el ambiente en linux para empezar a programar aplicaciones en react-native para android (iOS queda fuera por razones obvias :grimacing:)

Requisitos:

  • Internet (claramente).
  • Conocimientos minimos sobre variables de entorno (como setearlas).
  • Paciencia.

1: Instalar Java

  • Abrimos la terminal e instalamos java (version 8).
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Una vez finalizado de instalar ejecutamos

java -version

Para ver si instalo correctamente y deberiamos ver algo similar a esto

openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-1~deb9u1-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

2: Descargar e Instalar Android Studio

Paso simple vamos a este link y descargamos Android Studio (for linux). Una vez que lo bajamos, extraemos la carpeta en /opt/ y dentro de la carpeta android-studio ejecutamos el archivo studio.sh.

Seleccionar la opcion que queramos si queremos importar configuraciones de instalaciones previas de Android Studio o no, click en OK.

Aca es donde deciamos que habia que tener paciencia, el wizard de instalacion de Android Studio te va a guiar el resto del proceso, el cual incluye la descarga del SDK (Software Development Kit), componentes que son necesarios para el desarrollo de apps. Parece que se va a trabar pero simplemente hay que esperar a que baje todos los archivos, va a depender mucho de tu velocidad de internet.

2.1: Librerias para PCs de 64-bit

Si tenes una pc con un SO de 64-bits tenes que instalarte estas librerias para poder trabajar.

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

3: Descarga version de SDK en AS

Abrimos el android studio, creamos un proyecto (esto es obligatorio, pero no le den demasiada importancia no vamos a usarlo). Dejamos trabajar al IDE y en la consola vemos que nos va a pedir de updatar gradle, hacemos click e instalamos. Una vez terminado de instalar, vamos a Tools > Android > SDK Manager ahi vamos a seleccionar la version de Android con la que queremos trabajar (yo elijo la version 6 uds pueden elegir la que quieran). Despues vamos a la tab SDK Tools y nos fijamos que esten chequeadas las opciones Android SDK Tools y Android SDK Platform-Tools de no estarlas las chequeamos, e instalamos ambas o la que falte.

4: Variables de entorno

Vamos a setear las variables de entorno para "decirle" al sistema donde ir a buscar las SDK-Tools. Abrimos la terminal y escribimos:

export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

Si queres que queden fijas en la terminal modifica tu archivo ~/.bashrc agregando esas 3 lineas al final y reiniciando la consola. Para testear si expusimos bien las variables en una terminal ejecutamos el comando

adb --version

El comando adb es una herramienta dentro de los SDK-Tools simplemente vamos a ver si encuentra ese archivo pidiendole la version, la salida deberia verse parecida a esta:

Android Debug Bridge version 1.0.39
Version 0.0.1-4500957
Installed as /home/{USER}/Android/Sdk/platform-tools/adb

5: Android Virtual Device Manager

El Android Studio cuenta con un emulador de android que podemos ejecutar en la PC, muy util para desarrollar y debuguear. Dentro del AS vamos a Tools > Android > AVD Manager y cliqueamos Create Virtual Device esto va a crear un nuevo emulador, seleccionan el tipo de dispositivo que quieren, la version de Android (instalada previamente en el paso 3). Una vez creada van a ver en la lista de dispositivos que se encuentra el suyo y a la derecha dentro de la columna Actions hay un boton de play que les permite ejecutarla.

5.1: Detalle sobre AVD

El emulador consume mucha RAM, lo cual va a ser que se realentice el proceso de buildear y de ejecutar la aplicacion, tambien presenta problemas en placas de video. Por ejemplo yo tengo una placa nVidia y para poder correr el AVD en mi maquina tuve que instalarme los drivers de linux de lo contrario el emulador abria y cerraba automaticamente. Les dejo el link para instalar los drivers de nVidia en debian, para los drivers de otras placas de video consulten con nuestro buen amigo google.

6: Node.js & npm

Ya tenemos instalado y corriendo nuestro emulador de android en nuestra pc ahora bien la pregunta del millon...Como arrancamos a programar? Simple, tenemos que bajarnos (para variar) nodejs y npm, son programas que nos van a permitir compilar nuestro codigo en JS y ejecutarlo como si fuera nativo, manos a la obra! Para node vamos a la terminal de linux y ejecutamos:

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs

Eso basta para tener node y npm (node package manager) instalados en tu PC, para comprobarlo hacemos node -v && npm -v

La salida deberia ser similar a:

v6.13.0
3.10.10

7: create-react-native-app

Muy bien, continuando con nuestro brevisimo post, en la terminal hacemos un sudo npm i -g create-react-native-app lo cual va a instalar un paquete de node de forma global (por eso sudo y por eso -g), para facilitarnos la creacion desde 0 de un proyecto en react native, dejo el link para que puedan ver el readme e interiorizarse mas si quieren.

8: Ejecucion

Una vez instalado el paquete vamos al destino donde querramos instalar el proyecto y en una terminal hacemos create-react-native-app rn-app eso nos va a crear una app llamada rn-app (uds le pueden poner el nombre que quieran). Va a tardar un rato (otra vez), pero una vez que termine ya estamos listos para trabajar. Entramos a la carpeta cd rn-app y ejecutamos npm start en una consola y en otra npm run android si tenemos el emulador abierto la aplicacion se va a ejecutar en el mismo, sino va a fallar y salir.

8.1: Ejecucion en dispositivo

Para este paso vamos a necesitar un cable usb y un celular (con android obviamente). Vamos a habilitar el debug con USB en el celular, para eso hay que tener las opciones de desarrollador activadas, eso lo hacemos yendo a Configuracion > Acerca de y cliqueamos el numero de build 7 veces, despues volvemos a configuracion y vamos a tener las Opciones de Desarrollador, entramos y habilitamos el "Debug por USB".

Enchufamos el celular a la computadora y seleccionamos la opcion de transferir fotos via PTP.

En la terminal ejecutamos lsusb y obtenemos algo similar a esto:

Bus 002 Device 007: ID 1004:631d LG Electronics, Inc. Optimus Android Phone (Camera/PTP Mode)
Bus 002 Device 003: ID 1a81:1006 Holtek Semiconductor, Inc.
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04f2:b1d6 Chicony Electronics Co., Ltd CNF9055 Toshiba Webcam
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Esta claro que mi celular es:

ID 1004:631d LG Electronics, Inc. Optimus Android Phone (Camera/PTP Mode)

De la linea de arriba agarramos los primeros 4 digitos del dispositivo:

1004:631d

En este caso 1004 es el identificador para LG.

Ingresamos lo siguiente en la consola:

echo SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev" | sudo tee /etc/udev/rules.d/51-android-usb.rules

Por ultimo hacemos un check para ver si el adb lo detecta en la consola:

adb devices

Y deberiamos ver algo similar (depende del dispositivo que tengan)

List of devices attached
LGD62093133844  device

Ahora puden hacer en la carpeta de su rn-app npm run android y la aplicacion se va a abrir en su celular. COPADO!


Gracias por leer, cualquier consulta la pueden dejar escrita en el blog y la contestamos.

Saludos,

D.


Fuentes y ayudas:

Comentarios

Comments powered by Disqus