Durante las sesiones de prácticas implementaremos un cliente sencillo de un servicio web de fotografías en distintos lenguajes de programación. Con esto pretendemos alcanzar los siguientes objetivos:
Disponemos de un servicio web que muestra una imagen diferente cada día. Se puede acceder a él desde http://monitor06.lab.it.uc3m.es:8180/apmov/foto
Esta página está mantenida por nosotros, pero se pueden encontrar en Internet sitios que ofrecen este mismo tipo de servicio. Por ejemplo, a photo a day, Astronomy Picture of the Day o National Geographic Photo of the Day.
El servicio web provee una API sencilla:
http://monitor06.lab.it.uc3m.es:8180/apmov/foto
-
Accediendo a esta dirección mediante una petición HTTP GET se obtiene una imagen correspondiente al día de hoy.http://monitor06.lab.it.uc3m.es:8180/apmov/foto?d=XX&m=YY&a=ZZZZ
-
Accediendo a esta URL mediante una petición HTTP GET se obtiene la imagen correspondiente al día señalado
en la petición: día XX (uno o dos dígitos) del mes YY (uno o dos dígitos) del año ZZZZ (cuatro dígitos).Observe que las peticiones son siempre de tipo GET. Se ofrece una introducción a HTTP y, dentro de esta, detalles sobre las peticiones de tipo GET, en la clase del día 2 de marzo. Hasta esa fecha, se puede consultar esta breve ayuda.
La respuesta devuelve únicamente la imagen solicitada en formato JPG (sin incrustrar en una página HTML). Las imágenes proceden de un pool de fotografías, cada una de ellas nombrada con un número diferente. El número resultante de sumar todas las cifras de la fecha proporcionada es el nombre de la fotografía que se devuelve para esa fecha. Por lo tanto, para una misma fecha siempre se obtendrá la misma fotografía, pero al mismo tiempo, para fechas diferentes también puede repetirse una misma fotografía (por ejemplo, al 11 de abril y al 10 de mayo les corresponderá la imagen 10.jpg, pues 1+1+0+4+2+0+1+1 = 1+0+0+5+2+0+1+1 = 10).
Nuestra aplicación, que se va a llamar AMFoto, será un cliente "de escritorio" del servicio web antes descrito. En vez de acceder desde el navegador, el usuario podrá, a través de ella, ver la foto del día y disponer de algunas funcionalidades adicionales. Esta debe ser capaz de:
Se utilizarán tres lenguajes para la realización de esta práctica: JavaSE, que servirá para familiarizarnos con los distintos módulos de la aplicación en un lenguaje conocido, Android y PyS60.
Para afrontar el módulo en PyS60 son necesarios conocimientos básicos del lenguaje Python. En la sección de referencias, en la Biblioteca y buscando en Internet se pueden encontrar manuales útiles de este lenguaje.
Las prácticas se realizarán obligatoriamente en parejas.
Cada grupo de práticas debe enviar un correo a emglozan@it.uc3m.es indicando nombre, apellidos y NIA de los componentes hasta como máximo el domingo 20 de Febrero. Ese día se publicará una lista en la página de la asignatura donde se indicarán los grupos y el número asignado a cada uno.
Aquellos alumnos que no hayan formado grupos por su cuenta, serán emparejados aleatoriamente.
La parte de prácticas significa un 60% de la nota global de la asignatura.
Se valorará cada módulo por separado con el siguiente peso:
Para poder calcular la nota global de prácticas no es necesario haber entregado y aprobado todas ellas. Las no presentadas se incluirán en el cómputo con nota igual a cero.
Se podrán tener en cuenta mejoras añadidas por la pareja de prácticas, siempre que se hayan cubierto satisfactoriamente los requisitos, hasta el 10% del peso de cada parte (sin superar la nota máxima). Por ejemplo, se valorará positivamente la usabilidad de la aplicación.
El entorno de desarrollo para las prácticas en Android y PyS60 se proveerá en la forma de una máquina virtual que correrá en los laboratorios 4.1.B.01-02 y 4.S.D03-04 sobre Windows.
También se distribuirá una copia en DVD entre los alumnos a través del delegado del grupo.
Se puede abrir con VMWare Player (instalador incluido en el DVD para los alumnos) u otro reproductor compatible. Sus características son las siguientes:
NOTA: Las versiones de la mayoría del software instalado no son las últimas sino las necesarias para que el entorno funcione correctamente. Es muy importante no actualizarlo.