Fehlerbehebung in mobilen Anwendungen

MobileTogether ist ein Werkzeug zum Erstellen hochkomplexer, eleganter und plattformübergreifender Lösungen. Entwickler benötigen Tools zur Fehlerbehebung für mobile Anwendungen, um während der Entwicklung Probleme zu identifizieren und das Verhalten der App zu verstehen. Der MobileTogether Designer bietet umfassende Debugging-Funktionen für den Ablauf der App-Ausführung innerhalb von Aktionsbäumen und Fehlerbehebung bei XPath-/XQuery-FunktionenDiese Funktionen werden in zwei Debugging-Ansichten für mobile Anwendungen bereitgestellt, die in einem einzigen Tool integriert sind.

Die Ansicht "Aktionen-Debugger" ermöglicht es Entwicklern, die Aktionen eines Steuerelement-Ereignisses oder eines Seiten-Ereignisses zu debuggen. Diese Ansicht ist verfügbar, wenn während der Verarbeitung eine Aktion gefunden wird, für die ein Debugging ausgewählt wurde. Die Ansicht "XPath-Debugger" öffnet das Fenster für die Auswertung von XPath-/XQuery-Ausdrücken, um eine detaillierte Nachverfolgung und Fehlersuche durchzuführen.

Entwickler können Haltepunkte an verschiedenen Stellen setzen und die Anwendung dann schrittweise ausführen, wobei sie die Ausführung jederzeit anhalten können, um die gesamte Ausführungsumgebung zu untersuchen, sowohl im Code- als auch im visuellen Bereich.

Schauen wir uns die praktische Anwendung der Fehlersuche in mobilen Apps an:

In einem früheren Beitrag über Programmiertechniken für die mobile Entwicklung haben wir eine App zur Überwachung der Luftqualität verwendet, um eine Subroutine in einer mobilen App zu veranschaulichen. Die Subroutine, die als eine Aktionsgruppe in MobileTogether implementiert ist, berechnet die lokale Zeit eines Luftqualitätsmesswerts anhand von Daten, die von einer API zurückgegeben werden. Diese Daten werden als GMT-Zeit und ein Anpassungswert geliefert. Wir können die Subroutine debuggen, um sicherzustellen, dass unsere Berechnungen korrekt sind.

Zuerst setzen wir einen Haltepunkt am Anfang der lokalen Aktionsgruppe für die Zeitberechnung, um die Ausführung anzuhalten, wenn die Unterroutine aufgerufen wird:

Sie können beliebig viele Haltepunkte setzen, und Sie müssen sich keine Sorgen machen, diese später wiederzufinden. Sie werden über das Hauptmenü "Debuggen" verwaltet:

Wir haben auch das Menü verwendet, um die Option "Stoppen beim nächsten Haltepunkt" zu aktivieren. Jetzt können wir unsere App im Simulator ausführen, und sie wird normal laufen, bis die Aktionsgruppe "Calc lokale Zeit" aufgerufen wird.

Das Bild unten zeigt die Anzeige des Simulators, als die App an einem Haltepunkt angehalten wurde. Der Benutzer hatte einen Bericht für die Stadt London ausgewählt, die App hat die API aufgerufen, und jetzt möchte sie die lokale Zeit anhand der zurückgegebenen Daten berechnen:

Auf der linken Seite des Bildschirms sind zwei Bereiche für den Debugger geöffnet. Oben sehen wir die Aktionen, die ausgeführt werden sollen, wobei ein roter Haltepunkt und ein grüner Pfeil den aktuellen Schritt markieren. Im Bereich darunter sehen wir den Aufrufstapel der Aktionen, die zur aktuellen Aktionsgruppe führen.

Die Plus-Buttons im Aufrufstapel zeigen die Werte der Parameter an, die beim Aufruf der Aktionsgruppe übergeben wurden. Mit der Schaltfläche "Schrittweise Ausführung" oben können wir die Ausführung schrittweise fortsetzen:

Warte mal, liegt London nicht in der gleichen Zeitzone wie Greenwich im Vereinigten Königreich und muss daher doch keine Anpassung von GMT vornehmen? Ich habe alle meine intelligenten Assistenten und Suchmaschinen gefragt – sie haben mir gesagt, dass sowohl London als auch Greenwich die britische Sommerzeit verwenden, die eine Stunde vor GMT liegt.

In jedem Fall sind das die Daten, die uns die API geliefert hat, also können wir fortfahren. Wenn wir die Kommentare durchgehen, gelangen wir zur ersten Aktion "Update Node":

Der Knoten "localDateTime" wird auf den Wert des Parameters "$time" gesetzt.

Nächster Schritt:

Der Buchstabe "T" wird zwischen Datum und Uhrzeit eingefügt, um die Syntax zu erfüllen, die für die Funktion add-hours-to-dateTime() erforderlich ist.

Nächster Schritt:

Die Anpassungszeiten werden hinzugefügt.

Nächster Schritt:

Gibt es irgendwelche Anpassungen vorzunehmen? Nein.

Nächster Schritt:

Ersetzen Sie das Zeichen "T" durch ein Leerzeichen.

Nächster Schritt:

Die Kommentarzeile markiert das Ende der Aktionsgruppe. Nun können wir die grüne Schaltfläche "Ausführen" oben verwenden, um die normale Ausführung der App fortzusetzen. Eine Unterseite wird geöffnet, um den Luftqualitätsindex anzuzeigen:

Die Überprüfung der Logik mithilfe der Funktion zur Fehlerbehebung von Aktionen in der mobilen App bestätigte, dass unsere Annahmen korrekt waren.

Es ist jedoch ziemlich mühsam und unnötig, das Zwischenergebnis bei jedem Schritt zu speichern. Wir sollten die einzelnen Schritte zu einem einzigen Ausdruck zusammenfassen:

Die drei ursprünglichen Aktionen sind deaktiviert und durch eine einzige Aktion ersetzt, die einen komplexen Ausdruck enthält. Wir können diesen Ausdruck mit der XPath-Debugger-Ansicht testen.

Wir hätten nahtlos zwischen den verschiedenen Ansichten wechseln können, aber wir haben die erste Debugging-Sitzung unterbrochen, um den Ausdruck zu bearbeiten. Jetzt werden wir diese neue Version im Simulator ausführen. Dieses Mal, wenn sie am Haltepunkt stoppt, werden wir die Schaltfläche "In XPath eintauchen" verwenden, um das Debugging der mobilen App in der Ansicht "XPath/XQuery-Debugger" zu starten:

Das Fenster für die XPath/XQuery-Evaluierung öffnet sich, und der Debugger beginnt mit der Auswertung des Ausdrucks:

Jetzt verwenden wir die Schaltfläche "Schrittweise Ausführung" im XPath-Fenster, um die Auswertung des Ausdrucks Schritt für Schritt weiterzuverfolgen:

Die Abschnitte am unteren Rand des Bildes zeigen die Inhalte der Parameter, die beim Aufruf der Aktionsgruppe übergeben wurden. Die Quelle für die Variable "$time" war ein JSON-Objekt, das String-Daten enthielt und von der API zurückgegeben wurde.

Nächster Schritt:

Innerhalb des Ausdrucks muss die Variable "T" weiterhin die syntaktischen Regeln der Funktion "add-hours-to dateTime()" einhalten.

Nächster Schritt:

Jetzt haben wir den Prozess wirklich abgeschlossen und die Berechnung vollständig durchgeführt. Bei dieser Ausführung war der ursprüngliche Wert des Parameters $time der 03.08.2020, 07:00:00 Uhr, und der Wert $adj für die Anpassung betrug -07:00 Stunden. Zu diesem Zeitpunkt ist unser Ergebnis 2020-08-03T00:00:00.

Die nächste Aktion besteht darin, zu prüfen, ob eine Anpassung für die Minuten erforderlich ist. Der Parameter „adj“ endet mit „00“, wodurch dieser Test fehlschlägt. Daraufhin wird das „T“ ersetzt und die Unterseite angezeigt:

Wenn Sie plattformübergreifende Entwicklung betreiben, benötigen Sie ein Tool mit Funktionen zur Fehlerbehebung für mobile Anwendungen! Sehen Sie sich unser MobileTogether an Video-Demonstrationenmehr Beispielanwendungenoder sogar das Online-Handbuch für eine detaillierte Betrachtung aller Informationen. Wenn Sie bereit sind, loszulegen und Ihre eigenen, plattformübergreifenden mobilen Anwendungen in kürzester Zeit zu entwickeln, Laden Sie den MobileTogether Designer herunter um zu beginnen.