React Native es un framework open source que nace en Facebook con el propósito de crear aplicaciones móviles nativas y también multiplataformas, todo esto a partir de una misma base de código escrita en JavaScript y React.
Debido a su efectividad, ha sido utilizado por empresas como Microsoft, Tesla e Instagram en algunas de sus apps, ya que permite que las aplicaciones creadas con ella sean ejecutadas tanto en Android como en iOS sin tener dos proyectos separados en dos lenguajes de programación distintos.
Ventajas y desventajas de React Native
Ventajas
Reusabilidad de código: la capacidad de React Native de poder reutilizar el código para dos plataformas ocasiona un menor tiempo de desarrollo y facilita a la publicación rápida de actualizaciones.
Una extensa comunidad de desarrollo: dado que los componentes nativos de React son open source, abre la posibilidad de que tengan muchas más actualizaciones y se encuentre mayor información sobre la plataforma.
Además, React Native es el framework más utilizado en lenguaje JavaScript para apps nativas, hay muchos libros y guías que se pueden conseguir en la web para que el desarrollador siga expandiendo sus conocimientos.
Desarrollar con React Native es de bajo costo: al ser un framework multiplataforma, el costo de desarrollar una aplicación con este es menor al de hacerlo con otra tecnología. No necesitas dos equipos separados que se encarguen de Android y de iOS, incluso si ya utilizas React en la web ya tienes un acercamiento para el desarrollo móvil.
Rendimiento similar al nativo: React Native al no convertir el código y conectarse a componentes nativos, alcanza un rendimiento similar a apps creadas por Java o Swift, esto conlleva a que la velocidad de la app no se vea afectada en el proceso de desarrollo multiplataforma.
Desventajas
Carece de algunos módulos personalizados: a pesar de que React Native fue creada hace varios años, sigue careciendo de algunos módulos personalizados. En ocasiones, cuando se necesite alguna funcionalidad que aun no cuenta con soporte, es posible que se deban ejecutar tres bases de código separadas: una para React Native, una para Android y una para iOS, en lugar de solo una.
Problemas de compatibilidad y depuración: a pesar de ser utilizado por empresas grandes de tecnología, React Native sigue estando es una fase de prueba, lo que en la práctica significa que desarrolladores pueden tener problemas con la compatibilidad de paquetes o las herramientas de depuración.
Se hace necesario tener conocimiento de desarrollo nativo: React Native une JavaScript con el código móvil nativo, por lo que si el desarrollador a cargo de crear la aplicación no tiene conocimiento de desarrollo móvil nativo, tendrá dificultades para incorporar código nativo en la base de código de React Native.
Características de React Native
- Permite crear aplicaciones nativas para Android e iOS desde cero y con React Native también puede editar sus proyectos existentes.
"React Native combina las mejores partes del desarrollo nativo con React, la mejor biblioteca de JavaScript de su clase para crear interfaces de usuario", explicaron en su website.
- Las plataformas creadas con React Native garantizan una óptima experiencia de usuario: "Le permite crear aplicaciones verdaderamente nativas y no compromete las experiencias de sus usuarios. Proporciona un conjunto básico de componentes nativos independientes de la plataforma como View, Texty Image que se asignan directamente a los componentes básicos de la interfaz de usuario nativa de la plataforma".
- Es multiplataforma sin problemas: "Los componentes de React envuelven el código nativo existente e interactúan con las API nativas a través del paradigma de IU declarativo de React y JavaScript. Esto permite el desarrollo de aplicaciones nativas para equipos de desarrolladores completamente nuevos y puede permitir que los equipos nativos existentes trabajen mucho más rápido".
- Podrá ver los cambios que haga tan pronto los guarde, la actualización es rápida y con React Native podrá iterar a una velocidad sorprendente.
Cómo funcionan los componentes de React Native
React Native utiliza una serie de componentes para crear las aplicaciones y te hablaremos de este tema a continuación:
Vistas
Se trata del componente básico de la interfaz de usuario tanto en el desarrollo de Android como en el de iOS. Se trata de cada elemento rectangular en la pantalla del dispositivo que sirve para mostrar algún texto o alguna imagen. Cada elemento en la pantalla es un tipo de vista diferente.
Nativos
Una de las grandes ventajas de React Native es que ya viene con un conjunto de componentes nativos esenciales listos para usar, lo que facilita de entrada el desarrollo de las aplicaciones.
"En el desarrollo de Android, escribe vistas en Kotlin o Java; en el desarrollo de iOS, usa Swift u Objective-C. Con React Native, puede invocar estas vistas con JavaScript utilizando componentes de React. En tiempo de ejecución, React Native crea las vistas correspondientes de Android e iOS para esos componentes. Debido a que los componentes de React Native están respaldados por las mismas vistas que Android e iOS, las aplicaciones de React Native se ven, se sienten y funcionan como cualquier otra aplicación. Llamamos a estos componentes respaldados por plataforma Componentes nativos", explicó la compañía en una de sus guías de su sitio web.
Principales
Estos son los tipos de componentes principales más usados:
View: "Un contenedor que admite el diseño con flexbox, estilo, algunos controles táctiles y de accesibilidad".
Text: "Muestra, diseña y anida cadenas de texto e incluso maneja eventos táctiles".
Image: Muestra diferentes tipos de imágenes.
ScrollView: "Un contenedor de desplazamiento genérico que puede contener múltiples componentes y vistas".
TextInput: Permite al usuario ingresar texto.
Acaban de lanzar React Native 0.68
La compañía anunció el pasado 30 de marzo de 2022 el lanzamiento de la nueva versión 0.68.0 de React Native.
Estos son los cambios importantes:
- React Native se ha actualizado a Node 16, el último LTS. Dado que en CI probamos LTS y el LTS anterior, este cambio significa que ahora se requiere que los usuarios usen una versión de Node >= 14.
- El complemento Android Gradle se actualizó a 7.0.1, lo que hace cumplir JDK 11 para compilaciones de Android, así que asegúrese de actualizar sus configuraciones (le recomendamos que use el zulu11sabor JDK para Mac Intel y M1)
- Eliminado fallbackResourcede RCTBundleURLProviderla API en iOS. Este parámetro se puede eliminar de forma segura de la llamada al método sin reemplazo.
Te recomendamos en video