Gestão de erros de serviços web em aplicações móveis

Os telemóveis colocam um mundo de informação ao nosso alcance, mas a funcionalidade, mesmo das melhores aplicações móveis, pode ser afetada por erros nos serviços web que ocorrem durante a comunicação com servidores externos. A cobertura de telemóvel intermitente em locais remotos também pode prejudicar o desempenho das aplicações ao procurar dados.

MobileTogether, a.. Ferramenta de desenvolvimento de aplicações móveis de baixo código, compatível com várias plataformas da Altova, inclui funcionalidades que permitem aos desenvolvedores gerir de forma eficaz os erros de serviços web em aplicações móveis, evitando assim que os utilizadores finais sejam incomodados por interrupções inesperadas na aplicação ou por mensagens de erro pouco claras.

Num artigo anterior, explicámos como tratar erros HTTP numa aplicação de mapeamento de dados MapForce. Agora, vamos analisar o mesmo serviço web numa aplicação móvel e descrever como tratar erros no MobileTogether.

O exemplo "AirportStatus" no MapForce recebe um código de aeroporto de 3 letras como entrada e chama um serviço web fornecido pela FAA (Administração Federal de Aviação dos EUA) que retorna um ficheiro JSON com o estado do aeroporto e uma descrição de qualquer atraso atual. Uma aplicação móvel pode oferecer ao utilizador uma caixa de seleção para escolher um aeroporto, e depois chamar o mesmo serviço web para exibir o resultado, como se pode ver aqui num telemóvel Android:

Os botões na parte inferior da aplicação "Airport Status" permitem acesso rápido a duas páginas web da FAA (Administração Federal de Aviação) que fornecem informações adicionais, mas que não estão otimizadas para dispositivos móveis.

Desenvolvemos esta aplicação móvel utilizando o MobileTogether Designer, onde o serviço web é adicionado como uma fonte de dados da página, com base numa requisição de API REST. A caixa de diálogo "MobileTogether API Request" é muito semelhante à caixa de diálogo no MapForce, com definições para o parâmetro do código do aeroporto e um campo de cabeçalho para uma resposta JSON:

O fluxo de trabalho da aplicação é muito simples: o utilizador seleciona um aeroporto na lista suspensa, é executada uma requisição REST "Get" e o ecrã é atualizado. Estas operações são realizadas por um grupo de ações que inclui um mecanismo para tratamento de erros de serviços web em aplicações móveis:

Se ocorrer um erro HTTP durante a execução desta aplicação, simplesmente exibiremos uma caixa de mensagem. Os desenvolvedores podem escolher entre três opções para tratar os erros, com base nos requisitos de cada aplicação:

Interromper Script: Após a ocorrência de um erro, todas as ações subsequentes do grupo de ações são interrompidas. Esta é a ação padrão em caso de erro. Para continuar apesar do erro, selecione a opção "Continuar" ou "Lançar exceção".

Continuar: As ações não são interrompidas. Em vez disso, o programador pode definir dois caminhos e selecionar qual executar quando não ocorre nenhum erro (Em caso de sucesso), ou quando ocorre um erro (Em caso de erro).

Lançar exceção: Se for detetado um erro, esta opção lança uma exceção que é armazenada na variável da ação Try/Catch. A parte "Catch" da ação Try/Catch é utilizada para especificar qual ação deve ser executada caso ocorra um erro. Se não ocorrer nenhum erro, a ação seguinte é processada. A ajuda online do MobileTogether Designer inclui uma descrição detalhada da funcionalidade Try/Catch. Também descrevemos a funcionalidade Try/Catch num artigo de blog anterior.

Controlar a apresentação de informações no aplicativo

A interface do aplicativo é definida como uma série de tabelas, como se pode ver aqui nesta visão parcial da janela de design da página MobileTogether:

A caixa de seleção do aeroporto está localizada na parte superior da imagem, e inclui uma descrição das ações de controlo que serão executadas quando uma seleção for feita. Esta é a ativação para o grupo de ações.

As propriedades de visibilidade de cada elemento permitem personalizar a apresentação com base nos dados retornados pela requisição.

Testar o tratamento de erros de serviços web em aplicações móveis

No nosso artigo anterior sobre o tratamento de erros no MapForce, configurámos um mapeamento alternativo para testes de erros, onde podíamos retornar explicitamente vários erros e analisar os resultados. Descobrimos que podemos forçar o serviço web da FAA a retornar um erro enviando uma string vazia em vez de um código de aeroporto válido. A última opção na lista do menu suspenso envia a string vazia e força o erro, como se pode ver aqui na versão do iPhone do aplicativo em orientação horizontal:

O utilizador pode então clicar no botão "OK" para fechar a mensagem e, em seguida, verificar o estado de outro aeroporto

Se é novo no MobileTogether, consulte estas informações outras amostras e demonstrações em vídeo Para uma introdução, ou, pode começar imediatamente e começar a desenvolver o seu próprio sistema de tratamento de erros para aplicações web móveis, através do download de.. Software MobileTogether Designer, disponível para utilização gratuita.