React Native es un framework desarrollado por Facebook, y usado por empresas tan conocidas como AirBnB, que permite el desarrollo de aplicaciones nativas (no híbridas) usando JavaScript. A la hora de desarrollar en React Native, especialmente si estamos siguiendo algunos tutoriales o cursos online, podemos encontrarnos con que en ocasiones algunos desarrolladores utilizan el comando create-react-native-app y otros desarrolladores usan react-native-cli. En este artículo os explico en qué consiste cada comando, cuáles son sus diferencias y cómo debemos usarlos.

Para gustos desarrolladores

Me he encontrado en bastantes ocasiones con que algunos desarrolladores que publican tutoriales, cursos online o manuales, e incluso la propia documentación oficial de React Native, hacen uso bien de create-react-native-app, bien de react-native-cli.

Ambos comandos sirven para generar el código base de nuestra aplicación en React Native, por lo que el uso de uno u otro depende del gusto del desarrollador por usar distintos entornos o estructuras como veremos a continuación en cada caso.

create-react-native-app

Este es el comando que la documentación oficial de React Native nos recomienda para comenzar desarrollando una aplicación, tal y como podemos comprobar en este enlace.

Cuando ejecutamos create-react-native-app, se genera automáticamente la estructura de una aplicación React Native, con todos los archivos necesarios para su funcionamiento, las librerías, los módulos de NodeJS, etc.

Creando la app de este modo, encontraremos un archivo principal llamado App.js, que es el archivo donde trabajaremos definiendo views y components. Como veremos a continuación, esta estructura es un poco diferente a la que genera el otro comando, dado que nos genera una app en la que tendremos el código Android e iOS compartido en el mismo archivo JavaScript. Está pensado por tanto para utilizar código que vayan a compartir ambas plataformas y es la forma más sencilla de comenzar desarrollando una app en React Native, dado que podremos ejecutar la aplicación y trabajar sobre ella sin necesidad de instalar entornos de desarrollo nativos, emuladores y demás parafernalia que rodea al desarrollo nativo.

La pega que tiene esta forma de generar la aplicación es que, en caso de que tengamos pensado utilizar módulos nativos de iOS o Android, no podremos hacer uso de esos elementos nativos. Recuerda que estamos escribiendo un código compartido. No tenemos la posibilidad de incluir elementos nativos de una plataforma porque no serían compatibles con la otra.

Entonces, ¿qué opciones tengo si quiero integrar elementos nativos de cada plataforma en mi app? La solución es generar una aplicación que diferencie el código que vamos a usar para Android del código que vamos a usar para iOS, o lo que en la documentación oficial de React Native llaman hacer un ‘eject‘. Precisamente para eso tenemos el siguiente comando.

react-native-cli

Es el segundo comando que nos permite generar una aplicación con React Native, pero con algunas diferencias con respecto al anterior.

Usando este comando, se generará una aplicación que cuenta con dos archivos JS independientes, cada uno correspondiente a un sistema operativo (iOS y Android):

  • index.ios.js
  • index.android.js

Como veíamos en el apartado anterior, esta será la opción a elegir en caso de que para nuestra aplicación necesitemos incorporar elementos nativos de cada sistema operativo.

Si bien tenemos la ventaja de poder incorporar a nuestra app toda la potencia que ofrecen los elementos nativos de cada plataforma, también tenemos la desventaja de que para poder ejecutar la aplicación y trabajar con ella necesitaremos instalar previamente los entornos de desarrollo nativos de cada plataforma con la que queramos trabajar (Xcode para iOS y Android Studio para Android), así como sus respectivos emuladores.

Conclusiones

Como hemos visto, tanto create-react-native-app como react-native-cli nos permiten desarrollar aplicaciones móviles para iOS y Android, con la única diferencia de que el primer comando será más apropiado cuando sepamos que nuestra app va a compartir todo el código entre ambos sistemas operativos, y el segundo en el caso de que vayamos a incorporar elementos nativos propios de cada plataforma a la aplicación.

¿Y tú? ¿Tienes ya claro cuál va a ser tu próximo desarrollo en React Native? Si tienes o estás desarrollando una app y quieres darle difusión, cuéntamelo en los comentarios porque tengo en marcha un proyecto muy interesante para dar a conocer aplicaciones de manera totalmente gratuita. ¡Hasta el próximo artículo!

¡Compártelo!
Categorías: Programación

Uso de cookies

Me obligan a informarte de que uso cookies para ayudarte a mejorar la experiencia en esta web. Es algo obvio, pero si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies y política de protección de datos.

ACEPTAR
Aviso de cookies