Fehlerbehandlung bei Webdiensten in mobilen Anwendungen

Smartphones bringen eine Fülle von Informationen in unsere Reichweite, aber die Funktionalität selbst der am besten entwickelten mobilen Anwendungen kann durch Fehler in Webdiensten beeinträchtigt werden, die bei der Kommunikation mit externen Servern auftreten. Eine instabile Mobilfunkverbindung in abgelegenen Gebieten kann ebenfalls die Leistung von Apps beeinträchtigen, insbesondere beim Abrufen von Daten.

MobileTogether, das low-code-Tool von Altova für die plattformübergreifende Entwicklung mobiler Anwendungen, bietet Funktionen, mit denen Entwickler Web-Service-Fehler in mobilen Anwendungen elegant behandeln können, um Endbenutzer nicht mit unerwarteten Anwendungsunterbrechungen oder kryptischen Fehlermeldungen zu belästigen.

In einem früheren Beitrag haben wir die Fehlerbehandlung in HTTP bei der Datenmapping-Verarbeitung in MapForce erläutert. Nun werden wir denselben Webdienst in einer mobilen App betrachten und die Fehlerbehandlung in MobileTogether beschreiben.

Das Beispiel "AirportStatus" in MapForce verwendet einen dreibuchstabigen Flughafencode als Eingabe und ruft einen Webdienst auf, der von der FAA bereitgestellt wird. Dieser Dienst gibt eine JSON-Datei zurück, die den Status des Flughafens sowie eine Beschreibung eventueller aktueller Verspätungen enthält. Eine mobile App kann dem Benutzer ein Dropdown-Menü zur Auswahl eines Flughafens anbieten und dann denselben Webdienst aufrufen, um das Ergebnis anzuzeigen, wie hier auf einem Android-Smartphone zu sehen ist:

Die Schaltflächen am unteren Rand der App "Airport Status" ermöglichen einen schnellen Zugriff auf zwei Webseiten der FAA (Federal Aviation Administration), die zusätzliche Informationen bereitstellen, jedoch nicht für mobile Geräte optimiert sind.

Wir haben diese mobile App mit dem MobileTogether Designer entwickelt, wobei der Web-Dienst als Datenquelle für eine Seite hinzugefügt wurde, basierend auf einer RESTful-API-Anfrage. Der Dialog für die MobileTogether-API-Anfrage ähnelt sehr dem Dialog in MapForce, mit Definitionen für den Parameter für den Flughafencode und einem Header-Feld für eine JSON-Antwort:

Der Ablauf der App ist sehr einfach: Der Benutzer wählt einen Flughafen aus der Auswahlliste aus, eine REST-Abfrage wird ausgeführt und die Anzeige wird aktualisiert. Diese Vorgänge werden von einer Aktionsgruppe ausgeführt, die auch eine Möglichkeit zur Fehlerbehandlung von Webdiensten in mobilen Anwendungen beinhaltet:

Wenn während der Ausführung dieser App ein HTTP-Fehler auftritt, wird einfach eine Meldungsbox angezeigt. Entwickler können aus drei Optionen zur Fehlerbehandlung wählen, je nach den Anforderungen der jeweiligen App:

Abbruchskript: Nach Auftreten eines Fehlers werden alle nachfolgenden Aktionen der Aktionsgruppe beendet. Dies ist die Standardeinstellung, wenn ein Fehler auftritt. Um trotz eines Fehlers fortzufahren, wählen Sie entweder die Option "Fortfahren" oder "Ausnahme auslösen".

Fortsetzung: Aktionen werden nicht beendet. Stattdessen kann der Entwickler zwei Pfade definieren und auswählen, welcher ausgeführt werden soll, wenn es keinen Fehler gibt (bei Erfolg), oder wenn ein Fehler auftritt (bei Fehler).

Auslösen: Wenn ein Fehler erkannt wird, löst diese Option eine Ausnahme aus, die in der Variablen der Aktion "Versuchen/Erfassen" gespeichert wird. Der Teil "Erfassen" der Aktion "Versuchen/Erfassen" wird verwendet, um festzulegen, welche Aktion ausgeführt werden soll, wenn ein Fehler auftritt. Wenn kein Fehler auftritt, wird die nächste Aktion ausgeführt. Die Online-Hilfe des MobileTogether Designers enthält eine detaillierte Beschreibung von "Versuchen/Erfassen". Wir haben "Versuchen/Erfassen" auch in einem früheren Blogbeitrag beschrieben.

Steuerung der Informationsanzeige in der App

Die Benutzeroberfläche der App ist als eine Reihe von Tabellen definiert, wie hier in diesem Ausschnitt des Fensters "MobileTogether Page Design" zu sehen ist:

Das Dropdown-Menü zur Auswahl des Flughafens befindet sich oben im Bild. Darunter wird beschrieben, welche Aktionen ausgeführt werden sollen, wenn eine Auswahl getroffen wird. Dies ist der Auslöser für die Aktionsgruppe.

Die Sichtbarkeitseinstellungen für jedes Element ermöglichen eine individuelle Anpassung der Anzeige, basierend auf den Daten, die von der Anfrage zurückgegeben werden.

Testen der Fehlerbehandlung von Webdiensten in mobilen Anwendungen

In unserem vorherigen Beitrag zur Fehlerbehandlung in MapForce haben wir eine alternative Zuordnung für Testdaten eingerichtet, mit der wir verschiedene Fehler explizit auslösen und die Ergebnisse überprüfen konnten. Es stellt sich heraus, dass wir den FAA-Webdienst dazu bringen können, einen Fehler zurückzugeben, indem wir anstelle eines gültigen Flughafencodes eine leere Zeichenkette senden. Der letzte Eintrag in der Liste der Auswahlmöglichkeiten des Kombinationsfelds sendet die leere Zeichenkette und löst so den Fehler aus, wie hier in der iPhone-Version der App im Querformat zu sehen ist:

Der Benutzer kann dann auf die Schaltfläche "OK" klicken, um die Meldung zu schließen, und anschließend den Status eines anderen Flughafens überprüfen

Wenn Sie neu bei MobileTogether sind, schauen Sie sich diese weiteren Beispiele und Video-Demonstrationen an, um sich einen Überblick zu verschaffen. Alternativ können Sie direkt loslegen und mit der Entwicklung von Fehlerbehandlungsmechanismen für Webdienste in mobilen Anwendungen beginnen, indem Sie den kostenlosen MobileTogether Designer herunterladen.