Fecha de publicación: Jan 28, 2010 9:0:25 PM
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.
Para comentarios, http://mevolucion.blogspot.com/2009/11/mevodesarrollo-el-enfoque-web-versus-el.html