Gestion des erreurs des services web dans les applications mobiles

Les téléphones portables mettent un monde d'informations à portée de main, mais le fonctionnement, même des applications mobiles les mieux conçues, peut être affecté par des erreurs de services web qui se produisent lors de la communication avec des serveurs externes. Un service téléphonique mobile intermittent dans les zones isolées peut également dégrader les performances des applications lors de la recherche de données.

MobileTogether, la.. Outil de développement d'applications mobiles multiplateformes nécessitant peu de code de la société Altova, intègre des fonctionnalités qui permettent aux développeurs de gérer de manière efficace les erreurs des services web dans les applications mobiles, afin d'éviter de perturber les utilisateurs finaux avec des interruptions inattendues de l'application ou des messages d'erreur incompréhensibles.

Dans un article précédent, nous avons expliqué la gestion des erreurs HTTP dans une transformation de données MapForce. Maintenant, nous allons examiner le même service web dans une application mobile et décrire la gestion des erreurs dans MobileTogether.

L'exemple de données "AirportStatus" dans MapForce prend en entrée un code aéroport de trois lettres et appelle un service web fourni par la FAA (Federal Aviation Administration) qui renvoie un fichier JSON contenant l'état de l'aéroport et une description de tout retard éventuel. Une application mobile peut proposer à l'utilisateur une liste déroulante pour sélectionner un aéroport, puis appeler le même service web et afficher le résultat, comme on peut le voir ici sur un téléphone Android :

Les boutons situés en bas de l'application "État de l'aéroport" permettent d'accéder rapidement à deux pages web de la FAA qui fournissent des informations complémentaires, mais qui ne sont pas optimisées pour les appareils mobiles.

Nous avons développé cette application mobile en utilisant le logiciel MobileTogether Designer, où le service web est intégré en tant que source de données pour une page, en utilisant une requête d'API REST. La fenêtre de dialogue de requête API MobileTogether est très similaire à celle de MapForce, avec des définitions des paramètres pour le code de l'aéroport et un champ d'en-tête pour une réponse JSON :

Le fonctionnement de l'application est très simple : l'utilisateur sélectionne un aéroport dans la liste déroulante, une requête REST "Get" est exécutée, et l'affichage est mis à jour. Ces opérations sont effectuées par un groupe d'actions qui comprend une fonctionnalité de gestion des erreurs des services web dans les applications mobiles :

Si une erreur HTTP se produit lors de l'exécution de cette application, nous afficherons simplement une boîte de dialogue. Les développeurs peuvent choisir parmi trois options pour gérer les erreurs, en fonction des exigences spécifiques de chaque application :

Interruption du script : En cas d'erreur, toutes les actions suivantes du groupe d'actions sont interrompues. C'est le comportement par défaut en cas d'erreur. Pour continuer malgré une erreur, sélectionnez l'option "Continuer" ou "Lancer une exception".

Continuer : Les actions ne sont pas interrompues. Au lieu de cela, le développeur peut définir deux chemins et choisir lequel exécuter en cas de succès (lorsqu'il n'y a pas d'erreur), ou en cas d'erreur (lorsqu'il y a une erreur).

Lancer une exception : Si une erreur est détectée, cette option déclenche une exception qui est stockée dans la variable de l'action Try/Catch. La partie "Catch" de l'action Try/Catch est utilisée pour spécifier quelle action effectuer en cas d'erreur. Si aucune erreur ne se produit, l'action suivante est exécutée. L'aide en ligne du concepteur MobileTogether contient une description détaillée de Try/Catch. Nous avons également décrit Try/Catch dans un article de blog précédent.

Contrôle de l'affichage des informations dans l'application

L'affichage de l'application est défini comme une série de tableaux, comme on peut le constater ici dans cette vue partielle de la fenêtre de conception de la page MobileTogether :

La liste déroulante de sélection de l'aéroport se trouve en haut de l'image, et elle est accompagnée d'une description des actions de contrôle qui seront exécutées lorsqu'une sélection est effectuée. C'est ce qui déclenche le groupe d'actions.

Les propriétés de visibilité de chaque élément permettent de personnaliser l'affichage en fonction des données renvoyées par la requête.

Tests de la gestion des erreurs des services web dans les applications mobiles

Notre précédent article sur la gestion des erreurs dans MapForce présentait une configuration alternative pour tester les erreurs, permettant de renvoyer explicitement différents types d'erreurs et d'examiner les résultats. Il s'avère qu'il est possible de forcer le service web de la FAA à renvoyer une erreur en envoyant une chaîne de caractères vide au lieu d'un code d'aéroport valide. La dernière option dans la liste des choix de la liste déroulante envoie cette chaîne vide et déclenche l'erreur, comme on peut le constater ici dans la version iPhone de l'application en mode paysage :

L'utilisateur peut ensuite cliquer sur le bouton "OK" pour fermer le message, puis vérifier l'état d'un autre aéroport

Si vous découvrez MobileTogether, consultez ces autres exemples et démonstrations vidéo pour vous familiariser avec l'outil. Vous pouvez également commencer directement et développer votre propre système de gestion des erreurs pour les applications mobiles en téléchargeant le logiciel MobileTogether Designer, qui est gratuit.