Cómo utilizar el servicio Weather de MSN en Windows Phone

Hoy os vamos a dejar un tutorial de cómo usar el servicio MSN Weather en nuestro Windows Phone.

Este es un servicio de tiempo que nos devuelve un fichero XML con la previsión de 5 días a partir del actual.

Este servicio lo podemos llamar con esta URL pasándole tres parámetros.

Cómo podéis observar los parámetros introducidos son cómo vamos a recibir la temperatura, si en grados Celsius o Fahrenheit. El segundo parámetro es la cultura es-ES para recibir los datos en castellano, y por último la ciudad de la que queremos recibir la previsión de tiempo.

Con todo esto, ya nos podemos poner manos a la obra a crear un proyecto WP8 para mostrar la previsión del tiempo. Para ello voy a utilizar Visual Studio 2013, lo primero creamos un nuevo proyecto vacío:

  1. Una vez tenemos creado el proyecto nos vamos a crear una carpeta de imágenes donde meteremos todas las imágenes del tiempo para luego mostrarlas:
  2. Lo siguiente que haremos, en mí caso ha sido crearme un ViewModel de la vista para seguir el patrón MVVM:
  3. Y ahora metemos una lista del tipo LongListSelector en la vista para poder mostrar la imagen, la temperatura o lo que nosotros queramos.
  4. Fijaros que también he puesto una progressbar para indicar cuando esté cargando el servicio. Este servicio es muy rápido y puede que ni se vea pero para otros servicios esto es muy importante para el usuario, que en todo momento tiene que saber que estamos haciendo algo.
  5. Lo siguiente que haremos será crear una clase Weather en la que iremos metiendo todas las propiedades que nos devuelva el fichero XML:
  6. Y una vez que tenemos la clase, creamos la lista de este tipo que vamos a enlazar con la vista:
  7. Lo siguiente será crearnos dos métodos, uno para realizar la consulta asíncrona al servicio, y otro para cuando finalice la consulta procesar el fichero XML y almacenarlo en la lista que hemos creado anteriormente.
  8. Ahora en el constructor del ViewModel lo que haremos es llamar al método de CargarTiempo() para que nos cargue la lista.
  9. Por último, creamos un converter que utilizaremos en la vista para que, dependiendo el SkyCode que nos venga mostraremos una imagen u otra:

 

Con todo esto, solo nos falta darle al play y arrancar el emulador para probar nuestra aplicación y éste es el resultado que podéis visualizar en vuestro windows phone.