react vs native

React Native vs Desarrollo nativo

¡Hola #Yobers!

¡Cuánto tiempo sin escribiros! El artículo de hoy va dedicado a todos los amantes o desarrolladores del mundo. Hoy lanzamos la pregunta para todos vosotros: ¿Deberíamos utilizar React Native o Desarrollo Nativo? La respuesta la tendréis en el artículo de hoy, así que… ¡Leed atentamente!

Lo primero de todo, una breve introducción sobre qué es React Native, para todos aquellos curiosos que no saben muy bien de que estamos hablando. React Native es un framework creado por Facebook para crear aplicaciones nativas para iOS y Android utilizando Javascript, en vez de lenguajes nativos de cada plataforma, como Swift o Kotlin, respectivamente. Al usar componentes de layout nativos, permite diseñar interfaces de usuario que no se diferencian de una aplicación nativa. La lógica de la aplicación se comparte para ambas plataformas, sin embargo, los elementos gráficos (vistas, textos o estilos, entre otros) usan los nativos de cada sistema.

Asimismo, se pueden crear dos aplicaciones totalmente diferentes, una para cada plataforma, desarrollando una común que se ejecutará tanto en Android como en iOS. Gracias a esto, abaratamos los costes del proyecto, ya que son necesarios menos recursos, tanto para el desarrollo como para el mantenimiento.

Pero ¿dónde es mejor utilizar React Native? En apps con interfaz sencilla o funcionamiento básico, prototipado rápido (MVP) y cuando no se depende demasiado de API’s nativas. Un buen ejemplo de aplicación con React Native es “Facebook Messenger” o “SoundCloud”, entre otros.

¿Qué os está pareciendo? ¿Os convence el uso de React Native para aplicaciones? Hasta ahora son todo ventajas frente al Desarrollo Nativo, pero como os podéis imaginar, React Native también tiene ciertas desventajas. Una de ellas es la dependencia de librerías externas para la navegación, puesto que no se acaba de prescindir del todo de desarrollo nativo. React Native es una capa intermedia entre la lógica en Javascript y componentes nativos por lo que para ciertas funcionalidades o módulos que no estén incluidos en la librería principal se deberá tocar código nativo. Además, para la gestión del proyecto es necesario tener conocimientos básicos de iOS y Android.

Otra desventaja es la falta de seguridad, ya que al estar basado en Javascript, este no es conocido por su garantía de seguridad. Por lo tanto, si vamos a utilizar React Native para proyectos que requieran de ella apps bancarias o de finanzas habrá que tener más cuidado si cabe, sobre todo, con las posibles librerías de terceros.

A pesar de estas desventajas, React Native tiene un rendimiento mejorado frente a otras soluciones de desarrollo híbrido, porque al usar los controles y módulos nativos de cada plataforma, mejora el rendimiento con respecto a otras propuestas, que basan su implementación en una visita web. Por ello, al hacerlo de esta forma, utiliza otro proceso de ejecución separado al de la interfaz. No obstante, si se requiere de funcionalidad avanzada, esto puede hacer que el rendimiento baje con respecto a un desarrollo nativo puro, ya que Javascript no está diseñado para un gran coste computacional.

En cambio, cuando las aplicaciones tienen una interfaz (UI) muy compleja, el rendimiento se puede ver comprometido, por ello el desarrollo nativo es una mejor solución a este problema. Si se utilizan ciertas API’s nativas de cada sistema, gestionar las dos plataformas por separado e implementar un bridge para cada una de ellas requeriría más tiempo que usar directamente los componentes nativos (iOS y Android).

Un ejemplo claro de desarrollo nativo es la aplicación “Bruxout” que desarrollamos para un cliente, la cual era específica para la plataforma Android con acceso a Hardware.

Asimismo, AirBnB era una de las mayores empresas que contribuían a la comunidad de React Native y tuvo que migrar su desarrollo a nativo por problemas técnicos debido a su complejidad.

Por lo tanto, React Native es perfecto para prototipado de MVP y/o aplicaciones sin una gran carga de UI, ya que este permite un avance rápido del proyecto. Sin embargo, para proyectos complejos o que requieran de ciertas funcionalidades nativas específicas es mejor usar un desarrollo completamente nativo.

¡Eso es todo #Yobers!

Si todavía tenéis alguna duda sobre qué es mejor si React Native o Desarrollo Nativo para tu próximo proyecto, no lo dudes, contacta con nosotros y te asesoraremos.

¡Nos leemos en el siguiente blog!