Aplicaciones móviles (apps) nativas vs. híbridas

aplicaciones apps mobile moviles hibridas vs nativas

Introducción

Desde el momento en que una empresa decide invertir en el desarrollo de una aplicación móvil, se enfrenta inmediatamente a una gran cantidad de conceptos y terminologías. ¿Cuál es la diferencia entre iOS y Android? ¿Qué son las aplicaciones nativas? ¿Y las híbridas? Y lo más importante, qué tipo de aplicación es más conveniente para la empresa?

 

 

Lo básico

Cuando hablamos del desarrollo de aplicaciones móviles, generalmente hablamos de desarrollar para dispositivos móviles, que son teléfonos y tablets. También podríamos referirnos a la web y a wearables (como por ejemplo smartwatches), pero en este artículo hablaremos exclusivamente de teléfonos y tablets.

En su gran mayoría, los dispositivos móviles utilizan dos sistemas operativos: iOS y Android. iOS es desarrollado y soportado por Apple y se utiliza en sus propios teléfonos y tablets (iPhone y iPad). Por otro lado, Android, es desarrollado y soportado por Google. Y si bien Google fabrica algunos teléfonos, Android es usado por otras marcas como Samsung, Motorola, Huawei, etc.

Actualmente Android controla el 88% del mercado de dispositivos móviles en todo el mundo, mientras que Apple tiene la mayor parte del resto.

fuente

 

¿Qué es una aplicación nativa?

Una aplicación nativa es aquella que esta desarrollada específicamente para un sistema operativo, utilizando las herramientas provistas por este. En el caso de iOS se utiliza el lenguaje Objective-C o Swift, mientras que en Android se utiliza Java.

Como la aplicación es desarrollada dentro de un ecosistema maduro, siguiendo los lineamientos técnicos y de experiencia de usuario del sistema operativo (gestos, alineación, tamaño y forma de los componentes visuales, etc), no solo tiene la ventaja de una mayor performance sino que “se siente bien”. Por sentirse bien nos referimos a que toda la interacción dentro de la aplicación tiene un look & feel consistente con el resto de las aplicaciones nativas que conviven en el dispositivo. El usuario final, entonces, tiene una probabilidad mayor de aprender como navegar y utilizar la aplicación de manera más rápida. Finalmente, las aplicaciones nativas tienen la ventaja de poder acceder fácilmente a las funcionalidades de hardware del dispositivo (GPS, cámara, sensores, etc).

En resumen, las aplicaciones nativas son justamente eso, nativas del sistema operativo del dispositivo del usuario final, regidas por las reglas que éste define.

Ventajas

  • Mejor experiencia de usuario general
  • Mejor performance
  • El acceso a las funcionalidades de hardware del dispositivo (GPS, cámara, sensores) es muy sencillo
  • Los componentes de UI son los que el usuario espera encontrar en una aplicación

Desventajas

  • Hay que desarrollar y mantener una aplicación por cada sistema operativo en el que se requiera tener presencia
  • La mayoría de los programadores se especializa en un sistema operativo, por lo que se requerirá un desarrollador para cada uno
  • En términos generales, el costo de desarrollo es ligeramente superior

 

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

Una aplicación híbrida es básicamente un sitio web dentro de una cáscara nativa, aunque pueden instalarse en el dispositivo de la misma manera de una nativa (se descargan desde los stores). Están construidas con Javascript, HTML y CSS y se ejecutan dentro de una WebView (una versión simplificada del explorador de internet del dispositivo).

Este tipo de aplicaciones tiene la principal ventaja de realizar un único desarrollo que corre en todos los sistemas operativos, con las implicaciones en costos y tiempos de desarrollo y mantenimiento que esto conlleva. Aunque, por otro lado, esto también implica un problema: al tener una interfaz de usuario unificada, deberán hacerse concesiones en lo que respecta a los lineamientos de cada sistema operativo, lo que provocará que la aplicación no se sienta tan bien de cara al usuario final.

Ventajas

  • Se desarrolla una única aplicación que funciona en todas las plataformas
  • En términos generales, el costo de desarrollo es inferior

Desventajas

  • La performance, al depender del WebView, se ve afectada considerablemente
  • Hacer que la aplicación funcione correctamente en todos los sistemas operativos implica hacer una puesta a punto fina para cada uno, lo que puede implicar que los tiempos / costos de desarrollo se acerquen a los de una aplicación nativa
  • La experiencia de usuario general se verá afectada, ya que los componentes que se mostrarán al usuario no serán los que le son familiares

 

Aplicaciones nativas multiplataforma

A partir de mediados de 2015 varios proyectos surgieron con el objetivo de dar una tercera mirada a esta problemática. Hablamos de Xamarin, React Native y Titanium. Los tres son frameworks / librerías / herramientas que permiten desarrollar una aplicación en un lenguaje común (C# para Xamarin, Javascript para los otros dos) que luego genera código nativo para cada sistema operativo.

Existe entonces una capa intermedia que se encarga de traducir lo que se está desarrollando al entorno nativo de cada sistema operativo, lo que permite, por ejemplo, que una misma barra de navegación se “vea nativa” tanto en Android como en iOS. Esto funciona sin problemas para un conjunto de controles “pre-traducidos”, aunque para interfaces con mayor grado de complejidad o personalización hay que desarrollar una implementación para cada sistema operativo.

Ventajas

  • La performance se acerca a la de las aplicaciones nativas
  • El acceso a las funcionalidades del teléfono es similar al de las aplicaciones nativas
  • Se desarrolla una única aplicación que funciona en todos los sistemas operativos, y aunque existan personalizaciones, el código común puede ser del 90%
  • Experiencia de usuario nativa

Desventajas

  • En aplicaciones con gran cantidad y grado de complejidad y personalización de pantallas, la cantidad de código común puede ser baja como para que se justifique
  • La capa intermedia que se agrega hace que la detección de errores pueda llegar a ser más compleja

 

Entonces ¿qué tipo de aplicación es conveniente para la empresa?

Experiencia de usuario

Lo primero que hay que tener en cuenta es que los teléfonos son dispositivos muy personales. ¿Alguna vez has perdido tu teléfono y dicho: “No hay problema, lo busco más tarde”? Seguramente no. El recuperar tu teléfono se transforma en la prioridad número uno, por encima del resto. Tu dispositivo móvil está junto a ti cada minuto del día, y es por ello que necesitas que sea responsivo y confiable. Debería ser ágil y darte las respuestas lo más rápido posible. Estas son las expectativas de todos los usuarios de dispositivos móviles.

Nadie tiene tiempo para malas experiencias de usuario, incluidos los clientes y empleados de la empresa. Mientras que el 79% de los usuarios una o dos veces luego de un fallo en el primer uso, solo el 16% le daría una tercera oportunidad. Una mala experiencia en la aplicación desalienta a los usuarios a utilizar la aplicación nuevamente.

fuente

Personalización de UI

En relación con el punto anterior, se debería intentar ofrecer una experiencia lo más nativa posible a los usuarios. En ese sentido, al desarrollar aplicaciones multiplataforma, para obtener resultados aceptables, es probable que se insuma una gran cantidad de tiempo en el ajuste fino de cada sistema operativo. En aplicaciones con interfaces complejas esto puede implicar que los tiempos y costos de desarrollo se acerquen a los de una aplicación nativa.

Masividad

Particularmente cuando hablamos de aplicaciones multiplataforma nativas, hay que tener en cuenta que al ser tecnologías relativamente nuevas (comenzaron en 2015/16) la cantidad de documentación, foros, librerías, comunidad de desarrolladores no es tan grande como la existente para tecnologías híbridas o nativas 100%. Si bien es un aspecto un poco más técnico que el resto, implica tomar un riesgo que podría impactar en los tiempos de desarrollo o calidad del resultado final.

Composición del mercado de dispositivos móviles

A nivel mundial, Android domina el mercado con un 88% de los dispositivos, mientras que iOS tiene el 11%. Si bien esta proporción cambia en paises como Estados Unidos, Inglaterra o Japón, es un dato interesante a tener en cuenta al momento de desarrollar una aplicación móvil. Una alternativa válida podría ser desarrollar primero la aplicación para un sistema operativo, evaluar los resultados y luego, en caso de éxito, desarrollar la otra versión.

 

Conclusión final

Cada enfoque tiene sus pros y sus contras, al momento no hay una respuesta definitiva. La clave es tner en cuenta todas las implicaciones de la decisión a tomar, tanto a corto como a largo plazo.

En nuestro caso particular, hacemos foco en la experiencia de usuario y performance por sobre todas las cosas, y es por ello que optamos por el desarrollo de aplicaciones nativas.

 

 

 

Posted on 14/07/2017 in Aplicaciones Móviles

Share the Story

Back to Top