8 DERIVACIÓN DE APLICACIONES MÓVILES
8.4 Derivación de aplicaciones
8.4.4 Ejemplos de aplicaciones derivadas
8.4.4.1 Aplicaciones J2ME
En la Figura 8.14 se puede observar un ejemplo de un Modelo de Instancias Navegacional que se corresponde73 con el Modelo Navegacional de la aplicación de la
ciudad de Roma presentado en la Sección 5.4.
Se puede observar que las instancias contienen tanto información propia como links. En particular, las instancias de los nodos físicos tienen definidas la propiedad de
location como geométrica.
73 Se modificó en el Modelo Navegacional el estereotipo especificado para la propiedad de ubicación, definiéndola como geométrica.
Figura 8.14: Un Modelo de Instancias Navegacional del ejemplo de la ciudad de Roma. Supongamos que se crea luego un Modelo del Usuario que contiene el Modelo de Instancias Navegacional presentado en la Figura 8.14. En este Modelo del Usuario, se especifica como nombre de la aplicación “Roma Application” y luego se elige la opción para generar una aplicación J2ME, seleccionando este Modelo del Usuario, el cual es usado para derivar la aplicación. Como resultado de la derivación, se obtienen dos archivos, uno llamado RomaApplication.jad y otro RomaApplication.jar, los cuales especifican la aplicación J2ME que contiene la información definida en el Modelo de Instancias Navegacional (Figura 8.14). Estos archivos creados se copian directamente en el celular (que debe permitir correr aplicaciones Java) y luego se instala la aplicación. El celular debe tener GPS para poder detectar que el usuario está cerca de un Punto de Interés y mostrarle la información del mismo.
Para mostrar en esta tesis que las aplicaciones J2ME generadas por la herramienta funcionan correctamente se eligió probarlas usando un emulador provisto por
Samsung74. Este emulador tiene la característica de permitir definir emular el
74 Página del emulador de Samsung (La versión utilizada para esta tesis es la que provee la
movimiento del usuario y, por lo tanto, simular el funcionamiento del GPS75 cuando el
usuario se mueve con su dispositivo.
A continuación se muestran distintas pantallas que reflejan la interacción del usuario con la aplicación funcionando76.
Supongamos que el usuario está caminando77 por la ciudad de Roma, cuando pasa
cerca78 de la Basílica de San Pedro recibe la pantalla de la Figura 8.15.a. Cuando el
usuario está en la vista de información tiene la opción View Map que le permite cambiar a la vista del mapa, imaginemos que elige cambiar a esta vista (del mapa), pasa a ver una imagen como se muestra en la Figura 8.15b. Una vez que está en la vista del mapa (Figura 8.15.b) el usuario tiene disponible la opción Menú, que le provee tres alternativas: volver a la vista de información (Figura 8.15.a), ver los links caminables predefinidos (Figura 8.15.c) o ver los links caminables derivados (Figura 8.15.d). Para este ejemplo se puede visualizar que hay dos links predefinidos relacionados a la Basílica de San Pedro, uno al Castillo San Ángelo y otro al Coliseo.
No se pudieron derivar links caminables porque no hay links digitales.
a. b. c. d.
Figura 8.15: El usuario pasa cerca de la Basílica de San Pedro.
El usuario decide volver a la vista de información de la Basílica (Figura 8.16a79) porque
desea ver más información de la misma. Como la Basílica tiene información arquitectural asociada, el usuario puede cambiar de concern y pasar a ver esta información como se muestra en la Figura 8.16.b (cambio al concern arquitectural). Luego el usuario decide cambiar a la vista del mapa (Figura 8.16.c) y al visualizar el
75 Se define un archivo .xml que contiene una lista de pares (latitud, longitud) que simulan el cambio de posición del usuario, cuando el emulador lee cada par, se actualiza con esta información la posición actual del usuario. La integración de la API de Ubicación (JSR-179) a la aplicación J2ME permite que cada vez que se cambia la posición del usuario se actualice la información de la aplicación según corresponda.
76 Para una mejor comprensión de la simulación se destacaron todos los Puntos de Interés de la aplicación con un globo gris claro, el Punto de Interés donde está el usuario se marca con un globo gris oscuro, los links caminables predefinidos se destacan en azul y los links caminables derivados se destacan en amarillo.
77 Para la simulación se creó un archivo .xml que contiene una lista de pares (latitud, longitud) que permiten emular el caminar del usuario por la ciudad de Roma.
78 La cercanía al Punto de Interés lo detecta la aplicación a través de la clase PointOfInterest, que es listener de una determinada coordenada. Cuando el usuario está cerca de esa coordenada, esta clase recibe un aviso y le pasa el control al MobileHypermediaListener para mostrar en este caso la información de la Basílica de San Pedro.
mapa el usuario puede observar que le apareció (en la Figura 8.16.d) un link caminable derivado a la Plaza de San Pedro (ya que hay un link digital a la Plaza de San Pedro y además este lugar tiene una contraparte física, por lo tanto se puede derivar un link caminable). Los links caminables predefinidos no cambian (ya que el usuario sigue ubicado en la Basílica).
a. b. c. d.
Figura 8.16: El usuario cambia de concern en la Basílica de San Pedro.
Si el usuario vuelve a ver la vista de información de la Basílica (Figura 8.17.a80) puede
ver dos links digitales (en el concern arquitectural). El usuario decide navegar digitalmente a la Plaza de San Pedro, en este caso recibe la información mostrada en la Figura 8.17.b. Si cambia a la vista del mapa (Figura 8.17.c) puede apreciar que no tiene ningún link caminable derivado. Esto se debe a que si bien hay un link digital (Figura 8.17.b) es a la Basílica, la aplicación detecta esta situación, y no agrega ningún link caminable derivado (Figura 8.17.d). Los links caminables predefinidos no cambian ya que el usuario sigue parado en el mismo lugar (Basílica).
a. b. c. d.
Figura 8.17: El usuario navega digitalmente a la Plaza de San Pedro.
El usuario vuelve a ver la información de la Plaza de San Pedro (Figura 8.18.a81) y
decide cambiar de concern para ver el concern histórico de este Punto de Interés (Figura 8.18.b). Luego al cambiar a la vista del mapa (Figura 8.18.c) puede visualizar
80 Es la misma que la Figura 7.16.b se repitió para que sea más fácil seguir el ejemplo. 81 Es la misma que la Figura 7.17.b se repitió para que sea más fácil seguir el ejemplo.
que se le agregó un link caminable derivado a la Plaza Novona (Figura 8.18.d). En cuanto a los links caminables predefinidos, no cambian ya que el usuario sigue ubicado en la Basílica.
a. b. c. d.
Figura 8.18: El usuario cambia de concern en la Plaza de San Pedro.
Luego el usuario elige realizar el camino hacia la Plaza Novona (Figura 8.19a82)
entonces el sistema le calcula un camino y se lo muestra como se visualiza en la pantalla de la Figura 8.19.b. Se puede observar que el target destino está destacado y además se marca en el mapa el camino sugerido.
A medida que el usuario avanza en su camino, se le actualiza su posición en el mapa como se puede apreciarse en la Figura 8.19.c. La información del GPS permite actualizar la posición del usuario en el mapa.
a. b. c.
Figura 8.19: El usuario elige caminar a la Plaza Novona.
El usuario sigue caminando hasta que en un momento determinado está cerca del destino, el sistema detecta esta situación y le muestra la información del destino. Finalizando de esta manera la navegación en el mundo real.
Veamos ahora otro ejemplo de derivación de una aplicación J2ME. En la Figura 8.20 se puede observar un Modelo de Instancias Navegacional que se corresponde con el
Modelo Navegacional83 presentado en la Sección 7.1 (relacionado con la aplicación
turística de la ciudad de La Plata).
Figura 8.20: Un Modelo de Instancias Navegacional del ejemplo de la ciudad de La Plata.
Supongamos que el diseñador crea un Modelo del Usuario que contiene el Modelo de Instancias Navegacional presentado en la Figura 8.20. Como nombre de la aplicación (en el Modelo del Usuario) se especificó “La Plata Application”. Luego el diseñador elige la opción para generar una aplicación J2ME, teniendo que seleccionar el Modelo del Usuario, el cual es usado para derivar la aplicación.
Los archivos creados como resultado de la derivación son LaPlataApplication.jad y
LaPlataApplication.jar84, este último contiene el archivo NaviagionModel.xml con la
información definida en el Modelo de Instancias Navegacional de la Figura 8.20.
Nuevamente usaremos el emulador provisto por Samsung para probar la aplicación generada. Supongamos que el usuario está caminando85 por la ciudad de La Plata, al
pasar cerca del Museo Dardo Rocha recibe la pantalla de la Figura 8.21.a. En ese momento el usuario puede pasar de la vista de información a la vista del mapa (Figura 8.21.b) usando la opción View Map provista en la pantalla.
Una vez que está visualizando el mapa (Figura 8.21.b) el usuario tiene disponible la opción Menú, que le provee tres alternativas: volver a la vista de información (Figura 8.21.a), ver los links predefinidos (Figura 8.21.c) o ver los links caminables derivados (Figura 8.21.d).
83 Se modificó en el Modelo Navegacional el estereotipo especificado para la propiedad de ubicación, definiéndola como geométrica.
84 En este ejemplo se cambio la configuración por default de la aplicación que muestra el mapa de calles, indicando que además muestre la imagen satelital, es decir indicando que sea hibrido el mapa. Esto se realiza cambiando el archivo GUIInformation.xml. También se cambio el zoom por default (14) que tiene la aplicación creada, por un zoom de 16 así se puede apreciar mejor la información del ejemplo.
85 Para la simulación se creó un archivo .xml que contiene una lista de pares (latitud, longitud) que permiten emular el caminar del usuario por la ciudad de La Plata.
En este ejemplo no hay links caminables predefinidos (para el Museo Dardo Rocha) y hay un link caminable derivado ala Catedral de La Plata (ya que hay un link digital a la
Catedral de La Plata y además este lugar tiene una contraparte física, por lo tanto se puede derivar un link caminable). Notar que, el link digital a Dardo Rocha va a mostrar información del fundador de La Plata, por lo tanto no tiene contraparte física.
a. b. c. d.
Figura 8.21: El usuario pasa cerca del Museo Dardo Rocha.
El usuario decide volver a la vista de información (Figura 8.22.a86) y navegar
digitalmente a la Catedral de La Plata (Figura 8.22.b). Luego pasa a visualizar la vista del mapa (Figura 8.22.c).
Se puede apreciar en la Figura 8.22.d que se listó un link caminable derivado al Museo de La Catedral (ya que hay un link digital al Museo de La Catedral y éste lugar tiene una contraparte física, por lo tanto se puede crear un link caminable derivado). Cabe recordar, que el MuseoDardo Rocha no tiene links caminables predefinidos.
a. b. c. d.
Figura 8.22: El usuario navega digitalmente a La Catedral de La Plata.
El usuario decide caminar hacia el Museo de La Catedral (Figura 8.23.a87), el sistema
le calcula el camino y le muestra una pantalla como se visualiza en la Figura 8.23.b. A medida que el usuario avanza en su camino, el sistema actualiza su posición como se puede apreciar en la Figura 8.23.c y nunca pierde de vista el camino pautado.
86 Es la misma que la Figura 7.21.a se repitió para que sea más fácil seguir el ejemplo. 87 Es la misma que la Figura 7.22.d se repitió para que sea más fácil seguir el ejemplo.
a. b. c.
Figura 8.23: El usuario elige caminar al Museo de la Catedral.
En estos dos ejemplos se puede apreciar cómo, a partir de dos modelos de instancias diferentes, la herramienta puede derivar dos aplicaciones J2ME. Estas aplicaciones tienen en común el mismo funcionamiento pero cada una muestra la información acorde a su Modelo de Instancias Navegacional. Es decir, tienen en común el funcionamiento de mostrar la información de un Punto de Interés cercano, cambiar de concerns, navegar digitalmente, visualizar en el mapa la posición del usuario y, en caso de estar en un Punto de Interés, visualizar sus links caminables predefinidos y links caminables derivados teniendo la posibilidad navegar en el mundo real (indicando el camino que debe realizar el usuario y cuál es el target destino).
Toda la funcionalidad común a ambos ejemplos viene dada por el archivo
MobileHypermediaApplciation.jar,el cual se usa en las derivaciones de este tipo.