El desarrollo de aplicaciones híbridas ha aumentado considerablemente en los últimos años. Sin embargo, no todos los frameworks de desarrollo son igual de versátiles y hay veces en las que hay que decidirse por uno a la hora de desarrollar nuestra aplicación híbrida.
Nosotros, al meternos en el mundo del desarrollo de aplicaciones para dispositivos móviles, tuvimos nuestras dudas. En esta nota, trataremos de dar un poco de luz y les vamos a presentar los dos frameworks para desarrollo híbrido más famosos: Ionic y React Native.
Antes de comenzar, ¿qué diferencias hay entre una aplicación nativa y una aplicación híbrida?
Las aplicaciones nativas:
- Son desarrolladas en el lenguaje requerido por la plataforma para la que se está desarrollando (Java para Android, Objective-C para iOS, etc.).
- Presentan un comportamiento distinto en función de la plataforma (navegación, animaciones, etc.).
- No tienen restricciones para acceder a las capas nativas de los dispositivos (cámara, GPS, etc.).
Por otro lado, las aplicaciones híbridas:
- Son esencialmente páginas web incrustadas en una aplicación móvil a través de un WebView.
- Están desarrolladas usando HTML5, CSS y JavaScript.
- Pueden ejecutar el mismo código independientemente de cuál sea la plataforma objetivo, aunque también cabe la posibilidad de usar código específico para cada plataforma objetivo.
- Pueden acceder a alguna capa nativa de los dispositivos (cámara, GPS, etc.) usando plugins de PhoneGap y Cordova.
Una vez presentado el concepto de aplicación híbrida, podemos hablar de Ionic y React Native.
Ionic nació en 2013. Basado en AngularJS, utiliza tecnologías web para desarrollar y renderizar las aplicaciones y se apoya en PhoneGap y Cordova para acceder a funciones nativas de los dispositivos, y sigue el lema “Write once, run everywhere”. Esto significa que el mismo código se podrá ejecutar en todas las plataformas que se quiera, Ionic simplemente adaptará sus elementos a cada una de las plataformas a la hora de mostrar elementos en la pantalla para dar una impresión “nativa”. Grandes marcas, como Diesel y McDonald’s han optado por Ionic para desarrollar sus aplicaciones.
React Native nació en 2015, creado por Facebook. Basado en React, utiliza JSX para desarrollar y renderizar las aplicaciones. Al contrario que Ionic, React Native no permite utilizar el mismo código para todas las plataformas, sino que ofrece componentes para cada una de ellas y deja a los desarrolladores la responsabilidad de ver qué componentes se asemejan más al comportamiento nativo que se esperaría en cada caso. Por supuesto, toda la familia de aplicaciones de Facebook está desarrollada con este framework, pero también hay empresas grandes, como Tesla, que han desarrollado sus aplicaciones con React Native.
Estos frameworks no disponen de un IDE, pero a la hora de ver cómo va quedando la aplicación durante el desarrollo, ambos ofrecen un refresco automático de los cambios. Ionic permite previsualizar y lanzar la aplicación en un navegador web y React Native permite hacerlo en un dispositivo móvil o un emulador.
Es importante anotar que existen dos limitaciones al desarrollar en React Native: por un lado, y hasta que no actualicen las versiones, sólo se puede desarrollar aplicaciones Android con compatibilidad hasta el API 23; por otro lado, hay que configurar el entorno del proyecto en Android Studio para que sea compatible con Java 8.
Ambos frameworks tienen comunidades bastante grandes (Ionic hereda la comunidad de AngularJS y React Native la de React) y “markets” propios de plugins. Esto es una ventaja enorme, ya que podremos encontrar un plugin para casi cualquier funcionalidad nativa que necesitemos. En ese sentido, a día de hoy Ionic ofrece una mayor cantidad de plugins disponibles es su market que React Native en el suyo, dado que PhoneGap y Cordova existen desde hace mucho tiempo, pero como React Native también ofrece plugins para poder integrar PhoneGap y Cordova también podemos aprovechar el esfuerzo de la comunidad de Ionic desde React Native.
A la vista de lo que hemos contado en esta nota, cualquiera de los dos frameworks podría ser una opción para empezar a desarrollar aplicaciones híbridas, así que para todos aquellos que aún no lo tienen claro, vamos a dar una recomendación para cada caso.
Recomendamos usar Ionic si has trabajado anteriormente con AngularJS y no te importa delegar parte de la lógica de estilos al propio framework, sólo quieres preocuparte de la lógica de negocio y hacer un sólo código. Por otro lado, recomendariamos usar React Native si has trabajado con React o vienes de un desarrollo más nativo y te interesa más estudiar qué tipo de componente es el que mejor se adapta a tus necesidades.
Comments