OpenWebinars

Frameworks

Comparativa entre React Native y diferentes frameworks de programación

Si estás pensando utilizar React Native para tu próximo proyecto, te presentamos varias comparativas con otras alternativas que te permitirán saber si es la tecnología que más se ajusta a tus necesidades.

Álvaro Jiménez Martín

Álvaro Jiménez Martín

Experto Full Stack

Lectura 2 minutos

Publicado el 19 de junio de 2019

Compartir

    Tabla de contenidos

Aprende a desarrollar apps para iOS y Android
Comienza 15 días gratis en OpenWebinars y accede cursos, talleres y laboratorios prácticos de Swift y Kotlin para crear tus propias aplicaciones.
Comenzar gratis ahora

Grupos de plataformas de desarrollo para aplicaciones móviles

Vamos a comenzar viendo dónde se engloba React Native dentro de las opciones de programación para móviles que existen, no tanto en cuanto a frameworks, sino a los distintos grupos en los que podemos englobarlos.

Imagen 0 en Comparativa entre React Native y diferentes frameworks de programación

Por un lado tenemos los códigos que son nativos, Java y Kotlin para Android y ObjectiveC y Swift para iOS, que son los códigos que se han creado o los lenguajes que se han utilizado desde los propios desarrolladores, tanto del terminal como del sistema operativo pensado para ser utilizado en ellos.

En el otro lado, en el lado opuesto, tenemos tanto las webs responsive como las más actuales PWA (Progressive Web Apps), que no son propiamente aplicaciones y no vamos a poder tenerlas en la tienda de aplicaciones, pero nos van a permitir ciertas características o funcionalidades similares a las de una aplicación.

También tenemos el grupo central, dónde se englobaría React Native, que son códigos pensados para el terminal pero no desde la parte de los desarrolladores de los sistemas operativos. Nos van a permitir programar tanto para un sistema operativo como para el otro, intentando compartir la mayor parte del código e intentar aprovechar esa ventaja en cuanto a la no duplicidad de código, de lógica y del resto del equipo.

React Native vs Código Nativo

Si comparamos React Native con código nativo, cada plataforma tendrá sus ventajas e inconvenientes, como podemos ver en la imagen:

Imagen 1 en Comparativa entre React Native y diferentes frameworks de programación

Las ventajas de las plataformas nativas son:

  • Poseen siempre acceso a las últimas novedades desde el primer momento.
  • Tienen tener mejor rendimiento, ya que no necesitan hacer ningún tipo de cambio o ninguna modificación para adaptarse como en el caso de React Native, que aunque ofrece un rendimiento casi nativo, nunca va a poder igualarlo.
  • Tienen acceso a las últimas funcionalidades de una forma directa, ya que React Native se puede integrar con módulos nativos, no van a estar directamente integrados en el framework, con lo cual nos va a causar problemas o mayor complejidad a la hora de utilizar dichas funcionalidades.

React Native tiene algunas ventajas respecto al código nativo:

  • Permite tener compatibilidad entre ambos sistemas operativos, lo que no ocurre utilizando código nativo.
  • Se puede compartir código entre el frontend y el backend.
  • Al estar escrito en JavaScript, vamos a poder utilizar parte de nuestro código, por ejemplo en alguna lógica, ya sea de comprobación de datos o librerías externas, y va a estar en ambos lados, reduciendo aún más el tiempo de programación, la duplicidad de la lógica de código y el número de fallos.

También comentar que utilizando React Native será necesario aumentar un poco más la parte de configuración, ya que además de la configuración propia de cada uno de los sistemas operativos, vamos a necesitar tener la configuración que los enlaza entre ellos.

Por el contrario, el equipo que se necesitará trabajando con React Native es menor, ya que por norma general, cuando tenemos dos aplicaciones escritas en Android y en iOS por separado, se tiene un equipo para una plataforma y otro para la otra o cual. Esto conlleva inconsistencias de código o de funcionalidades entre aplicaciones, diferentes fechas de publicación de actualizaciones y demás, y es más fácil solucionarlo o tener controlado trabajando con React Native o similares.

React Native vs Web responsive y PWA

Vamos a comparar ahora React Native con las web responsive o con las PWA.

Imagen 2 en Comparativa entre React Native y diferentes frameworks de programación

Las ventajas de programar con las segundas son:

  • Estamos utilizando código en HTML, JavaScript y CSS tradicional, por lo que hay una cantidad de librerías y personas y tenemos acceso a muchos desarrolladores o ejemplos de código que nos pueden ser útiles.
  • Los navegadores modernos cada vez ofrecen más posibilidades de acceder a las APIs internas, con lo cual podemos tener acceso a la cámara, a trabajar offline, a otros elementos GPS, etcétera.
  • Se reducen los tiempos de revisión y se pueden publicar automáticamente las actualizaciones.

También tienen sus desventajas:

  • El rendimiento que vamos a tener con las web responsive y las PWA va a ser bastante menor, ya que no son aplicaciones nativas, no vamos a poder ejecutar código nativo de ninguna de las maneras, no ser que no vayamos a algo como Córdoba, pero ya entraría dentro del siguiente grupo.
  • Tampoco podremos poner nuestras aplicaciones en la tienda de aplicaciones, porque no es una aplicación propiamente dicha. Podremos guardarla como acceso directo, ponerle un icono o un splash screen y simular que es nativa, pero no va a poder nunca ser realmente una aplicación nativa.
  • No tendremos la sensación nativa que ofrece una aplicación real, ni en rendimiento, ni en interfaz ni en la experiencia de uso de la misma, que si se obtiene utilizando React Native o cualquiera de los otros frameworks o librerías de programación multiplataforma.

React Native vs Flutter vs Xamarin vs Cordova

Comparamos ahora React Native con los principales frameworks que se engloban dentro de su mismo grupo, en este caso Flutter, Xamarin y Cordova/Ionic.

Imagen 3 en Comparativa entre React Native y diferentes frameworks de programación

En cuanto al lenguaje que utilizan podemos destacar:

  • React Native está mantenido principalmente por Facebook, se basa en JavaScript, aunque hay que tener en cuenta que también se acaba haciendo código con Java y con ObjectiveC, ya sea para pequeños módulos, configuraciones y demás.
  • Flutter está creado por Google y utiliza como lenguaje de programación Dart, que es un lenguaje que ellos mismos crearon y en el que se apoya este framework.
  • Xamarin está dentro del ecosistema .NET de Microsoft.
  • Cordova e Ionic están basados en Angular, por lo que al final tenemos aplicaciones con HTML, CSS y JavaScript que están embebidas dentro de una especie de webview. La aplicación lo que hace es de bridge o de puente, para proveer todo el acceso de componentes nativos, como haríamos en cualquier aplicación y encapsularlo después en una aplicación que se pueda mandar después a la zona de aplicaciones.

Comparando el rendimiento de estos frameworks:

  • Los tres primeros crean son aplicaciones nativas directamente, por lo cual el rendimiento va a ser bastante alto, no igual que el nativo, pero muy parecido.
  • El último, que no deja de ser un webview en HTML, va a sufrir más en cuanto a rendimiento.

Centrándonos en los componentes:

  • Tanto Xamarin como React Native utilizan los componentes nativos de cada plataforma.
  • Flutter crea sus propios componentes, que también van a ser nativos pero creados por ellos.
  • Cordova utiliza un navegador.

En cuanto a la comunidad de estos frameworks:

  • Cordova fue muy popular hace unos años y muchas de las aplicaciones se hacían con el mismo, porque facilitaba el acceso al desarrollo en plataformas móviles, reducía los costes y los tamaños de equipo. Se hizo bastante popular, pero cada vez se utiliza menos en la actualidad, y aunque todavía se encuentra mucha información al respecto y mucha gente que lo utiliza, pero está en decadencia.
  • React Native es el más popular de hoy, es el que más gente utiliza, del que hay más información y comentarios por internet.
  • Xamarin es bastante popular dentro del ecosistema .NET, ya que los desarrolladores del mismo se sienten más cómodos dentro de ese ecosistema.
  • Flutter últimamente está ganando bastante popularidad y cada vez hay más interés por el mismo, pero todavía queda lejos de React Native.

En cuanto a reusabilidad de código podemos ver vemos que son muy parecidos. Según datos sacados de internet:

  • Con Flutter se puede reutilizar entre un 50% y un 90% del código.
  • Con React Native se calcula que se puede reutilizar sobre un 90% de código.
  • Con Xamarin el porcentaje sube a un 96%.
  • Para Cordova se calcula que se puede reutilizar un 98% del código, porque al final es un navegador y los mismos llevan muchos años trabajando en cuanto la compatibilidad entre distintos dispositivos.

Y centrándonos en quién utiliza estas tecnologías:

  • React Native es utilizado por Facebook en sus propias aplicaciones, como Facebook, Instagram y muchas otras aplicaciones de la empresa. También fue utilizado por AirBnb, aunque actualmente utiliza componentes nativos.
  • Flutter es utilizado por Alibaba o Google Ads.
  • En el caso de Xamarin, las aplicaciones más conocidas que la utilizan son Olo y ciertas aplicaciones que tiene MRV.
  • Cordova e Ionic se utilizan en aplicaciones de Diesel o Justwatch, entre una gran multitud de otras no tan conocidas.

Acelera tus desarrollos de software
Formaciones prácticas, avanzadas y actualizadas para que tu equipo domine las herramientas más relevantes para crear aplicaciones móviles en iOS y Android con Swift, Java y Kotlin.
Solicitar más información

Compartir este post

También te puede interesar

Icono de la tecnología
Curso

React Native para principiantes

Principiante
5 h. y 13 min.

Aprender a realizar aplicaciones móviles con React Native desde 0 conociendo los componentes básicos de este framework.

Álvaro Jiménez Martín
4.2