domingo, 28 de junio de 2009

Pruebas y Presentación en el UC de Julio

Este jueves tendrá lugar la última presentación de mi proyecto en los UCs. Tras la ronda de presentaciones también realizaré pruebas de usuario, de nuevo en una PDA real, para ver si los cambios hechos desde el UC de mayo surten efecto.

El guión de las pruebas es muy similar al de mayo, añadiendo alguna prueba extra sobre las rutas.

En cuanto a la presentación, intentaré sobretodo hablar más pausadamente que en mayo, aunque hay tanto que contar y tan poco tiempo...

Por último toca incluir el video de rigor. La documentación del proyecto, en el manual del programador, incluye un pequeño tutorial en el que se crea una aplicación de ejemplo (que irá incluida junto con el código del proyecto) consistente en una posible interfaz para un juego geolocalizado. No es nada del otro mundo pero sirve para ilustrar que Hipatia puede usarse para algo más que para mostrar mapas con iconos encima ;). Aquí os pongo un video de esa aplicación mostrando un tablero interactivo alrededor del San Francisco.



sábado, 9 de mayo de 2009

Cambios sugeridos en el UC-Mayo

En el ultimo UC hice la primera presentación oficial de mi proyecto así como pruebas de usabilidad utilizando la PDA de Vodafone. Creo que ha sido una experiencia muy constructiva, me traigo unas cuantas ideas para mejorar tanto la presentación como la aplicación de geolocalización.

En cuanto a la presentación
  • Presentar más claramente qué tipo de aplicaciones pueden desarrollarse con hipatia.
  • Dedicar más tiempo al inicio a describir un video (que vaya más lento para poder ir comentando lo que pasa) en el que se muestre una aplicación utilizando hipatia (seguramente el geolocalizador) .
  • Al referirme a los cálculos que hipatia encapsula, cambiar la frase "cálculos que nosotros no tenemos que hacer" por "cálculos que el programador no tiene que hacer".
  • Mencionar que utilizo la técnica del doble buffer.
  • Incluir una o varias imágenes para explicar cómo la capa tipo IconLayer ordena los elementos, explicarlo de palabra es mucho más complicado.
  • La transparencia que muestra de golpe 8 clases distintas puede confundir al personal, demasiada información de una vez. Hay que partirla o excluir parte.
  • Añadir más colorido a las transparencias.
  • Hablar, aunque sólo sea un poco, de qué ventajas tiene utilizar hipatia vs. incluir un mapa de GoogleMaps.

En cuanto a la aplicación de geolocalización
  • Permitir mover el mapa mediante los botones físicos del dispositivo.
  • Los botones de zoom no dejan claro cuándo están deshabilitados, hay que diferenciar más las imágenes.
  • Al mostrar los resultados de una búsqueda, asegurarse de que el teclado en pantalla no se muestra, no es necesario y ocupa mucho espacio.
  • Cambiar el color de la ruta por uno más llamativo, que no se confunda con los del propio mapa de fondo.
  • El explorador de ficheros no debe permitir seleccionar un fichero cuando lo que buscamos es que el usuario escoja el directorio de imágenes.

lunes, 4 de mayo de 2009

Pruebas en dispositivo real

[Actualizado! (ver abajo)]

El próximo jueves haré la primera presentación oficial de mi proyecto y, gracias a la PDA de Vodafone que me han prestado, pruebas en un dispositivo real.

Tras unas horas de cacharreo con el invento he comprobado que la aplicación funciona mucho más rapido en la PDA real que en el emulador, una grata sorpresa. No lo he medido seriamente pero diría que el tiempo requerido para procesar los ficheros se ha reducido a menos de la mitad. Además la carga de imágenes es prácticamente instantánea (y gran parte del proyecto es carga de imágenes :).

Os cuelgo un pequeño video de demostración:


Lo he grabado con el SOTI Pocket Controller, un programa muy útil. La pena es que el video sólo lo graba a 15 frames por segundo y yo, emocionado por la rapidez de la carga de imágenes, me he dedicado a arrastrar el mapa como loco. El resultado es que por momentos el video no es tan fluido como los anteriores. El proximo me lo curraré un poco más, este era sólo para mostrar que el invento funciona.

Por otra parte, visto lo rápido que se cargan los ficheros, voy a alterar el plan de pruebas que tenía para dar un poco más de caña por esa parte, cambiando de ciudad (lo cuál puede implicar cambio tanto de directorio de imágenes como de fichero de datos).

En cuanto juegue un poco más con la PDA y compruebe que todo sale como se espera subiré la lista de tareas adaptada.

[ACTUALIZADO 23H]
Aquí está el nuevo guión de pruebas del UC de mayo.
Nos vemos el jueves!

domingo, 1 de marzo de 2009

Pruebas UC Marzo

Este próximo jueves las pruebas de mi proyecto se centrarán en la usabilidad de la principal aplicación de ejemplo de Hipatia, el programa de geolocalización. Podeis echarle un ojo al guión que voy a seguir. Se trata de una serie de tareas pensadas para poder realizarse en pocos minutos (para que me tiempo a secuestrar a unos cuantos de vosotros). Yo iré supervisando la prueba y proponiendo las tareas y preguntas a cada participante, confio en que no se haga pesado, gracias de antemano!

Como premio por leer la entrada os pongo un video. En la entrada anterior hablabamos de mostrar farmacias en un mapa. Este video muestra una aplicación de ejemplo en la que el usuario puede geolocalizar farmacias y editar sus propiedades. Lógicamente en un escenario real las farmacias, en lugar de ser creadas por el usuario, se cargarían desde una base de datos, servicio web o fichero. Para variar un poco nos vamos a Sudáfrica, concretamente a Johannesburgo (todos los ejemplos en Oviedo aburren :P).

miércoles, 28 de enero de 2009

Pruebas UC Febrero

En el próximo UC (5 de febrero) me gustaría hacer realizar pruebas con programadores (vosotros, lectores) de cara a conseguir feedback acerca del diseño y la funcionalidad de Hipatia.

Como seguro que la mayoría no sabeis de que va el asunto voy a ver si lo explico en pocas palabras.

Hipatia es un componente para mostrar información geospacial en aplicaciones del .NET Compact Framework.

Por partes, componente porque no es un programa por si solo, sirve para ser usado en aplicaciones que necesiten mostrar información geospacial. Es decir, igual que para mostrar imágenes puede usarse un PictureBox, para mostrar un mapa puede usarse Hipatia.

¿Qué tipo de información podemos mostrar?
La idea es que cada aplicación defina qué mostrar y cómo mostrarlo.

¿Entonces si lo tiene que definir la aplicación Hipatia qué hace?
Se encarga de la gestión de las capas, los cálculos y transformaciones necesarias, la gestión de eventos y, en cuanto a la definición de elementos a mostrar, proporciona una serie de elementos básicos, clases e interfaces que facilitan la tarea de crear aplicaciones que muestren información geospacial.

¿Un ejemplo?
Supongamos que queremos mostrar un mapa con las farmacias de una ciudad.
  • Creariamos un componente Map, le daríamos tamaño y posición como a cualquier otro componente gráfico.
  • Creariamos una capa de imágenes raster (para el mapa de fondo).
  • Creariamos una capa con objetos Farmacia. Este es el tipo de entidades que hay que definir, Hipatia no sabe qué es una farmacia, debemos implementar el interfaz MapElement y definir cómo pintar las farmacias (por ejemplo con un icono consistente en una cruz verde). Hipatia ya ofrece una clase IconElement que permite hacer esto. Podríamos sencillamente saltarnos el paso de crear Farmacias y crear simplemente IconElements con la crucecita verde. También podríamos heredar de IconElement o utilizarlo mediante composición. Estas decisiones quedan para el desarrollador de la aplicación, a Hipatia sólo le importa que lo que añadas al mapa implemente la interfaz MapElement.
  • Añadiríamos las dos capas al mapa.
¿Y dónde se van a pintar las crucecitas verdes?
Bien, para eso hay que geolocalizar las farmacias. Supondremos que hemos optado por la opción más fácil y hemos insertado IconElements en el mapa. Basta con asignar las coordenadas (latitud y longitud) al IconElement para que se muestre en su sitio. Saber dónde están las farmacias es parte de la lógica de la aplicación, evidentemente Hipatia no tiene manera de saber eso.

Confío en que esta pequeña presentación sirva para hacerse una idea de los objetivos del proyecto.

Puesto que el proyecto por si mismo no tiene interfaz de usuario alguna (depende de la aplicación en al que se use) las pruebas a realizar serán de dos tipos. Por una parte probar la interfaz de programación, es decir, cómo de útil resulta el componente para crear aplicaciónes y cómo mejorarlo. Las pruebas de la proxima semana serán estas. Por otro lado, de cara a la demostración del proyecto, se ha creado una aplicación de geolocalización (ver video del post anterior) para probar que el invento funciona. En proximos UC se realizaran pruebas de usuario tradicionales sobre esa aplicación.

Resumiendo, en el UC de febrero las pruebas consistirán en pequeñas entrevistas con usuarios en potencia (programadores) para obtener feedback acerca de la funcionalidad que ofrece el componente y su diseño interno. El proceso empezará con una descripción en detalle del componente y las posibilidades que ofrece para que el entrevistado se situe. A continuación se le harán una serie de preguntas para establecer qué esperaría el programador de un componente así, cómo le gustaría que fuese la interfaz de programación, qué clase de herramientas deberían ofrecerse para facilitar la definición de nuevas entidades geolocalizadas, etc. Dependiendo del tiempo y el personal disponible podríamos llegar a desarrollar una pequeña aplicación de juguete para que se vea realmente en qué se traduce tanta filosofía. En función de las respuestas y observaciones iremos estableciendo un diálogo contrastando lo que se espera con lo que hay, considerando alternativas, nuevas funcionalidades...

Seguro que será interesante, nos vemos el jueves!

miércoles, 26 de noviembre de 2008

Hipatia en acción

Inauguro el blog con un pequeño video que muestra un ejemplo de uso de Hipatia para crear un minigeolocalizador. De momento la funcionalidad es muy básica pero pueden verse en funcionamiento las características principales del componente.

El ejemplo incluye gestión de capas, respuesta a eventos (en este caso sencillamente mostrar un cartelito frente al POI sobre el que se ha pulsado), creación de POIs (muy tontos, solo guardan sus datos de geolocalización) y, utilizando el modelo de datos geospaciales cargados desde un fichero .gpx, búsqueda de calles y cálculo de rutas (cutrillo, con algoritmo devorador para que no tarde).



En próximas entradas hablaré de cómo funciona por dentro el invento (y de qué es el invento!) y en cuanto pueda subiré algun otro ejemplo en video (especialmente sobre la respuesta a eventos para permitir la interacción del usuario).