React Native vs Flutter: lo que necesitas saber

Eduardo Coto
26 julio, 2019

. . .

Hola gente, esta es una traducción del artículo escrito originalmente por Anton Shaleynikov en dashbouquet.com y lo puedes encontrar aquí


Actualmente hay alrededor de 2.500 millones de usuarios de teléfonos inteligentes en todo el mundo, y ese número solo aumenta. Las personas usan sus teléfonos inteligentes para muchas cosas, desde establecer recordatorios hasta realizar transacciones comerciales. Muchas compañías ahora se dan cuenta de la importancia de tener una aplicación móvil como parte de los paquetes de software para sus clientes y buscan contratar desarrolladores móviles.

Para las empresas con presupuestos más grandes, podría ser fácil para ellos contratar equipos de desarrollo para las plataformas iOS y Android. Pero no todas las empresas pueden permitirse hacer eso. Aparte de eso, la gestión de múltiples bases de código es fastidioso. Aquí es donde entran las soluciones móviles multiplataforma: una base de código única para ambas plataformas.

Recientemente ha habido mucho ruido en dos plataformas móviles multiplataforma: React Native y Flutter. Existen otras soluciones móviles multiplataforma además de estas dos, pero estas dos se han vuelto bastante populares entre los desarrolladores móviles. Antes de continuar para discutir por qué esto es así, echemos un vistazo rápido a estos dos marcos.

¿Qué es React Native y Flutter

React Native es un marco de desarrollo móvil multiplataforma desarrollado por Jordan Walke, un ingeniero de software en Facebook. React Native, más tarde fue de código abierto en 2015. Además utiliza la popular biblioteca de Javascript —React.js y Javascript para crear aplicaciones tanto para la plataforma Android como para la iOS. 

Flutter es un marco de desarrollo móvil multiplataforma de código abierto desarrollado por Google. Se anunció por primera vez en 2017 en la conferencia de desarrolladores de I / O de Google. La versión estable fue lanzada el 4 de diciembre del 2018. El framework Flutter, a diferencia de muchos frameworks multiplataforma, no se construye con Javascript, pero Dart, un lenguaje de tipo C orientado a objetos estáticamente desarrollado por Google. Entonces, ¿cómo se comparan estos dos entre sí? 

Comparación de React Native y Flutter

Para comparar los dos frameworks, estaría examinando cinco cosas:

  1. Lenguaje de programación
  2. Instalación y configuración
  3. Componentes UI
  4. Rendimiento
  5. Soporte comunitario

Lenguaje de programación

El desarrollo de aplicaciones móviles en React Native se realiza con Javascript y React. Esta es una gran ventaja para los desarrolladores web, ya que no necesitan aprender un nuevo idioma. También hace las cosas mucho más fáciles para las empresas con equipos de desarrollo web, ya que pueden hacer que algunos de ellos cambien fácilmente al desarrollo con React Native.

El desarrollo de aplicaciones móviles con Flutter, por otro lado, se realiza con Dart, un lenguaje de programación relativamente nuevo y no tan popular. Dart fue creado por Google en 2011 para solucionar algunos de los problemas que tenía JavaScript y, en última instancia, reemplazarlo, pero en realidad nunca se dio cuenta. Luego fue utilizado por Google para desarrollar el framework Flutter.

Aunque el desarrollo con Flutter significa que tendrías que aprender Dart, el lenguaje es bastante fácil de aprender. Es como una mezcla de Java y Javascript.

Instalación y configuración

Configurar el entorno de desarrollo para ambas plataformas no es fácil y requiere varios pasos para completar. El propio marco React Native se puede instalar haciendo uso del gestor de paquetes npm con una simple declaración de una línea.

Por supuesto, esto requiere que tenga Node.js y el gestor de paquetes npm previamente instalado. Además del framework, hay otras herramientas específicas del dispositivo necesarias para el desarrollo, como el SDK de Android y el JDK.

Para instalar el framework Flutter, debe visitar el sitio web para descargar la carpeta comprimida, que luego extraes en la ubicación deseada. Luego debes agregar manualmente la carpeta a la variable PATH, lo que parece ser más trabajo en comparación con el comando de instalación de una línea de React Native.

Aparte del framework, también hay otros componentes que deberías instalar al igual que con React Native. Al final, requieres casi la misma cantidad de trabajo para configurar ambas plataformas. Pero es un poco más fácil configurar React Native con Node.js y npm previamente instalados.

Componentes de la interfaz de usuario

React Native tiene un gran número de componentes de UI, más extensos que los de Flutter (lo llaman widgets). Esto no está desconectado del hecho de que han existido por mucho más tiempo que Flutter, y tienen más bibliotecas de UI de terceros que Flutter.

Si restamos el número de bibliotecas de terceros que React Native tiene, tendrían mucho menos que Flutter. React Native depende de una gran cantidad de bibliotecas de terceros que, en algunas situaciones, pueden ser problemáticas, ya que a veces contienen errores y fallas o incoherencias en la IU con una plataforma específica.

Flutter, por otro lado, tiene muchos widgets útiles que vienen con el framework que lo hace menos dependiente de las bibliotecas de UI de terceros.

Rendimiento

Aunque no se han realizado muchas pruebas comparativas entre aplicaciones creadas con ambas plataformas, las aplicaciones Flutter teóricamente vencerían a las aplicaciones nativas React en rendimiento debido a la forma en que funciona el framework de Flutter.

Flutter adopta un enfoque completamente diferente para representar aplicaciones en la pantalla. Para empezar, Flutter no utiliza componentes nativos de ninguna de las plataformas. En su lugar, crea sus widgets y hace uso de la GPU para representarlo en la pantalla. Compila todo el código Dart en código ARM nativo que luego puede ser ejecutado directamente por la CPU. Esto hace que las aplicaciones creadas con Flutter sean bastante rápidas.

React Native, por otro lado, utiliza un puente de Javascript para interpretar los componentes de la interfaz de usuario que se van a representar, que luego invoca las API de Objective-C o las API de Java para representar el componente de iOS o Android adecuado en la pantalla. Esta capa adicional de abstracción puede hacer que las aplicaciones React Native sean más lentas.

Soporte comunitario

El apoyo de la comunidad para las nuevas tecnologías es esencial para ayudar a los nuevos desarrolladores a aprender y encontrar una solución a los problemas que pueden enfrentar.

React Native ha existido durante casi cuatro años y los desarrolladores de todo el mundo lo han adoptado gradualmente. Las grandes empresas como Tesla, Walmart, Bloomberg e Instagram también han comenzado a utilizarlo para desarrollar sus aplicaciones.

Flutter podría no tener una comunidad tan grande como la de React Native debido a su creación reciente, pero los desarrolladores la están adoptando rápidamente en todo el mundo. Compañías como Alibaba, Tencent y Reflectly, ya han comenzado a usarlo parcial o totalmente para el desarrollo de aplicaciones.

Conclusión

La elección de qué plataforma elegir como desarrollador o empresa depende de varias cosas, como su pila anterior, el presupuesto de la empresa, el equipo de desarrollo actual, etc. Una empresa que ya tenga un equipo de desarrollo web encontrará mucho más fácil la transición a algunos de ellos. Sus desarrolladores React Native. Flutter sería mucho más preferible para usted si está más familiarizado con lenguajes como Java y C#.

6

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comunidades en Español