miércoles, 9 de mayo de 2007

aplicaciones móviles, ¿web o nativas?

Hace un par de semanas descubrí un blog que por lo que parece está creado por la Diputación de Huesca o por alguien de la Diputación. El caso es que como dice Alguiñano, escriben "con fundamento". El blog es ispamat

Hoy voy a hacer un corta pega de un post al que no le sobra nada en el que se describen las diferentes formas de construir una web móvil con diferentes pros y contras.

Dilema. No muchos meses atrás la respuesta hubiese sido rápida y definitiva: nativa. Otro cantar hubiera sido elegir la plataforma de desarrollo. A día de hoy es posible argumentar.

Entendemos por aplicación móvil Web la que necesita de un navegador web o browser como iExplorer Mobile, Mínimo u Opera para ejecutarse. Aplicación y datos pueden residir remotamente en un servidor u obtenerse del mismo dispositivo móvil. Aplicación nativa es aquella que se instala en el propio dispositivo como cualquier otra aplicación y se desarrolla utilizando un lenguaje de programación compatible con el sistema operativo del dispositivo (Symbian) o de un framework de desarrollo (Java ME, .Net Compact Framework).

Desarrollo Las aplicaciones nativas requieren un mayor esfuerzo de desarrollo, tanto en horas como en especialización del equipo. El dispositivo y los lenguajes utilizados son más limitados y complejos que el entorno servidor o desktop. Siempre que sea posible un desarrollo por terceros, ya que algunos sistemas operativos móviles no lo permiten.

La Web es más sencilla de programar, permite que las actualizaciones sean transparentes al usuario y el desarrollador tiene todo el control de la misma al residir en servidor.

Despliegue En el desarrollo de una aplicación nativa la selección de dispositivos donde se ejecutará debe ser una decisión inicial. Normalmente esta decisión está condicionada por dos aspectos: la población objetivo y los requisitos técnicos.

  • Población objetivo: si queremos llegar al máximo de usuarios, Java ME es la única plataforma que nos ofrece esta posibilidad. Hoy en día son muchos los dispositivos con diferentes sistemas operativos que soportan la plataforma Java.
  • Requisitos técnicos: si bien los frameworks anteriormente mencionados nos abstraen del sistema operativo, suponen una barrera a la hora de acceder a todas los posibilidades del dispositivo. Muchos casos de uso se encuentran limitados por la poco flexibilidad y profundidad de las APIs de Java. El .Net Compact Framework ofrece más posibilidades, sin embargo los dispositivos están limitados por el sistema operativo. Symbian es a día de hoy el que permite mayor número de virguerías, aunque su dificultad y su variedad de versiones debe tenerse en cuenta.

La mejor solución, aunque más costosa, consiste en desarrollar la aplicación para todos los sistemas operativos posibles.

En el caso de la web no tenemos este problema. Los navegadores web móviles son multiplataforma.

Conectividad A día de hoy la gran barrera de las aplicaciones web. El dispositivo móvil es un entorno hostil a las conexiones de datos. No sólo es caro mantener una conexión con la red de datos de manera permanente. Tampoco la operadoras móviles nos garantizan el contexto de datos (PDP Context) y sobre todo, el consumo de batería es excesivo. De este modo será necesario esperar al desarrollo de UMTS o incluso IMS/IPv6 para encontrar un escenario realmente estable y competitivo para este tipo de aplicaciones móviles.

Usabilidad Si se desea un cliente rico en el terminal, las aplicaciones nativas llevan ventaja. Sin embargo los navegadores web específicos para móvil incorporan cada vez más capacidades -como Ajax- y estándares -JavaScript, CSS, XHTML- que facilitan la creación de aplicaciones más ricas que proporcionan una experiencia al usuario cada vez más satisfactoria.

Futuro Sin duda alguna el futuro son las aplicaciones web: El desarrollo actual de los servicios (orientados al mundo IP), la evolución de los navegadores (Firefox pronto será una plataforma de desarrollo y ejecución muy completa) y la rapidez y facilidad en el desarrollo reafirma la anterior afirmación.

Conclusión Si bien el futuro es la Web, actualmente la decisión más realista es desarrollar una aplicación nativa. Salvo que simplemente se quieran ofrecer datos estáticos o interacciones muy simples, en este caso resulta interesante una web (mejor .mobi); ejemplos los hay, y muchos.

  • Aplicación sencilla con amplia distribución: JavaME.
  • Aplicación técnicamente compleja con características de piloto: Symbian, .Net Compact Framework.
  • Aplicación con altas dosis de innovación/investigación: Web.

Technorati Tags:, ,

2 comentarios:

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

Muchas gracias por tus palabras!