| Artículos | 01 ABR 2007

Mi primera aplicación Mobile Web 2.0

Tags: Histórico
En esta entrega de nuestra serie sobre aplicaciones Mobile Web 2.0 vamos a realizar un ejemplo paso a paso de aplicación móvil para mostrar el uso de los servicios que hemos ido comentando en los artículos previos. Para hacerlo más sencillo y accesible para todos, utilizaremos herramientas gratuitas durante el desarrollo. Podemos encontrar el listado de aplicaciones que utilizaremos en el recuadro adjunto, se pueden descargar e instalar en el PC.

Tal y como mencionábamos en el artículo anterior, al buscar ideas para aplicaciones móviles tenemos que tener presente que las capacidades de la mayoría de los dispositivos son reducidas, con lo que debemos intentar ofrecer interfaces limitadas si queremos alcanzar el máximo número de usuarios, sin descuidar la posibilidad de ofrecer una interfaz más avanzada para aquellos terminales que dispongan de mejores características (o para los que podamos disponer de un cliente en modo nativo). También recordábamos que el tipo de información que los usuarios móviles necesitan suele no ser la misma que la que requieren los usuarios “de escritorio”. La información debe ser mucho más puntual y hemos de tener en cuenta aspectos específicos del usuario, como localización o preferencias, para hacerla lo más útil posible (ver código 1).
Como ejemplo de aplicación, en este artículo desarrollaremos un pequeño visor de eventos. Nuestra idea es permitir al usuario recibir información sobre los eventos que están teniendo lugar cerca de donde se encuentra, de forma sencilla.

Paso 1: diseñando nuestra solución
Como ya hemos comentado en anteriores entregas, el desarrollo de aplicaciones Web 2.0 permite reciclar servicios externos y proporcionar valor añadido, como combinación de esos servicios. Al mismo tiempo, siempre es buena idea permitir que nuestro servicio también pueda ser reutilizado por terceras partes, reiniciando esa cadena de colaboración.
Como idea de servicio básico, nuestro visor de eventos debería sindicar distintas fuentes de datos sobre actividades vinculadas a la localización del usuario y devolver el resultado agregado. En el ejemplo que desarrollaremos aquí, sólo utilizaremos una fuente (Google Base), pero la idea sería extenderla a otros servicios de modo sencillo. Podemos encontrar diversos servicios que permiten su uso por  parte de terceros, buscando en internet o en directorios como www.programmableweb.com/apis
En las aplicaciones Mobile Web 2.0 (como en sus contrapartidas de escritorio) es muy buena idea hacer uso de la arquitectura en capas, para facilitar tanto el aislamiento de los distintos módulos de los que utilizaremos datos, como el uso por parte de terceros (asegurando una interfaz estándar mediante el uso de REST+XML, por ejemplo), y sobre todo para poder ofrecer distintas versiones de nuestro servicio (por ejemplo, una versión para navegadores WAP y un cliente nativo). Para el caso que nos ocupa hemos decidido diseñar la arquitectura como podemos ver en el diagrama adjunto (diagrama 1).
La idea principal es diseñar un servicio reutilizable que expondremos a través del servidor web (ListEvents.aspx) que ofrezca a los clientes una interfaz REST para listar los eventos en una determinada localización. Asimismo, diseñaremos una interfaz web que permita acceder al servicio desde navegadores móviles. Deberíamos ofrecer al menos la posibilidad de usar navegadores WAP para navegar por esta información (ya que un listado de eventos sencillo está perfectamente dentro de las capacidades de WML).

Paso 2: creando el servicio
Para la creación de nuestro servicio vamos a utilizar la tecnología ASP.NET de Microsoft, que posee una interfaz de programación muy sencilla, además de ofrecerse como un entorno gratuito para el desarrollo. Por supuesto, podríamos utilizar cualquier otra tecnología de desarrollo de aplicaciones web (como PHP, Python o Cold–fusion), según nuestro entorno y preferencias. 
El entorno Microsoft Visual Web Developer Express es una versión reducida para realizar desarrollos web de la herramienta Visual Studio. No es el objetivo de este articulo proporcionar un recorrido detallado, pero es una herramienta más que interesante para el desarrollador de aplicaciones web, ya que incorpora interesantes funcionalidades, como diseñador WYSIWYG (what you see is what you get), soporte a distintos formatos y estándares (XHTML, CSS) y unas excelentes capacidades de depuración.
Una vez arrancamos el entorno, nos ofrece distintas opciones. Para nuestro proyecto vamos a crear un nuevo sitio, en el que agruparemos tanto nuestro servicio como nuestro cliente web móvil. Para crearlo seleccionaremos la opción de crear un nuevo site web. Entre las plantillas que nos ofrece, escogemos crear un nuevo sitio vacio y nos quedamos con Visual C# como lenguaje del sitio. En nuestro ejemplo, nuestro nuevo sitio se llama PCWorldEventSite (imagen 1).
Para comenzar a crear nuestro site, vamos a crear un servicio REST genérico, que denominaremos ListEventService.aspx. Para ello, hacemos clic en el botón derecho en nuestro recién creado site en el Explorador de Soluciones (a la derecha), y seleccionamos añadir un nuevo Web Form (no olvidemos seleccionar C# como lenguaje).
Visual Web Developer creará automáticamente por nosotros algunos contenidos para la página. Sin embargo, lo que nosotros queremos no es una página tradicional, sino un contenido XML con el esquema que hayamos fijado para nuestra salida, según la localización que se pase como entrada. En nuestro caso hemos decidido que el servicio recibirá un parámetro ciudad (mediante HTTP, GET o POST) y que su salida será, bien una lista de eventos (incluyendo nombre y un enlace), o bien un elemento error con un mensaje para el usuario (imagen 2).
Para conseguir esto, vamos a eliminar todo el contenido de la pagina excepto la directiva <%@ Page del encabezado, a la que añadiremos el atributo ContentType=”text/xml”, indicando que nuestra salida será contenido XML. En la etiqueta <script> añadiremos un atributo language=”C#”, ya que ese será el lenguaje en el que escribamos nuestra aplicación.
Una vez tenemos el contenedor del servicio listo, es hora de escribir algo de código. Para recopilar información acerca de los distintos eventos disponibles, tenemos varias alternativas: contratar un servicio con alguna agencia que nos provea de datos sobre las distintas localizaciones, recopilar datos de distintos sites que los ofrezcan de modo gratuito, y/o utilizar los servicios de datos disponibles para agregarlos en Internet. En nuestro caso, vamos a utilizar los servicios de Google Base (base.google.com) que es un repositorio de distinta información categorizada por Google. Este servicio indexa varios proveedores, incluyendo algunos con datos sobre eventos en distintas localizaciones, lo que, sumado a su facilidad de acceso a través de servicios web, lo convierte en un candidato ideal para nuestro prototipo.
Para acceder a los servicios de Google Base vamos a usar las librerías que la propia Google nos ofrece, en su versión para .NET. Para ello, una vez descargado el contenido de las librerías, debemos añadir las referencias apropiadas a nuestro proyecto seleccionando añadir referencia desde el menú del proyecto y navegando hacia la carpeta clients\cs\lib\Release. Las librerías

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información