¡Compártelo!

Ionic vs. React Native: ¿qué framework utilizar para apps multiplataforma?

Si somos desarrolladores frontend y queremos hacer una aplicación multiplataforma, y tenemos experiencia con Angular o React, es relativamente sencilla la curva de aprendizaje de sus tecnologías para desarrollo multiplataforma: Ionic Framework y React Native. Veamos primero qué son cada una de ellas y analicemos luego las ventajas y contras que tienen, de cara a responder la pregunta que seguro que te estás haciendo: ¿Qué utilizar? ¿Ionic o React Native? ¿Cuál es mejor? ¡Vamos a ello! Eso sí, primero te daremos un poco de contexto, en caso de que seas totalmente novato en el desarrollo multiplataforma.

Quiero desarrollar aplicaciones móviles y multiplataforma… ¿por dónde empiezo?

Lo primero que debes de saber es que si quieres tener aplicaciones con el máximo rendimiento, debes desarrollar la aplicación tanto para Android como para iOS de forma nativa. Lo cual significa doble de coste para hacer la misma aplicación, ya que la tendrás que desarrollar dos veces (Kotlin para Android y Swift para iOS).

Ahora bien, para solucionar este inconveniente han surgido múltiples soluciones. Y ahí es dónde entran Ionic Framework y React Native en escena: con el objetivo de permitirte desarrollar la aplicación una sola vez para ambos sistemas operativos (Android e iOS).

¿Qué es Ionic Framework?

Qué es Ionic Framework

Ionic es un framework de código abierto que nos permite el desarrollo de aplicaciones híbridas. Una aplicación híbrida básicamente exporta la aplicación, ejecutándola dentro de un entorno de ejecución, basado en este caso en HTML, CSS y JavaScript.

Me parece interesante remarcar que, si bien en versiones anteriores de Ionic había una clara relación con Angular, la versión 4 nos permite usar también React o Vue, ya que tiene soporte para ambas tecnologías.

De forma que podrías usar los componentes principales de Ionic pero de una forma similar a cómo utilizarías los componentes nativos de React o Vue. Y, este detalle, es una importante apuesta de Ionic por llegar a más desarrolladores.

¿Qué es React Native?

Qué es React Native

React Native es un framework de programación de aplicaciones nativas multiplataforma, basado en JavaScript y React.

React Native, a partir de nuestro código JSX, va a generar componentes nativos de Android y iOS, lo cual nos ofrece un rendimiento muy cercano al desarrollo nativo en Android o iOS y unas interfaces muy similares. Se considera, por su funcionamiento, una tecnología de desarrollo multiplataforma bridge o puente.

Pros y contras de Ionic Framework

Algunas de las ventajas de Ionic Framework son que tiene una excelente documentación, que sus herramientas de desarrollo tienen una curva de aprendizaje baja para los desarrolladores frontend (ya que está basada en HTML, CSS y JavaScript) y que es muy sencillo —como extra— convertir tu aplicación en una Progressive Web App (PWA), con sólo unos pocos pasos más. 

Por otro lado, que Ionic Framework sea de código abierto, no significa que todo sea gratis. Dado que es un producto de una empresa, algunas características son premium y sólo podrás acceder a ellas pagando.

Y, para los amantes del rendimiento web/móvil, el hecho de que sea una aplicación híbrida tiene un impacto notable en el rendimiento de este tipo de aplicaciones (en algunas más y en otras menos, según el tipo de aplicación que sea), respecto a otro tipo de aplicaciones multiplataforma (nativas, bridge…).

También las aplicaciones ocupan mucho más espacio que aquellas que han sido desarrolladas de forma nativa. Por otro lado, las aplicaciones híbridas son menos seguras en líneas generales que otro tipo de aplicaciones multiplataforma, por lo que exigen implementación de una mayor seguridad.

Pros y contras de React Native

Exactamente al igual que pasa con React, hay tremendo hype respecto a React Native, lo cual significa que hay una gran comunidad de desarrolladores usándolo. Esto siempre es muy positivo para el crecimiento, desarrollo y mantenimiento de una solución tecnológica.

Por otro lado, debido a la generación de componentes nativos a partir del JSX, obtenemos un resultado tanto de apariencia como de rendimiento muy similar (ligeramente inferior, pero cercano) al que obtendríamos desarrollando en nativo. Y, además, con unos sencillos pasos extra, podemos hacer correr nuestra aplicación en Apple TV o Android TV, lo cual está genial. 

Como contras, lo primero que no es realmente nativo, de forma que el rendimiento nunca será como el de una app desarrollada de forma nativa.

Hay desarrolladores que se quejan de que hay pocos componentes. Aunque al haber una gran comunidad y una amplia variedad de librerías (aunque muchas de ellas abandonadas, por lo que hay que seleccionar bien para no trabajar con librerías obsoletas), eso es de relativa fácil solución. Podrás encontrar librerías actualizadas con lo que necesitas.

Otro contra es que al haber una actualización del sistema operativo, eso no significa necesariamente que tus componentes se actualicen, de modo que al no ser nativos realmente tu interfaz de usuario podría romperse. Ocurre rara vez, pero es una desventaja a tener en cuenta.

E importante, si la última versión lanzada es la 0.65.1 de agosto de 2021, eso significa que, pese a tener React Native seis años desde su lanzamiento inicial, estamos en una versión estable pero que podría tener cambios significativos con siguientes actualizaciones. ¿Por qué? Simplemente porque se considera que versiones inferiores a 1 se encuentran en fases iniciales del desarrollo de software.

¿Ionic Framework o React Native?

En un mundo ideal, esta pregunta no tendría sentido, ya que desarrollaríamos en nativo (Kotlin para Android y Swift para iOS) y tendríamos apps con el máximo rendimiento posible. Pero, no vivimos en un mundo ideal, los presupuestos para los proyectos no son infinitos, las fechas de entrega y los tiempos de mercado tampoco. Y, entonces, ¿es mejor usar Ionic Framework o React Native?

Lo primero que he de decir es que no existe una respuesta universal a esta pregunta, ya que es una decisión personal y/o empresarial, y depende de muchos factores. Pero, ahondemos en algunas de las diferencias que pueden decantar la balanza hacia uno de los dos frameworks.

Si tu equipo de desarrollo no ha hecho jamás desarrollo móvil o multiplataforma, Ionic Framework puede ser una excelente elección. Simplemente porque permite acceder a características de un dispositivo móvil, como puede ser el GPS o la cámara, de forma extremadamente sencilla. Además de ser un framework basado por completo en HTML, CSS y JavaScript.

Sin embargo, si tu equipo de desarrollo tiene conocimientos en desarrollo multiplataforma y en React, puede ser una mejor opción React Native. Ya que vas a generar componentes nativos a partir de JSX y, evidentemente, con una curva de aprendizaje baja si tus desarrolladores ya tienen experiencia con React.

Espero que este artículo te haya ayudado a comprender mejor las diferencias entre Ionic Framework y React Native, así como a valorar cuál puede adecuarse mejor a las necesidades de tu proyecto. Para no perderte ningún artículo sobre programación, ¡no te olvides de seguirnos en Twitter y de suscribirte a nuestro canal de YouTube!

Artículos ​ relacionados