El gran auge de los dispositivos móviles, tanto teléfonos inteligentes como tabletas ha disparado exponencialmente el uso de Aplicaciones nativas y web, complementariamente al desarrollo de páginas web tradicionales, las empresas del sector deben comenzar a trabajar a fondo este tipo de aplicaciones para sus clientes si quieren garantizar su presencia en este nuevo entorno. Pasamos pues a hacer un análisis en profundidad de  las mismas  y el porqué de su utilización.

En dispositivos móviles podemos distinguir dos tipos de aplicaciones:

Aplicaciones web y aplicaciones nativas.

  • La aplicación web se caracteriza por depender de un navegador web para su ejecución.
  • La aplicación nativa es aquella que se instala en el dispositivo y es desarrollada en un lenguaje que el propio dispositivo soporte.

Dentro de las aplicaciones nativas tenemos tres principales vías de desarrollo:

  • Usar el SDK (Software Development Kit) oficial del sistema operativo,
  • Optar por frameworks de desarrollo basados en HTML+CSS+Javascript.
  • Desarrollar aplicaciones web que son empotradas (embebidas) dentro de una aplicación nativa (sin interacción con el dispositivo).

También existen otras vías, como lo son (en el caso de Android) Basic4Android o PHP for Android, que permiten desarrollar aplicaciones usando otros lenguajes como Visual Basic o PHP, o el Android NDK (Native Development Kit), que permite usar C/C++ para trabajar a bajo nivel. Este tipo de vías no serán objeto del presente artículo.

Una vez que conocemos las posibilidades, ¿que tipo de desarrollo nos conviene emplear? La respuesta a esta pregunta depende de la aplicación a desarrollar, y más concretamente de las funcionalidades que se desea que ésta tenga. Este artículo pretende dar a conocer los pros y los contras del desarrollo de cada una de éstas.

¿Por qué desarrollar aplicaciones web?

  • Multidispositivo (accesible desde cualquier móvil con navegador) con un solo desarrollo, y por tanto, mayor visibilidad de nuestra marca, producto o servicio (no nos limitamos a estar en stores, estamos accesibles vía navegador)
  • Desarrollo de aplicaciones sencillas (principalmente consulta de información, con poca o ninguna interacción)
  • Sin necesidad de usar ninguna funcionalidad del teléfono
  • Actualizaciones transparentes para el usuario, ya que son realizadas en el servidor

¿Por qué desarrollar aplicaciones nativas?

  • Rendimiento y velocidad de carga respecto de las empotradas o hechas con frameworks (en web hay que esperar a que cargue la página y con frameworks puedes tener problemas de rendimiento de Javascript)
  • Utilizar toda la potencia del SDK del dispositivo
  • Desarrollo de aplicaciones complejas (cámara, GPS, sensores, Bluetooth, cliente/servidor, etc…)
  • Para evitar sorpresas (requisitos no bien analizados y/o cambiantes)

¿Por qué desarrollar aplicaciones nativas con frameworks HTML/CSS?

  • Multidispositivo (iOS, Android, Windows Phone…) con un solo desarrollo, y por tanto, mayor visibilidad de nuestra marca, producto o servicio
  • Para diseños complejos de realizar con el SDK (que requiere más trabajo): mejor usar HTML+CSS y el motor de renderizado del navegador
  • Velocidad de carga respecto aplicacioness empotradas
  • Uso de funciones del dispositivo para tareas de complejidad media-baja
  • Desarrollo de aplicaciones de dificultad media-baja

¿Por qué desarrollar aplicaciones web empotradas en aplicaciones nativas?

  • Características similares a las aplicaciones web
  • Pueden ser distribuidas en las tiendas (App Store, Android Market, Windows Marketplace…)
  • Posibilidad de utilizar alguna función del dispositivo, pero sin interacción con la web empotrada

Por Jose Ignacio Honrado.