Saltar al contenido

ReactNative vs Flutter ¿Cual debería escoger?

diciembre 1, 2020

En el mundo de la programación móvil hay doy grandes mundo. La programación nativa y la programación híbrida. Ambas tienen sus ventajas y desventajas. Lo cierto es que cada vez las aplicaciones híbridas se acercan más al rendimiento de las aplicaciones nativas, por lo tanto cada vez más personas las prefieren a la hora de crear sus proyectos.

Muy bien. Dentro de la programación híbrida tenemos grandes opciones, Ionic, Xamary no se quedan atrás, pero sin duda la mayor competencia hoy en día es entre ReactNative (desarrollado por Facebook) y Flutter (desarrollado por Google). Esto se pondrá bueno.

En este artículo vamos a evaluar ventajas y desventajas de ambas opciones. Vamos analizar las posibilidades que nos dan cada uno de estos competidores y aprenderemos lo necesario para poder tomar una decisión de cual estudiar o en cual desarrollar tu siguiente aplicación móvil.

1.0 Aplicaciones Nativas contra aplicaciones Híbiridas

Antes de evaluar ReactNative y Flutter creo que es justo hablar unos 2 párrafos sobre las diferencias entre las aplicaciones nativas y las híbridas. Si ya conoces sobre esto, puedes pasar a las ventajas sin problema.

Podría interesarte: Flutter vs Android y iOS nativo ¿cuál debería aprender?

Una aplicación nativa tiene una ventaja importante. Su rendimiento. Ninguna aplicación híbrida puede igualar el rendimiento de la misma aplicación creada en nativa. Especialmente si es una aplicación grande que hace muchas consultas y abre muchas páginas.

Pero, la ventaja de las aplicaciones híbridas es que puedes crear tus aplicaciones en menos tiempo. Tanto al momento de dominar el lenguaje (los lenguajes nativos suelen ser muy difíciles de aprender) como al desarrollar la App (cuando programar en híbrido solo tienes que programar una aplicaciones). Cuando programar en Nativo tienes que crear 2 aplicaciones en dos lenguajes diferentes.

Si eres una empresa con muchos recursos y puedes darte el lujo de pagar un equipo de programadores para Android y otro equipo para iOS sin problemas, la mejor opción es que hagas tu aplicación en nativo, pero si no tienes esos recursos, las aplicaciones nativas pueden salvarte la vida.

2. Ventajas de usar ReactNative

Podríamos crear un blog completo solo de ReactNative, pero sin duda tiene 2 ventajas que resaltan claramente frente a sus competidores.

  1. Antigüedad: No significa que sea un Framework viejo, significa que llego primero al campo de las aplicaciones híbridas. Esta no es una ventaja en si, pero le da algunas ventajas que derivan de ella. Por ejemplo, podemos decir que la comunidad de programadores que la usan es gigantesca y también es necesario decir que son muchas las empresas que usan ReactNative para crear sus aplicaciones, esto significa que hay más campo laboral al rededor de esta tecnología.
  2. Programamos usando Javascript: Esta ventaja solo aplica si vienes de la web, pero en si misma es una gran ventaja ya que las mismas personas encargadas de mantener la página web de la empresa pueden ser la misma que se encarguen de darle mantenimiento o crear la aplicación móvil. Eso sin mencionar que una persona que maneja Javascript puede ser perfectamente un Fullstack en una empresa, página web, aplicación móvil, base de datos, API, etc. Gracias Node JS.

Hay muchas otras ventajas de usar ReactNative, por ejemplo podemos decir que su rendimiento es muy similar al de una aplicación nativa hecha con Java, Kotlin o Swift. Pero el rendimiento de Flutter es muy similar así que no vale mucho la pena mencionarlo como un inciso importante en esta comparativa.

2.1 Desventajas de ReactNative

No todo es leche y miel con ReactNative, todo tiene sus desventajas. En el caso de ReactNative es que aun no está completamente integrado con los los sistemas nativos. Esto significa que en ocasiones tendremos que tocar código nativo si queremos lograr algunas funcionalidades específicas.

Es más, siento honestos, ReactNative realmente aun no está en un versión estable. Justo al momento de escribir este artículo ReactNative se encuentrar en su versión 0.63, lo que significa que ni siquiera se ha llegado a la versión 1.0. Esto también significa que las versiones anteriores pueden tener código que no funcione en la actual e incluso, si actualizar a una versión nueva puede que tu app deje de funcionar.

Esto es un verdadero dolor de cabeza y en ocasiones tienes que recurrir a expertos en sistemas nativos para poder lograr hacer algo, esto incurre en gastos adicionales.

Otra desventaja de ReactNative es su documentación. En general las documentaciones de los sistemas hechos por Facebook me parecen un verdadero dolor de cabeza, son una verdadera telaraña muy difíciles de entender. Pero es mi opinión, no sé ustedes que opinan al respecto.

3. Ventajas de usar Flutter

Ya en este blog hice un artículo definiendo algunas de las ventajas de usar Flutter, así que no me voy a extender tanto en este nuevo artículo. Sería redundante, lo que si voy a hacer es dejarte el link para para vayas a verlo: Flutter: Ventajas de aprender esta tecnología.

Pero si voy a mencionar algunas de ellas. Si nos vamos por los mismos estándares que usamos al evaluar ReactNative, podríamos decir que Flutter es relativamente nuevo. Apenas fue liberado hace 3 años. Sin embargo en muy poco tiempo se ha creado una comunidad increíble a su al rededor.

En cuanto al lenguaje de programación, Flutter utiliza Dart. Un lenguaje también creado por Google y que a pesar de ser un lenguaje nuevo, es muy intuitivo, así que si vienes de la web bastará con 1 semana para que lo domines sin problemas. Pero hablemos de las ventajas de Flutter.

  1. Widgets: Cuando programas en Flutter todo lo que usas son widget y hay cientos de ellos con funcionalidades ya preestablecidas, es casi como armar una aplicación con elementos ya constuidos. Esto hace que sea muy intuitivo y el desarrollo sea más rápido.
  2. Estabilidad: Google, el creador de Flutter ha dicho que las actualizaciones que vendrán no romperán las aplicaciones construidas en versiones anteriores. Esto nos asegura que no tendremos que estar rehaciendo las aplicaciones.

Hay muchas otras ventajas de usar Flutter, pero por ser justos con ReactNative solo escogí dos. No por ser la más importantes, sino por ser las ventajas más generales.

3.1 Desventajas de Flutter

Como mencioné antes, ninguna tecnología es perfecta. Flutter es un SDK muy bien trabajado y que da muy buenos resultados, pero lastimosamente no es un perfecto ni mucho menos.

Cuando hablamos de desventajas creo que la primera debería ser el hecho de que es una tecnología nueva. Aunque ya hay mucha comunidad al rededor siempre te encuentras con cosas que aun no se pueden hacer en Flutter.

La mayoría ya está cubierto y aplicaciones completas se pueden hacer con Flutter y si hay algo que no se puede hacer siempre hay una forma de solucionarlo o una opción de uso alternativo. Hay miles de paquetes para Dart en su web oficial y seguro alguno te servirá.

Personalmente estoy programando en Flutter, después de haber usado ReactNative decidí comenzar a usar Flutter para mis proyectos para probarlo y cada vez estoy más seguro de que voy a quedarme con él. Pero no significa que no vaya a usar ReactNative. Hay muchas cosas que Flutter aun no puede hacer (al ser tan nuevo) pero que estoy seguro que dentro de poco se integrarán.

Eso es todo, espero que les haya gustado y sobretodo espero que les haya servido este artículo. Si tienes alguna duda puedes dejarlo en los comentarios y con todo gusto estaré contestando tus dudas.