React Native es un popular framework JavaScript de código abierto para el desarrollo de aplicaciones móviles nativas para plataformas Android e iOS utilizando React. Al igual que React, está creado por Meta, el gigante de las redes sociales. Permite a los desarrolladores crear aplicaciones móviles utilizando la misma base de código en React y TypeScript/JavaScript, lo que hace que el proceso de desarrollo sea más rápido y rentable.
Además, se trata de aplicaciones móviles nativas, es decir, no son un envoltorio de una página Web creada con React, sino que traducen los controles y etiquetas soportados en controles nativos de cada plataforma, de modo que proporcionan un gran rendimiento y todas las ventajas de una aplicación real, no de una híbrida.
React Native presenta muchas ventajas frente a los entornos y herramientas nativas de Android e iOS, siendo el principal que puedes aprovechar tus conocimientos de React para ir más allá de la Web y crear aplicaciones móviles usando el mismo código. Eso redunda, claro está, en la rapidez de desarrollo y la reutilización de código, pero sin perder el rendimiento nativo. También tiene una comunidad grande, lo cual es importante a la hora de buscar ayuda.
Sin embargo, también hay algunos inconvenientes, siendo el principal de ellos un acceso bastante limitado a las API nativas de los sistemas operativos móviles.
Y es ahí donde entra en acción Expo...
Expo
Expo es un framework para aplicaciones React universales. Se trata de un conjunto de herramientas y servicios construidos alrededor de React Native y de las plataformas móviles que ayudan a desarrollar, construir y desplegar aplicaciones para iOS, Android, pero también aplicaciones Web, utilizando en todos los casos la misma base de código JavaScript/TypeScript con React.
Hasta aquí todo muy parecido a React Native... De hecho, cuando escribes código en Expo, estás escribiendo en realidad código React Native. Sin embargo, una de las características más importantes de Expo es que dispone de multitud de funcionalidad nativa expuesta a JavaScript, desde el uso de cámaras o notificaciones hasta la síntesis de voz, pasando por todo tipo de sensores del dispositivo, detección de caras, manejo de vídeo... y casi cualquier cosa que necesites. Esto facilita enormemente el trabajo y aumenta enormemente las capacidades de tus apps móviles con React.
Pero además Expo proporciona un montón de herramientas que te permiten desde crear proyectos hasta publicarlos, pasando por la capacidad de ejecutar tus proyectos en el móvil al mismo tiempo que trabajas en ellos, sin necesidad de utilizar para ello Android Studio o XCode.
A través de Expo puedes colaborar con otras personas: probando la app, viendo el estado o el histórico del proyecto o incluso contribuyendo al código. Con Expo, tu aplicación se puede compartir fácilmente a través de un enlace o de un código QR, no tienes que enviar todo el archivo .apk
o .ipa
, y tampoco hay necesidad de compilar para ejecutar la aplicación. Esto facilita muchísimo colaborar con otros desarrolladores o incluso con los clientes.
Expo tiene una capa gratuita muy generosa que te permite desarrollar e incluso desplegar en las tiendas tus aplicaciones sin agobiarte. Si en el futuro tu aplicación crece mucho entonces tendrías que pagar, pero son precios razonables para la mayoría si llegas a ese punto.
Tienes todos los detalles en su página de precios.
Qué aplicaciones conocidas utilizan React Native / Expo?
Muchas empresas, desde PYMEs y startups hasta grandes empresas de todo tipo, han adoptado React Native y Expo para sus proyectos de desarrollo de aplicaciones móviles. Además, según datos ofrecidos por la propia Expo, más del 50% de las aplicaciones desarrolladas con React Native utilizan Expo.
Algunas de las apps más conocidas desarrolladas con estas tecnologías son: Facebook, Instagram, Skype, Microsoft Office móvil, Microsoft Teams, Pinterest, la app móvil de los coches Tesla, Discord, Uber Eats, SoundCloud, la app móvil de PlayStation, Wix, Shopify...