Publicado el 29/01/2020

Hoy en día debes estar acostumbrado a hacer casi cualquier cosa desde tu teléfono móvil. Desde mantener el contacto con familiares y amigos a través de las redes sociales, hasta poder realizar operaciones bancarias. Para poder convertir algo tan complejo como una operación bancaria en algo tan simple para el usuario como pulsar un botón, requiere un gran trabajo por parte de un equipo de desarrollo y las aplicaciones móviles híbridas pueden ser de gran ayuda.

¿Qué es una aplicación híbrida?

Para poder llegar a entender qué es una aplicación híbrida, primero debemos comprender cómo se realizan las aplicaciones móviles.

Ha habido y hay varios intentos de crear diferentes sistemas operativos para móviles, pero los que tienen la cuota más alta de dispositivos son IOS y Android. Por ello, mayoritariamente, se realizan aplicaciones para estas dos plataformas. El inconveniente es que cada plataforma utiliza lenguajes diferentes.

Es decir, Android se programa con una variante de Java mientras que IOS con Swift, esto produce que para programar una aplicación para las dos plataformas haya que crear específicamente toda la aplicación en ambos lenguajes. Esto degenera en que tenemos dos desarrollos completamente diferentes, uno para cada plataforma, pero que terminan realizando algo similar.

La idea de las aplicaciones móviles híbridas nace para luchar contra esto de tener dos proyectos totalmente diferentes para lo mismo, es decir, programaremos una sola aplicación y nos funcionará en las dos plataformas.

¿Cómo funciona una aplicación híbrida?

Realmente las aplicaciones móviles híbridas funcionan de la siguiente forma: utilizan el navegador interno del dispositivo, denominado webview, para poder mostrar una web local y la empaqueta como aplicación. De manera que crearemos una aplicación utilizando básicamente HTML, CSS y JS.

Existen diferentes frameworks que nos permiten crear aplicaciones móviles híbridas, citamos los más comunes y utilizados:

  • PhoneGap / Apache Cordova
  • jQuery Mobile
  • Ionic
  • React Native
  • Framework 7

Ahora te puede surgir la siguiente duda: ¿y si quiero acceder a funciones específicas del dispositivo?

Supongamos que queremos utilizar el GPS del dispositivo independientemente del móvil en el que nos encontremos, los diferentes frameworks tienen una API que lo que hacen es conectar el lenguaje del dispositivo con javascript. De manera, que tendremos que tener creado el código de obtener la localización escrito en swift para IOS y en java para Android, el framework ejecutará el código correspondiente según en qué dispositivo nos encontremos y nos devolverá el resultado mediante javascript, de manera que con esta abstracción obtendremos un resultado similar o igual en las dos plataformas y podremos mostrar la misma vista independientemente del dispositivo.

Ventajas y desventajas

Ahora estarás pensando ¿y por qué se siguen realizando aplicaciones con desarrollo propio existiendo apps móviles híbridas? De la misma forma que no es oro todo lo que reluce, también tenemos inconvenientes:

  • Ofrecer una buena experiencia de usuario se vuelve algo tedioso.
  • Toda nuestra lógica estará hecha en Javascript, de manera que tendremos mucho código en este lenguaje si nuestra aplicación es compleja.
  • Son más lentas en tiempos de ejecución que una App nativa.
  • Las integraciones con funciones del dispositivo, no son iguales de fluidas que en una App nativa.

Pero, en cambio, tenemos las siguientes ventajas:

  • Como solo haremos una aplicación, tendremos una menor inversión en desarrollo.
  • Solo tendremos que maquetar una vez para las diferentes plataformas, de manera que obtendremos antes un producto.
  • Solo habrá que mantener una sola fuente de código.

¿Cuál de las dos opciones es mejor?

No existe un patrón claro para determinar cuál es mejor, se debe de hacer un análisis para determinar por qué decantarte por una de las dos opciones. Por ejemplo, si tu aplicación será un videojuego que consuma muchos recursos del dispositivo será mejor una aplicación nativa. Si, por el contrario, tu aplicación solo será una utilidad para consultar información tal vez, te interese más una aplicación móvil híbrida.

Foto perfil

Daniel Jiménez |

Full Stack Developer