lunes, 9 de noviembre de 2009

mevoDesarrollo: El enfoque WEB versus el enfoque NATIVO

A la hora de desarrollar una aplicación usando Tecnología Móvil, de diseñar una solución para resolver una necesidad de los usuarios, un punto importante a tener en cuenta es el enfoque que tendrá dicha aplicación, y por enfoque me refiero a la decisión de si la aplicación se ejecutará vía WEB (desde un browser), o NATIVO (directamente instalada en el dispositivo).

No es un punto menor debido a las características del mercado Móvil: variedad de dispositivos (y software base o sistemas operativos), capacidad de procesamiento y memoria restringidos (comparados con los de PC tradicionales) y disponibilidad de conexión a Internet (que puede tener restricciones debido costos y/o cobertura o alcance de la señal).

La llegada del iPhone ha complicado más el asunto, dado que ahora existe la presión de "copiar" la apariencia (usabilidad y atractivo) de esas aplicaciones, lo que aumenta la complejidad de los desarrollos.

Ventajas del enfoque WEB:
  • El soporte es más barato.
  • La velocidad de desarrollo es mayor.
  • Costo de desarrollo es menor.
  • El conocimiento existente de PC es reutilizable en su mayoría.
  • No hay problema con la variedad de dispositivos.
  • Distribución es mucho más sencilla.
  • Datos centralizados e integración con múltiples fuentes es más sencilla.
  • Permite el desarrollo de comunidades.
  • Permite extender el sitio WEB existente.
  • Actualización / correcciones son instantáneas.

Desventajas del enfoque WEB:
  • Costos, en algunas países las tarifas de acceso a Internet desde dispositivos móviles son elevadas.
  • Disponibilidad, las aplicaciones necesitan conexión continua (y rápida) a Internet y aún no está disponible en todas partes.
  • La "experiencia" WEB (funcionalidad de las aplicaciones, interactividad) en los dispositivos móviles es limitada comparada con la que se tiene en PC.
  • No hay forma de aprovechar algunas características específicas de los dispositivos (como la cámara por ejemplo).
  • Velocidad de acceso es limitada.
  • Muchas versiones de navegadores disponibles, los cuales ofrecen muy diferentes presentaciones para el mismo contenido al no estar estandarizados.
  • Tecnologías que permiten interacción como AJAX y DHTML tienen soporte limitado.

Ventajas del enfoque NATIVO:
  • Nuevas oportunidades de negocio.
  • Aplicaciones pueden interactuar directamente con el dispositivo.
  • Control detallado de qué se muestra y cómo se muestra.
  • Múltiples formas de interacción con el usuario disponibles (de acuerdo al dispositivo, por ejemplo, pantalla táctil, teclado).
  • Rendimiento mejorado y optimizado de acuerdo a cada dispositivo.
  • Se puede mantener la consistencia de la interfaz (como se ve, como se interactúa, como responde) a través de las múltiples plataformas en las que se distribuya la aplicación.
  • Capacidad de trabajo "fuera de línea".
  • Flexibilidad en las opciones de configuración de la aplicación, dándole control total al usuario.
  • Comercialización simple: el usuario paga por la aplicación y la descarga (es un evento claramente identificable para efectos de cobro).

Desventajas del enfoque NATIVO:
  • Dificultad para mantener la portabilidad (disponibilidad en múltiples plataformas) de la aplicación debido a la enorme cantidad de diferentes dispositivos que son lanzados continuamente.
  • Fragmentación de ambientes de desarrollo, lo que requiere conocer y entender cosas únicas de cada ambiente y es difícil determinar cuál es el más adecuado para desarrollar una aplicación particular (¿se usa J2ME o Flash Lite o C/C++?)
  • Mayores costos de desarrollo debido a que el conocimiento es más especializado.
  • Menor velocidad de desarrollo por su complejidad.
  • Dificultad para cumplir los múltiples y variados requerimientos que cada proveedor de servicio exige.
  • Pruebas costosas puesto que toca tener los dispositivos físicos.
  • Mercado puede requerir migración de aplicación a otras plataformas.
  • Modelo de distribución es complicado, si se usan las App Store se puede necesitar autorización adicional.
  • Corregir un error / sacar una nueva versión implica volver a descargar la aplicación y considerar la migración de los datos actuales.

Como se puede ver la decisión no es fácil y depende mucho de lo que se quiere respecto a la aplicación.

Si la aplicación es una extensión de algo que ya existe en la WEB (y que se está migrando o extendiendo al ambiente móvil), y no requiere mucha interacción con el usuario entonces el enfoque WEB sería adecuado.

Si la aplicación requiere acceso a datos que están en el dispositivo (como la agenda, o la información de algún contacto), necesita interactuar con el usuario, tiene reducida la variedad de dispositivos a los que tiene que llegar (por ejemplo, aplicaciones sólo para iPhone), y/o usa características que son generales a todos los modelos (por ejemplo J2ME básico sin extensiones del fabricante), entonces el enfoque NATIVO sería adecuado.

En resumen: es más rápido y barato el enfoque WEB, pero hay mayor integración y rendimiento con el enfoque NATIVO.

Hay que tener en cuenta que los ambientes de desarrollo se encuentran evolucionando rápidamente: Flash podrá ejecutarse en los navegadores de los dispositivos móviles dentro de poco y eso hará más fácil desarrollar aplicaciones móviles que usen la WEB; la diversidad de sistemas operativos seguirá disminuyendo, de los 5 "grandes" que tenemos ahora mismo (Android, iPhone, Symbian, WebOs, Windows Mobile), pasaremos a 3 en el mediano plazo (Android, iPhone, Windows Mobile o Symbian), y eso hará más fácil desarrollar aplicaciones móviles NATIVAS.

Mi conclusión es que la evolución de la tecnología hará cada vez más fácil usar cualquiera de los enfoques, y así como Internet y las aplicaciones WEB no han abolido las aplicaciones nativas en PC, el enfoque móvil WEB no acabará con el enfoque móvil NATIVO por lo que ambos deben considerarse siempre a nivel de desarrollo de aplicaciones.

Si su negocio es desarrollo de aplicaciones y quiere ir a desarrollar aplicaciones móviles (o quiere entrar a ese negocio) debe entonces tener en cuenta que necesita tener la capacidad de usar las dos opciones.

No hay comentarios:

Publicar un comentario

Seguidores

Datos personales

Mi foto
Ingeniero de Sistemas, Consultor, Diplomado en Gerencia de Proyectos. Arquitecto de Soluciones Tecnológicas.