Depuración de aplicaciones móviles
MobileTogether es una herramienta para crear soluciones complejas y elegantes que funcionan en múltiples plataformas. Los desarrolladores necesitan herramientas de depuración de aplicaciones móviles para solucionar problemas durante el desarrollo y comprender el comportamiento de la aplicación. El diseñador de MobileTogether ofrece funciones completas de depuración del flujo de ejecución de la aplicación, tanto dentro de los árboles de acciones como.. Depuración de funciones XPath/XQuery. Estas funcionalidades se ofrecen a través de dos vistas de depuración para aplicaciones móviles, integradas en una única herramienta.
La vista "Depurador de Acciones" permite a los desarrolladores depurar las acciones de un evento de control o de un evento de página. Esta vista está disponible cuando se encuentra una acción que ha sido seleccionada para su depuración durante el proceso. La vista "Depurador de XPath" abre la ventana del evaluador de XPath/XQuery para realizar un seguimiento y depuración exhaustivos de las expresiones.
Los desarrolladores pueden establecer puntos de interrupción en diferentes ubicaciones y, a continuación, ejecutar la aplicación paso a paso, deteniéndose en cualquiera de las vistas para permitir la revisión completa del entorno de ejecución.
Veamos cómo funciona la depuración de aplicaciones móviles en la práctica:

En una publicación anterior sobre técnicas de programación para el desarrollo móvil, utilizamos una aplicación de calidad del aire para ilustrar una subrutina en una aplicación móvil. La subrutina, implementada como un grupo de acciones de MobileTogether, calculaba la hora local de una medición de la calidad del aire a partir de los datos devueltos por una API, que se proporcionaban en formato GMT y con un valor de ajuste. Podemos depurar la subrutina para asegurarnos de que nuestros cálculos son correctos.
Primero, estableceremos un punto de interrupción al principio del grupo de acciones de tiempo local de Calc para pausar la ejecución cuando se llame a la subrutina:

Puede añadir tantos puntos de interrupción como necesite, y no tiene que preocuparse por encontrarlos más tarde. Estos se gestionan desde el menú principal de "Depuración":

También utilizamos el menú para configurar la opción "Detener en el siguiente punto de interrupción". Ahora podemos ejecutar nuestra aplicación en el simulador, y se ejecutará normalmente hasta que se invoque el grupo de acciones "Calc local time".
La imagen que se muestra a continuación ilustra la pantalla del simulador cuando la aplicación se detuvo en el punto de interrupción. El usuario seleccionó un informe de la ciudad de Londres, la aplicación realizó una llamada a la API, y ahora desea calcular la hora local a partir de los datos recibidos:

En el lado izquierdo de la pantalla, se muestran dos paneles del depurador. En la parte superior, se visualizan las acciones que se van a ejecutar, con un punto de interrupción marcado en rojo y una flecha verde que indica el paso actual. En el panel inferior, se muestra la pila de llamadas de las acciones que conducen al grupo de acciones.
Los botones de "más" en la pantalla de la pila de llamadas muestran los valores de los parámetros que se proporcionaron cuando se llamó al grupo de acciones. Podemos hacer clic en el botón "Entrar en la acción" que se encuentra en la parte superior para continuar la ejecución paso a paso:

Espera un momento, ¿no está Londres en la misma zona horaria que Greenwich, en el Reino Unido, y no debería necesitar un ajuste a partir del horario de Greenwich (GMT)? Le pregunté a todos mis asistentes virtuales y a todos mis motores de búsqueda, y me dijeron que tanto Londres como Greenwich utilizan el horario de verano británico, que está una hora adelantado al horario de Greenwich (GMT).
En cualquier caso, esos son los datos que la API nos proporcionó, así que podemos continuar. Al revisar los comentarios, llegamos a la primera acción de "Actualizar Nodo":

El nodo "localDateTime" se establece con el valor del parámetro "$time".
Paso a paso:

La letra "T" se inserta entre la fecha y la hora para que coincida con la sintaxis que necesitamos para la función "add-hours-to-dateTime()".
Paso a paso:

Se añaden las horas de ajuste.
Paso a paso:

¿Hay algún ajuste que deba hacerse? No.
Paso a paso:

Reemplace la letra "T" con un espacio.
Paso a paso:

La línea de comentario marca el final del grupo de acciones. Ahora podemos usar el botón verde "Ejecutar" que se encuentra en la parte superior para continuar con la ejecución normal de la aplicación. Se abre una subpágina para mostrar el índice de calidad del aire:

Así, la herramienta de depuración de la aplicación móvil que muestra las acciones realizadas confirmó que nuestra lógica era correcta.
Pero es bastante tedioso e innecesario guardar el resultado intermedio en cada paso. Deberíamos combinar los pasos en una única expresión:

Las tres acciones originales están desactivadas y han sido reemplazadas por una única acción que incluye una expresión compleja. Podemos utilizar la vista de depuración de XPath para probar esta expresión.
Podríamos haber cambiado de una vista a otra sin problemas, pero interrumpimos la primera sesión de depuración para editar la expresión. Ahora, ejecutaremos esta nueva versión en el simulador. Esta vez, cuando se detenga en el punto de interrupción, utilizaremos el botón "Entrar en XPath" para iniciar la depuración de la aplicación móvil en la vista "Depurador XPath/XQuery":

Se abre la ventana del evaluador de XPath/XQuery y el depurador comienza a evaluar la expresión:

Ahora utilizaremos el botón "Entrar" (o "Paso a paso") en la ventana de XPath, para continuar analizando la expresión paso a paso:

Las secciones inferiores de la imagen identifican el contenido de los parámetros que se proporcionaron cuando se llamó al grupo de acciones. La variable "$time" provenía de un nodo JSON que contenía datos de tipo texto y que fue devuelto por la API.
Paso a paso:

Dentro de la expresión, la variable "T" aún debe cumplir con la sintaxis de la función "add-hours-to dateTime()".
Paso a paso:

Ahora hemos completado el proceso y hemos obtenido el resultado final. En esta ejecución, el parámetro original de tiempo era 2020-08-03 07:00:00 y el valor de ajuste era -07:00. En este momento, nuestro resultado es 2020-08-03T00:00:00.
La siguiente acción será una prueba para determinar si necesitamos un ajuste en los minutos. El parámetro "adj" termina en "00", por lo que esa prueba falla. En ese caso, se reemplaza la letra "T" y se muestra la subpágina

Si está desarrollando aplicaciones para múltiples plataformas, necesita una herramienta que permita depurar aplicaciones móviles. Eche un vistazo a nuestra herramienta MobileTogether demostraciones en video, más aplicaciones de ejemplo, o incluso el/la manual en línea para obtener información detallada. Cuando esté listo para empezar y desarrollar sus propias aplicaciones móviles multiplataforma en el menor tiempo posible, Descargue el programa MobileTogether Designer para empezar.