Aplicaciones nativas vs aplicaciones web

Aplicaciones web vs. aplicaciones nativas vs. aplicaciones híbridas

Uno de los pilares del método científico es el conocido como “Navaja de Ockham” y postula que, en igualdad de condiciones, la explicación o solución más sencilla suele ser la correcta. Sin embargo, no debemos caer en la tentación de pervertir el modelo y buscarle a todo una solución simple pensando que será la mejor.

Si pensamos en el desarrollo de aplicaciones para móviles, podemos ver cómo hay una tendencia creciente a pensar que las aplicaciones Web son el futuro al que se dirige este complejo ecosistema, por ser la más sencilla de cuantas alternativas se proponen. Cuando hablemos de aplicaciones web, nos centraremos principalmente en HTML5 (aunque es solo una de las alternativas de desarrollo de éstas), por ser el estándar en boga. En este artículo intentaremos ignorar la barrera levantada entre los defensores de las aplicaciones web (Brad Hill: In Defense of HTML5) y los detractores de las mismas (Mark Zuckerberg: Our Biggest Mistake Was Betting Too Much On HTML5); y plantearemos una comparativa que quizás nos lleve a pensar que, en este caso, la mejor solución es la más diversificada… o no.

Aplicaciones nativas, aplicaciones web y aplicaciones híbridas

Hoy día, en función de cómo se aborda su desarrollo, se suele hablar de tres tipos de aplicaciones móviles: nativas, web e híbridas, que se definen como:

  • Aplicaciones nativas: aquellas que están íntegramente programadas en el entorno de desarrollo específico para cada sistema operativo.
  • Aplicaciones web: completamente desarrolladas en HTML 5.
  • Aplicaciones híbridas: aplicaciones desarrolladas en parte con el entorno de desarrollo  nativo y en parte en lenguaje WEB (HTML 5).

Cada una de ellas tiene sus aspectos positivos y negativos que pueden y deben influir a la hora de hacer una elección para su desarrollo.

Uno de los puntos fuertes de las aplicaciones web móviles es su funcionamiento en todas las plataformas (solo se debe tener en cuenta la compatibilidad con el motor de browser o navegador). Una aplicación web funcionará en (casi) todos los smartphones mientras que las aplicaciones nativas requieren un desarrollo para cada uno de los sistemas operativos (e incluso para versiones diferentes de éstos) y las híbridas necesitan por lo menos el desarrollo del “contenedor” nativo que aloje las partes en lenguaje web. Dado que su funcionamiento se basa en recursos web, tanto las aplicaciones híbridas como las web necesitan una buena capacidad de concurrencia en los servidores en donde se albergan y una muy buena conectividad para funcionar de forma óptima.

Obviamente, esto es también uno de sus puntos críticos: algunas de estas aplicaciones no funcionan sin conexión, incluso si a priori parece que no la necesitan (lo que puede generar una cierta frustración en los usuarios). Por el contrario, la gran ventaja está en que no son necesarios unos grandes requisitos de hardware (procesador, memoria) en la parte del dispositivo móvil para poder ejecutar las aplicaciones.

Native apps vs hybrid apps vs web apps

Si pasamos a analizar la integración de las aplicaciones con las funcionalidades que ofrecen los móviles, nos encontramos con que los lenguajes web no tienen todavía compatibilidad con todas las funcionalidades/APIs nativas (tales como el GPS, acelerómetro, captura de imágenes, audio y vídeo, 3D, agenda de contactos, calendario, etc.), y eso hace que su integración a veces resulte compleja. En algunos casos, se necesita  el desarrollo de un framework para usar las APIs nativas, lo que convierte el desarrollo de la aplicación web en un proceso tan arduo como el de desarrollar una aplicación nativa. Un ejemplo de esto podemos verlo en el blog de Sencha, en el post “The Making of Fastbook: An HTML5 Love Story”, Jamie Avins and Jacky Nguyen explican cómo fueron capaces de construir una aplicación de Facebook en HTML5 con un rendimiento espléndido (desmintiendo las declaraciones de Mark Zuckerberg), pero a costa del desarrollo de un framework que sería muy complejo de hacer para un desarrollador que no sea muy experimentado.

Factores a considerar: complejidad de desarrollo, interfaz de usuario, canal de distribución

Todo lo anterior tiene más o menos relevancia dependiendo de la complejidad de las aplicaciones que queramos desarrollar. La gran ventaja de las aplicaciones web, y en parte de las híbridas, es que requieren una menor inversión inicial, debido a que la mayor parte del desarrollo no se debe repetir para cada sistema operativo. Y es importante resaltar que, cuando se decide hacer múltiples versiones de una aplicación, no solo hay que desarrollarlas sino también probarlas y mantenerlas, lo que puede llegar a disparar los costes. Otra ventaja de las aplicaciones web es que suelen necesitar un menor tiempo de desarrollo que sus equivalentes nativas, lo que puede ser crucial en el caso de que exista una ventana de oportunidad para la venta de la aplicación.

Otro aspecto que habría que analizar es la consistencia de la aplicación con la interfaz de usuario de cada sistema operativo. Si se quiere hacer una aplicación única para todos los sistemas operativos, lo que se gana en homogeneidad generalmente se pierde en la riqueza de personalización proporcionada desde la interfaz nativa. Dicho de otro modo, el desarrollador tiene que valorar si compensa tener la misma aplicación (web) en un móvil Android, Windows Phone, Firefox OS o iOS, a costa de que dicha aplicación suponga una ruptura con el estilo de la interfaz nativa del dispositivo y se pierdan las opciones específicas de cada plataforma.

Buffer app is a native app

Aunque no se trate de un aspecto técnico, también es muy importante considerar cómo es el canal de distribución para los diferentes tipos de aplicaciones, es decir, la tienda. Las aplicaciones web son la más perjudicadas en este aspecto porque su presencia en las stores oficiales de los sistemas operativos predominantes, iOS y Android, no está admitida. Esto comporta que su descubrimiento sea más complicado y que para conseguir que la aplicación tenga una buena visibilidad se deba realizar un esfuerzo de marketing mayor que en el caso de las aplicaciones nativas. También las aplicaciones híbridas están en el punto de mira de los “dueños” de estos sistemas operativos que en algunos casos, dependiendo de qué parte se haya desarrollado con lenguaje web, no dan el visto bueno para su publicación. En el caso de Firefox OS, el descubrimiento de las aplicaciones web desde el terminal está garantizado, aunque es algo específico de esta plataforma por el momento.

Empezar con aplicaciones web pero seguir una ‘estrategia’ híbrida

Cualquier empresa que quiera desarrollar aplicaciones para móviles tiene que valorar las ventajas e inconvenientes de las aplicaciones web y las nativas antes de comenzar a tirar código. Y la decisión no depende únicamente de lo fácil o difícil que sea desarrollar la propia aplicación, sino también de factores como la ventana de oportunidad, el peso que se quiera dar a la experiencia de usuario, el rendimiento, la agilidad en el mantenimiento y la capacidad de actualización de la propia aplicación o de la información contenida en ella.

Personalmente, no soy partidario de “tirar por la calle de en medio” y apostar exclusivamente por las aplicaciones híbridas ya que, si bien pueden aunar las ventajas de las aplicaciones web y nativas por separado (simplificación, homogeneidad, flexibilidad, adaptación de la interfaz de usuario) también reúnen los inconvenientes de ambas (fragmentación, dificultad de mantenimiento, optimización de rendimiento compleja, aumento de inversión inicial y costes). Pero quizás sea buena idea considerar una estrategia híbrida en su lugar, cuando las características del proyecto lo permitan. Por ejemplo: ¿por qué no hacer una versión inicial web que permita lanzar rápido y verificar la aceptación del mercado?. Si la etapa de desarrollo es rápida y barata, siempre es más fácil derivar parte de la inversión inicial a acciones de marketing, que redundarán en sus probabilidades de éxito. Y, si el concepto funciona, se puede apostar por una segunda oleada de aplicaciones nativas (o híbridas) con un menor riesgo de fracaso. Además de que sería posible volver a aprovechar la inversión ya hecha en marketing.

En definitiva lo único que me queda claro es que, en el entorno de las aplicaciones móviles, la Navaja de Ockham no tiene filo.

Autores | Alfonso Fernandez Gutierrez y Salvatore Chessa

Imágenes | Icenium, Sigalakos vía Compfight cc y Boagworld

RELACIONADOS

astronauta-astrobee-robot

Astrobee, el robot ayudante de los astronautas

Desde aspiradoras que mantienen limpios los suelos de nuestras casas a dispositivos que asisten en operaciones a corazón abierto. Los robots se diseñan para...