Debugowanie aplikacji mobilnych

MobileTogether to narzędzie do tworzenia zaawansowanych, eleganckich rozwiązań działających na różnych platformach. Programiści potrzebują narzędzi do debugowania aplikacji mobilnych, aby rozwiązywać problemy podczas tworzenia i zrozumieć sposób działania aplikacji. Narzędzie MobileTogether Designer oferuje kompleksowe debugowanie procesu działania aplikacji wewnątrz struktur drzew decyzyjnych i Debugowanie funkcji XPath/XQuery. Te funkcje są dostępne w dwóch widokach debugowania aplikacji mobilnych, zintegrowanych w jednym narzędziu.

Widok debugera akcji umożliwia programistom debugowanie akcji związanych z zdarzeniami kontrolki lub zdarzeniami strony. Ten widok jest dostępny, gdy podczas przetwarzania napotkamy akcję, która została wybrana do debugowania. Widok debugera XPath otwiera okno evaluatora XPath/XQuery, umożliwiając szczegółowe śledzenie i debugowanie wyrażeń.

Programiści mogą ustawiać punkty przerwania w różnych miejscach kodu, a następnie wykonywać program krok po kroku, zatrzymując się w dowolnym momencie, aby móc zbadać całe środowisko wykonawcze.

Zobaczmy, jak wygląda debugowanie aplikacji mobilnych w praktyce:

W wcześniejszym wpisie na temat technik programowania dla rozwoju aplikacji mobilnych, wykorzystaliśmy aplikację monitorującą jakość powietrza, aby zilustrować podprogram w aplikacji mobilnej. Ten podprogram, zaimplementowany jako grupa akcji MobileTogether, obliczał lokalną godzinę odczytu jakości powietrza na podstawie danych zwróconych przez interfejs API, które zawierały czas w formacie GMT oraz wartość korekty. Możemy debugować ten podprogram, aby upewnić się, że nasze obliczenia są poprawne.

Najpierw ustawimy punkt przerwania na początku grupy akcji związanej z lokalnym czasem w Calc, aby wstrzymać wykonanie w momencie wywołania podprogramu:

Można dodać dowolną liczbę punktów przerwania, a nie trzeba się martwić o ich późniejsze odnajdywanie. Są one zarządzane z głównego menu debugowania:

Użyliśmy również menu, aby ustawić opcję "Zatrzymaj przy następnym punkcie przerwania". Teraz możemy uruchomić naszą aplikację w symulatorze, a ona będzie działać normalnie, aż do momentu wywołania grupy akcji "Calc local time".

Poniższy obrazek przedstawia ekran symulatora w momencie, gdy aplikacja zatrzymała się w punkcie przerwania. Użytkownik wybrał raport dla miasta Londyn, aplikacja wykonała wywołanie do API, a teraz próbuje obliczyć lokalną godzinę na podstawie otrzymanych danych:

Po lewej stronie ekranu znajdują się dwa panele debugera. Na górze widzimy listę operacji, które mają zostać wykonane, z czerwonym punktem przerwania i zieloną strzałką oznaczającą aktualny krok. W panelu poniżej wyświetlana jest lista wywołań funkcji prowadzących do aktualnej grupy operacji.

Przyciski "+" w oknie wyświetlającym stos wywołań pokazują wartości parametrów przekazanych podczas wywołania grupy akcji. Możemy kliknąć przycisk "Wejście do akcji" na górze, aby kontynuować wykonanie krok po kroku:

Poczekajcie chwilę, czy Londyn nie znajduje się w tej samej strefie czasowej co Greenwich w Wielkiej Brytanii i czy nie powinien być ustawiony zgodnie z czasem uniwersalnym (GMT), bez potrzeby korekty? Zapytałem wszystkie moje inteligentne asystenty i wszystkie wyszukiwarki – wszystkie potwierdziły, że zarówno Londyn, jak i Greenwich stosują letni czas brytyjski (British Summer Time), który jest o godzinę do przodu w stosunku do czasu uniwersalnego (GMT).

W każdym razie, to są dane, które otrzymaliśmy od API, więc możemy kontynuować. Przechodząc przez kolejne elementy, docieramy do pierwszej akcji "Aktualizacja węzła":

Węzeł localDateTime jest ustawiany na wartość parametru $time.

Kolejny krok:

Litera "T" jest wstawiana pomiędzy datę a godzinę, aby dopasować składnię wymaganą przez funkcję add-hours-to-dateTime().

Kolejny krok:

Dodano godziny wyrównawcze.

Kolejny krok:

Czy są jakieś korekty do wprowadzenia? Nie.

Kolejny krok:

Zastąp literę "T" spacją.

Kolejny krok:

Linia komentarza oznacza koniec grupy akcji. Teraz możemy użyć zielonego przycisku "Uruchom" na górze, aby kontynuować normalne działanie aplikacji. Otwiera się podstrona, która wyświetla wskaźnik jakości powietrza:

W związku z tym, narzędzie do debugowania aplikacji mobilnej, które wyświetlało sekwencję akcji, potwierdziło, że nasza logika była prawidłowa.

Jednak zapisywanie wyników pośrednich na każdym etapie jest dość uciążliwe i zbędne. Powinniśmy połączyć te kroki w jedno wyrażenie:

Trzy oryginalne akcje zostały wyłączone i zastąpione jedną akcją, która zawiera złożone wyrażenie. Możemy użyć widoku debugera XPath, aby przetestować to wyrażenie.

Mogliśmy płynnie przełączać się między różnymi widokami, ale przerwaliśmy pierwszą sesję debugowania, aby edytować wyrażenie. Teraz uruchomimy tę nową wersję w symulatorze. Tym razem, gdy program zatrzyma się w punkcie przerwania, użyjemy przycisku "Wejście do XPath", aby rozpocząć debugowanie aplikacji mobilnej w widoku debugera XPath/XQuery:

Otwiera się okno interpretera wyrażeń XPath/XQuery, a debugger rozpoczyna proces analizy wyrażenia:

Teraz użyjemy przycisku "Przejdź do" w oknie XPath, aby kontynuować analizę wyrażenia:

Pola znajdujące się w dolnej części obrazu wskazują zawartość parametrów przekazanych podczas wywołania grupy akcji. Źródłem zmiennej "$time" był element JSON o nazwie "s", który zawierał dane tekstowe zwrócone przez interfejs API.

Kolejny krok:

Wewnątrz wyrażenia, zmienna T musi nadal przestrzegać zasad składni funkcji add-hours-to dateTime().

Kolejny krok:

Teraz naprawdę weszliśmy w sedno i zakończyliśmy proces. W tym przypadku, początkowa wartość parametru $time wynosiła 2020-08-03 07:00:00, a wartość parametru $adj użytego do korekty wynosiła -07:00. W tym momencie nasz wynik to 2020-08-03T00:00:00.

Następnym krokiem będzie test, który sprawdzi, czy konieczna jest korekta dotycząca minut. Parametr "adj" kończy się na "00", więc ten test zakończy się niepowodzeniem. W takim przypadku zostanie zastąpiony inny element, a zostanie wyświetlona podstrona:

Jeśli zajmujecie się tworzeniem aplikacji na różne platformy, potrzebujecie narzędzia umożliwiającego debugowanie aplikacji mobilnych. Zapraszamy do zapoznania się z naszym produktem MobileTogether Prezentacje wideo, więcej Przykładowe aplikacje, lub nawet instrukcja online aby uzyskać szczegółowe informacje. Kiedy będziecie gotowi, aby szybko rozpocząć tworzenie własnych aplikacji mobilnych działających na różnych platformach, Pobierz program MobileTogether Designer aby zacząć.