Depuração de aplicações móveis
MobileTogether é uma ferramenta para a criação de soluções complexas e elegantes, compatíveis com diversas plataformas. Os desenvolvedores precisam de ferramentas de depuração de aplicações móveis para solucionar problemas durante o desenvolvimento e compreender o comportamento da aplicação. O MobileTogether Designer oferece ferramentas de depuração completas para analisar o fluxo de execução da aplicação dentro das árvores de ações e.. Depuração de funções XPath/XQuery. Estas funcionalidades estão disponíveis em duas visualizações de depuração para aplicações móveis, integradas numa única ferramenta.
A vista "Depurador de Ações" permite aos programadores depurar as ações de um evento de controlo ou de um evento de página. Esta vista está disponível quando uma ação selecionada para depuração é encontrada durante o processamento. A vista "Depurador XPath" abre a janela de avaliação XPath/XQuery para um rastreamento e depuração detalhados de expressões.
Os programadores podem definir pontos de interrupção em vários locais e, em seguida, executar o programa passo a passo, interrompendo a execução em qualquer ponto para permitir a análise completa do ambiente de execução.
Vamos ver como funciona a depuração de aplicações móveis na prática:

Num artigo anterior sobre técnicas de programação para desenvolvimento móvel, utilizamos uma aplicação de qualidade do ar para ilustrar uma subrotina numa aplicação móvel. A subrotina, implementada como um grupo de ações MobileTogether, calculava a hora local de uma medição da qualidade do ar a partir de dados recebidos por uma API, que eram fornecidos em formato GMT e com um valor de ajuste. Podemos depurar a subrotina para garantir que os nossos cálculos são válidos.
Primeiro, vamos definir um ponto de interrupção no início do grupo de ações de tempo local do Calc, para pausar a execução quando a subrotina for chamada:

Pode adicionar quantos pontos de interrupção forem necessários, e não precisa de se preocupar em encontrá-los mais tarde. Estes são geridos a partir do menu principal de Depuração:

Também utilizamos o menu para definir a opção "Parar no próximo ponto de interrupção". Agora, podemos executar a nossa aplicação no Simulador, e ela funcionará normalmente até que o grupo de ações "Calcular hora local" seja executado.
A imagem abaixo mostra a interface do simulador quando a aplicação foi interrompida no ponto de interrupção. O utilizador selecionou um relatório para a cidade de Londres, a aplicação chamou a API, e agora pretende calcular a hora local a partir dos dados recebidos:

No lado esquerdo do ecrã, estão abertas duas janelas do depurador. No topo, vemos as ações que estão prestes a ser executadas, com um ponto de interrupção vermelho e uma seta verde a indicar o passo atual. Na janela abaixo, vemos a pilha de chamadas das ações que levam ao grupo de ações.
Os botões de "mais" na visualização da pilha de chamadas mostram os valores dos parâmetros fornecidos quando o grupo de ações foi chamado. Podemos clicar no botão "Entrar na ação" no topo para continuar a execução passo a passo:

Espere um momento, não é Londres que está no mesmo fuso horário que Greenwich, no Reino Unido, e não deveria, portanto, precisar de qualquer ajuste em relação ao Tempo Universal Coordenado (UTC)? Consultei todos os meus assistentes virtuais e todos os meus motores de pesquisa, e eles me informaram que tanto Londres como Greenwich utilizam o Horário de Verão Britânico, que está uma hora adiantado em relação ao UTC.
Em qualquer caso, esses são os dados que a API nos forneceu, por isso podemos prosseguir. Ao analisarmos os comentários, chegamos à primeira ação de "Atualização de Nó":

O nó "localDateTime" é definido com o valor do parâmetro "$time".
Próximo passo:

A letra "T" é inserida entre a data e a hora para corresponder à sintaxe necessária para a função add-hours-to-dateTime().
Próximo passo:

As horas de ajuste são adicionadas.
Próximo passo:

Existem ajustes a fazer? Não.
Próximo passo:

Substitua a letra "T" por um espaço.
Próximo passo:

A linha de comentário indica o fim do grupo de ações. Agora, podemos usar o botão "Executar" (seta verde) no topo para continuar a execução normal da aplicação. Uma subpágina é aberta para apresentar o índice de qualidade do ar:

Assim, a ferramenta de depuração da aplicação móvel, que exibe as ações realizadas, confirmou que a nossa lógica estava correta.
No entanto, é bastante moroso e desnecessário guardar o resultado intermédio a cada passo. Deveríamos combinar os passos numa única expressão:

As três ações originais foram desativadas e substituídas por uma única ação que inclui uma expressão complexa. Podemos usar a vista de depuração XPath para testar esta expressão.
Poderíamos ter alternado facilmente entre as diferentes visualizações, mas interrompemos a primeira sessão de depuração para editar a expressão. Agora, vamos executar esta nova versão no simulador. Desta vez, quando a execução parar no ponto de interrupção, usaremos o botão "Entrar no XPath" para iniciar a depuração da aplicação móvel na visualização "Depurador XPath/XQuery":

A janela do avaliador XPath/XQuery é aberta e o depurador começa a avaliar a expressão:

Agora, vamos usar o botão "Entrar" (ou "Step into") na janela XPath, para continuar a analisar a expressão passo a passo:

As áreas inferiores da imagem identificam o conteúdo dos parâmetros fornecidos quando o grupo de ações foi invocado. A origem da variável "$time" foi um nó JSON que continha dados de texto e que foi retornado pela API.
Próximo passo:

Dentro da expressão, o valor de "T" ainda precisa obedecer à sintaxe da função "add-hours-to dateTime()".
Próximo passo:

Agora avançámos e concluímos o processo. Nesta execução, o parâmetro original de tempo era 2020-08-03 07:00:00 e o valor de ajuste era -07:00. Neste momento, o resultado obtido é 2020-08-03T00:00:00.
A próxima ação será um teste para verificar se é necessário um ajuste nos minutos. O parâmetro "adj" termina em "00", pelo que esse teste falha. Nesse caso, o valor "T" é substituído e a subpágina é exibida:

Se está a desenvolver aplicações para diferentes plataformas, precisa de uma ferramenta que permita depurar aplicações móveis. Veja o nosso MobileTogether demonstrações em vídeo, mais aplicativos de exemplo, ou até mesmo o/a manual online Para uma análise aprofundada de todas as informações. Quando estiver pronto para começar e desenvolver as suas próprias aplicações móveis multiplataforma no menor tempo possível, Descarregue o programa MobileTogether Designer para começar.