Servicios REST como fuentes de datos para aplicaciones móviles
MobileTogether permite a los desarrolladores integrar información proveniente de fuentes externas en aplicaciones móviles, a través de.. Servicios web REST y SOAP, y procesa los datos recibidos, ya sean en formato XML, JSON o HTML. La compatibilidad de MobileTogether con REST y SOAP proporciona a los desarrolladores de aplicaciones móviles acceso a una amplia gama de recursos de datos en línea para una gran variedad de aplicaciones.

La opción "Añadir fuente" en el diseñador MobileTogether proporciona acceso a diálogos especializados para proporcionar los detalles de las solicitudes REST, SOAP y HTTP. En esta entrada del blog, describimos cómo implementar una solicitud REST para obtener datos de altitud a partir de coordenadas proporcionadas como latitud y longitud.
El desafío:
Los datos de GPS pueden ser tanto útiles como frustrantes. Si una aplicación móvil utiliza el GPS de forma continua, el usuario puede recibir una gran cantidad de datos cada pocos segundos, lo que provoca un rápido agotamiento de la batería del dispositivo. Además, los sistemas GPS son extremadamente precisos para registrar las coordenadas x/y, pero son imprecisos al indicar la altitud. Si queremos registrar los cambios de altitud desde la base hasta la cima de una colina, por ejemplo, necesitamos una solución mejor.
Utilizando el programa MobileTogether Designer, podemos crear una aplicación móvil multiplataforma que permita a los usuarios finales recopilar datos para ubicaciones específicas bajo demanda. Podemos extraer las coordenadas de cada punto y obtener datos de elevación precisos utilizando el servicio web de consulta de puntos de la USGS, que se describe en el sitio web de la USGS.
Primero, podemos probar el servicio web en un navegador a través de la siguiente dirección: http://ned.usgs.gov/epqs

Simplemente proporcionamos un conjunto de coordenadas, seleccionamos las unidades y los tipos de datos de salida, y hacemos clic en "Obtener altitud". El servicio de consulta de puntos de altitud devuelve el resultado que se muestra a continuación:

Dos características interesantes de este resultado son la URL generada en la ventana de resultados, que podemos utilizar como plantilla para especificar la fuente de datos del servicio REST en MobileTogether, y el cuerpo del resultado, que muestra la estructura XML. Aquí está la URL completa:

Para agregar el servicio REST como fuente de datos para una aplicación móvil, podemos pegar la URL en el diálogo de solicitud de la API REST de MobileTogether y reemplazar los parámetros por las coordenadas x e y. También utilizaremos un parámetro para especificar las unidades, permitiendo al usuario elegir entre pies o metros.

En nuestra aplicación, las coordenadas son leídas por un grupo de acciones, y las variables definidas como datos persistentes se actualizan con los valores de longitud y latitud.

Estos valores se proporcionan como parámetros para la solicitud GET, según lo definido por las expresiones XPath que se encuentran en la columna "Valor" de la tabla "Parámetros". El sistema de ayuda integrado de MobileTogether Designer incluye una documentación exhaustiva de las opciones y configuraciones de los servicios REST, que incluye soporte para los campos de encabezado HTTP y el contenido multiparte HTTP, que son requeridos por algunos servicios.
Cuando cerramos el diálogo, una nueva fuente de datos, correspondiente a la solicitud REST, se añade automáticamente a la ventana de fuentes de la página. Al hacer clic derecho en la nueva fuente de datos, se abre un menú contextual donde una de las opciones es "Importar estructura desde XML". Esto abre un cuadro de diálogo donde puede especificar un archivo físico o puede pegar la URL de ejemplo original, con los valores de los parámetros incrustados, para obtener la estructura directamente del servicio REST. De cualquier manera, la estructura de las fuentes de la página se actualiza con nodos que corresponden al resultado de la consulta:

Si prefiere trabajar con datos JSON en lugar de XML, simplemente seleccione "JSON" en el diálogo de solicitud de la API REST y modifique la URL para seleccionar los datos JSON del servicio web. El menú contextual ofrecerá la opción "Importar estructura desde JSON", y todo lo demás en el diseñador MobileTogether funciona de la misma manera.
La imagen que se muestra a continuación ilustra la pantalla principal de la aplicación una vez completada. En la pantalla de la izquierda, la aplicación se ha iniciado y está esperando a que el usuario active el seguimiento por GPS haciendo clic en uno de los botones de opción. En la derecha, el GPS está activado y se muestra el botón "Actualizar ubicación". El usuario hace clic en este botón para capturar un par de coordenadas, y la aplicación realiza la solicitud REST para obtener la altitud correspondiente.

La aplicación, a continuación, desactiva el seguimiento por GPS para reducir el consumo de energía y actualiza la pantalla con la nueva ubicación

Los botones etiquetados como "Mostrar dirección" y "Mostrar mapa" amplían la visualización con más información sobre las últimas coordenadas. Una página de "Configuración" permite al usuario seleccionar preferencias y guardar conjuntos de coordenadas en archivos GPX, y la aplicación también incluye una página de "Detalles" que muestra los datos GPS sin procesar del último punto registrado.
Si desea probar la aplicación por sí mismo, descargue MobileTogether Designer (su uso es gratuito) y obtenga una copia de la aplicación de geolocalización y los archivos asociados en GitHub en https://github.com/altova/MobileTogether-geolocation-example. Puede ejecutarla en el simulador integrado en MobileTogether Designer y previsualizar la aplicación tal como se vería en Android, iOS, Windows Phone y otros sistemas. Incluso hemos incluido un archivo de datos con coordenadas para simular un dispositivo móvil en movimiento mientras la aplicación se ejecuta en el diseñador.