Si eres desarrollador o tu empresa necesita realizar un desarrollo para dispositivos móviles, la primera idea que llega a tu mente es: ¿Desarrollo nativo o híbrido?

Sabemos que desarrollar aplicaciones nativas conlleva un mayor costo de producción y así mismo la curva de aprendizaje es mucho más alta. Debido a estas limitaciones, disponemos de una alternativa: Aplicaciones móviles híbridas y web.

Diferencias entre aplicaciones híbridas, web y nativas.


El desarrollo de aplicaciones híbridas es un enfoque de programación para dispositivos móviles que combina las fortalezas de la programación nativa con otras tecnologías (Como tecnologías web o algún lenguaje de programación diferente al de la plataforma) para desarrollar aplicaciones multiplataforma que se ejecuten de forma nativa en Android y IOS.

El desarrollo móvil web es básicamente el desarrollo de aplicaciones web comunes, pero optimizadas para ser visualizadas desde un dispositivo móvil. Por ende, estas aplicaciones son ejecutadas mediante el navegador del dispositivo.

Por otro lado, las aplicaciones nativas son las que utilizan el lenguaje especifico de cada plataforma. Por ejemplo, Java o Kotlin para Android y Objetive-C o Swift para IOS.

Actualmente disponemos de muchas herramientas que nos facilitan el desarrollo de aplicaciones móviles híbridas y web. Cada una con sus respectivas ventajas y desventajas. Algunas de las más conocidas: PhoneGap, Xamarin o Titanium.

Hay que tener presente que no todos los Framework son igual de versátiles. Dependerá de muchos factores el optar por uno que se adapte a nuestras necesidades.

Supongamos que en nuestro equipo de desarrollo, tenemos en su mayoría desarrolladores web. En este caso, PhoneGap podría parecer la opción ideal, ya que nos permitiría realizar aplicaciones móviles híbridas utilizando tecnologías web como HTML, CSS y Javascript.

Sin embargo, debemos tener en cuenta que, el resultado de una aplicación hecha en PhoneGap, no es más que una aplicación web adaptada al dispositivo móvil. Por lo cual el rendimiento puede variar mucho de acuerdo con el dispositivo, ya que depende por completo del navegador del móvil. Sin embargo, no deja de ser una opción viable, debido a que el costo de producción es muy bajo en comparación con desarrollos nativos.

Por otro lado, tenemos Xamarin y Titanium, que se pueden colocar en un punto intermedio entre nativo e híbrido. Éstas tecnologías se basan en desarrollar aplicaciones utilizando lenguajes de alto nivel (C# y Javascript respectivamente) para posteriormente traducir este código a un código nativo de la plataforma en cuestión.

La principal ventaja de estas tecnologías es, si eres un desarrollador de C# o Javascript, puedes utilizar tus conocimientos para desarrollar aplicaciones robustas, sin necesidad de aprender el lenguaje que utiliza cada plataforma. Sin embargo, Xamarin y Titanium también tienen sus desventajas. La principal, es que no podemos comparar el rendimiento de una aplicación nativa con una desarrollada en Xamarin o Titanium. Sin embargo, su rendimiento es muy aceptable.

Entonces ¿Es recomendable el desarrollo de aplicaciones móviles híbridas o web?


Por supuesto que sí. Sin embargo, es necesario plantearse algunas cuestiones , para determinar si es la opción más viable para nosotros.

Por ejemplo, supongamos que nuestra aplicación no será tan robusta y que no destinaremos un gran presupuesto, entonces una aplicación web podría parecer la opción más factible. Ya que su coste de producción será mucho menor y podremos disponer de ella en todos los dispositivos. El problema va radicar en que si requerimos acceso a funciones del hardware (Cámara, GPS, Acelerómetro) se requieren de algunos componentes externos. Igualmente, al implementar notificaciones push o alertas. Lo que podría elevar la complejidad del proyecto. 

En el caso que optemos por tecnologías como Xamarin o Titanium, se pueden considerar como buenas alternativas. Ya que al igual que en las aplicaciones web con PhoneGap, solo necesitamos escribir una vez nuestro código y podremos compilar en distintas plataformas. Una opción muy recomendable es que podemos empaquetar toda nuestra lógica de negocio en librerías de clases, las cuales serán desarrolladas en el lenguaje del Framework, para posteriormente solo enfocarse en los detalles concretos de cada plataforma.