Apps móviles Web o Nativas [Incluye video comparativo]

¿Aplicaciones Móviles nativas o basadas en tecnologías Web (HTML y Javascript)? Ha habido un debate importante en el mundo del desarrollo de aplicaciones móviles (para celulares y tabletas) sobre si es mejor desarrollar en modo nativo o en modo Web. Por modo nativo o aplicación nativa nos referimos a aquella aplicación que funciona directamente para el sistema operativo del dispositivo y posibilitando el acceso completo a las características y el hardware del móvil. Por el contrario, por aplicación móvil Web nos referimos a las apps que utilizan básicamente las tecnologías Web típicas: HTML, hojas de estilo (CSS) y Javascript. ¿Qué es mejor? Depende.

Mi posición es la siguiente: Si tú quieres desarrollar un app que hace uso de las características completas de hardware y del sistema operativo (ya sea iOS, Android o cualquier otro) del móvil entonces lo mejor será programar una aplicación nativa. De esta manera, si tu app hará uso intensivo, por ejemplo, del GPS ó de la cámara ó de las capacidades de sonido o pantalla del móvil, entonces creo que vale la pena que desarrolles en Objective-C y Cocoa (en caso del iOS) ó en Java y con el Android SDK (para el caso de aplicaciones para Android). Un ejemplo típico de este tipo de apps son los juegos y muchos impresionantes ejemplos descargables hoy día desde las App Stores o App Markets.

Otro escenario es cuando tu aplicación está más orientada a la automatización de un proceso empresarial y que está muy basada en datos. Por ejemplo, apps de CRM, de Recursos Humanos o de soporte a cualquier otro proceso organizacional. Aunque en estas apps, la interfaz también es importante (y por eso el gran momentum que vive Javascript y frameworks como jQuery), lo más importante es que la aplicación funcione en la nube (en la Web). En este caso yo seleccionaría desarrollar la aplicación móvil vía las tecnologías Web tradicionales pero de última generación: HTML5 + CSS3 + Javascript.

Ventajas de la tecnologías nativas: Mejor experiencia del usuario (en la interfaz del móvil) y mejor uso de las características de hardware del mismo. Desventajas: Incompatibilidad de plataformas por lo que el app debe desarrollarse varias veces, una por cada plataforma que se quiera (Android, iOS, Blackberry, Windows Phone, etc.) utilizar.

Ventajas de tecnologías Web: Un desarrollo que funcionará para cualquier plataforma. Sólida integración con aplicaciones basadas en servidores empresariales (aplicaciones Web y de bases de datos). Desventajas: Una interfaz de usuario móvil comparativamente débil y poca capacidad de interactuar con el móvil (sonido, pantalla, GPS, cámara, etc.). Además, no se pueden publicar en los App Stores y Markets para distribuirse y ser descargadas.

Hoy día existen muchos frameworks y tecnologías basadas en HTML5 y Javascript que permiten programar interfaces de uso en los móviles que casi igualan la experiencia de usuario de aplicaciones nativas. No son apps nativas sino Web pero como hacen uso intensivo de Javascript en el móvil pues entonces logran una experiencia similar (ver el video). Los frameworks más conocidos son Sencha Touch, jQuery Mobile y jQTouch.

HTML5 Sencha App vs. native iPhone App side by side

On the left, Sencha version of touchNOC Manager app. On the right, native.

Por otro lado, existen tecnologías que permiten construir aplicación híbridas; es decir, apps móviles que son construidas en tecnologías Web (HTML5 / CSS / Javascript) pero que son envueltas para parecer y comportarse como nativas. Las más reconocidas y con más tracción de mercado son PhoneGap, Titanium Mobile y Rhodes. Las diferencias técnicas entre ellas son importantes y mercerían otro post completo. PhoneGap (recientemente comprada por Adobe) es un “wrapper” de aplicaciones móviles Web para hacerlas parecer y funcionar de manera nativa. Titanium Mobile es un compilador de Javascript propietario de tal manera que genera código nativo del móvil. Y Rhodes hace funcionar de manera nativa aplicaciones Web móviles utilizando una máquina virtual (servidor Web más Intérprete de bytecode) en el móvil

¿Qué es mejor? Pues sí; la respuesta sigue siendo “Depende”. Porque dependiendo del contexto del app es que se debe diseñar la estrategia tecnológica correcta a seguir. En principio, ninguna ruta debe ser descartada. Personalmente me inclino más por una aplicación Sencha Touch o jQuery Mobile, pero es una preferencia que debe evaluarse dependiendo de lo que se quiera.

Buen día y ¡mucha suerte!

, , , , , ,

  1. Más de apps móviles « Cloud.Mobile.Social

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: