---
title: "Tworzenie i debugowanie funkcji użytkownika w aplikacjach mobilnych"
date: "2021-03-17"
categories: 
  - "apps"
  - "mobile-development"
  - "tools"
tags: 
  - "app-design"
  - "app-development"
  - "debugging"
  - "mobile-development-tools"
description: Zapoznaj się z rolą funkcji użytkownika w tworzeniu aplikacji mobilnych, koncentrując się na lokalizacji i debugowaniu w ramach platformy Altova MobileTogether, aby zapewnić efektywne kodowanie.
---
Status: #blog

Tags:  #app-design #app-development #debugging #mobile-development-tools

Categories: [low-code+no-code](/blog/pl/category/low-codeno-code.md) | [mobile-development](/blog/pl/category/mobile-development.md) 
# Tworzenie i debugowanie funkcji użytkownika w aplikacjach mobilnych

Ostatnio natknąłem się na ten komentarz podczas przeglądu kodu, który dokonał starszy programista, analizując pracę kolegi: "Nieznacznie zmodyfikowałem funkcję użytkownika, aby działała poprawnie, gdy używane są języki inne niż angielski." To zaskakujący komentarz – kod to kod, i nie powinno mieć znaczenia, w jakim języku mówi programista lub użytkownik końcowy! Funkcja użytkownika to po prostu wyrażenie, które może przyjmować parametry wejściowe i zwracać wynik.

Altova MobileTogether obsługuje funkcje użytkownika w ramach [platformy do tworzenia aplikacji mobilnych, działającej na różnych systemach operacyjnych](https://www.altova.com/pl/mobiletogether), która łączy intuicyjny projekt interfejsu użytkownika (przeciągnij i upuść) ze standardowym programowaniem funkcyjnym do wyboru i przetwarzania danych. Wiele aplikacji demonstracyjnych MobileTogether w dużym stopniu opiera się na funkcjach użytkownika, a narzędzie MobileTogether Designer zawiera funkcje, które znacznie ułatwiają tworzenie i weryfikację tych funkcji.

Przyjrzyjmy się funkcjom dostępnym dla użytkowników w aplikacjach mobilnych, analizując jedną z tych demonstracyjnych aplikacji.

![](/blog/images/mt_darktheme_blog_3.jpg)

<!--more-->

W jednym z wcześniejszych wpisów wspomnieliśmy o aplikacji Parcel Delivery jako przykładu [zaawansowanych technik programowania](https://www.altova.com/blog/programming-techniques-for-mobile-development/) w rozwoju aplikacji mobilnych. Parcel Delivery to elegancka implementacja stworzona przez doświadczonego programistę, która w dużym stopniu opiera się na funkcjach wykorzystywanych przez użytkowników.

Przykład "Dostawa Paczek" to kompletna symulacja aplikacji do dostarczania paczek, działającej w realnych warunkach. Użytkownik wciela się w rolę kierowcy firmy kurierskiej, którego zadaniem jest dostarczanie paczek z magazynu w stanie New Jersey do różnych lokalizacji w Nowym Jorku, korzystając z nawigacji GPS. Można uruchomić aplikację w oknie symulatora w programie MobileTogether Designer, aby zobaczyć realistyczny ruch w kierunku każdego celu. Jeśli uruchomisz aplikację "Dostawa Paczek" na swoim telefonie z serwera demonstracyjnego MobileTogether, Twój telefon wykorzysta wbudowaną funkcję GPS.

Poniżej znajdują się dwa ekrany przypisywania kierowców, wyświetlane na telefonie iPhone w trybie ciemnym oraz na telefonie Android w trybie jasnym:

[![](/blog/images/mobile-screens-1.png)](mobile-screens-1.png)

Funkcje użytkownika, które są wykonywane w czasie działania programu, generują listę zadań dostawczych oraz oznaczenia na mapie. Definicje tych funkcji można zobaczyć w oknie "Konstruktor wyrażeń XPath" w programie MobileTogether Designer:

[![Definicje funkcji użytkownika w aplikacjach mobilnych](/blog/images/function-definitions.png)](function-definitions.png)

Opcja "Builder" (Konstruktor), wybrana powyżej, udostępnia narzędzia wspomagające wprowadzanie, wyświetla okienkowe opisy elementów XPath/XQuery zależnych od kontekstu oraz oferuje automatyczne uzupełnianie wyrażeń podczas ich tworzenia. Opcja "Evaluator" (Ewaluator) umożliwia podgląd wyników wyrażeń, dzięki czemu można je zweryfikować lub zmodyfikować w razie potrzeby.

Podczas działania aplikacji w symulatorze MobileTogether, moduł XPath Evaluator ma dostęp do wszystkich wartości danych źródłowych strony w czasie działania. Możemy otworzyć moduł XPath Evaluator w symulatorze, aby przetestować funkcje użytkownika w aplikacjach mobilnych:

[![Wykonanie funkcji użytkownika w symulatorze MobileTogether](/blog/images/simulator-1-1.png)](simulator-1-1.png)

Funkcja `RemainingDestinations()` zwraca listę zawierającą atrybuty dla każdego miejsca docelowego, która jest wykorzystywana do wypełnienia listy tekstowej znajdującej się w dolnej części strony "Do zrobienia".

Funkcja użytkownika DestinationMarkerList() wywołuje funkcję RemainingDestinations() i tworzy listę znaczników mapowych, które pozwalają zlokalizować każdy punkt docelowy na mapie

[![Wykonanie funkcji DestinationMarkerList](/blog/images/simulator-2a.png)](simulator-2a.png)

Tekst i tytuł dotyczące każdego miejsca pojawiają się, gdy użytkownik klika na ikonę na mapie

[![Znaczniki na mapie oraz tekst etykiet tworzone przez funkcję zdefiniowaną przez użytkownika](/blog/images/map1-1.png)](map1-1.png)

Funkcja `DestinationMarkerList()` jest właściwością kontrolki mapy:

[![Przypisanie funkcji użytkownika jako właściwości mapy](/blog/images/properties-1-2.png)](properties-1-2.png)

Główne menu projektu zawiera opcję generowania listy wszystkich użyć funkcji zdefiniowanych przez użytkownika w aplikacji

[![Wymienienie zastosowań funkcji tworzonych przez użytkowników w aplikacjach mobilnych](/blog/images/listing-1.png)](listing-1.png)

Aby uzyskać szczegółowy wgląd w proces oceny funkcji użytkownika, można włączyć tryb debugowania podczas symulacji i obserwować krok po kroku, jak funkcja jest oceniana:

[![Wykonanie funkcji użytkownika krok po kroku w debugerze MobileTogether](/blog/images/debug-1-1.png)](debug-1-1.png)

W trakcie korzystania z aplikacji, użytkownik symuluje każdą dostawę i rejestruje dane odbiorcy oraz stan opakowania dla każdego przesyłki. Strona podsumowania dostaw prezentuje wyniki:

[![Funkcja umożliwiająca dodawanie znaczników na mapie w raporcie dostawy](/blog/images/simuator-rpt.png)](simuator-rpt.png)

Na tej mapie oznaczenia są kolorystycznie rozróżnione, a tekst wyświetlany po kliknięciu na oznaczenie opisuje status każdej dostawy. W przypadku dostawy wyróżnionej powyżej, Joan Jones była osobą zastępującą odbiorcę, dlatego oznaczenie jest pomarańczowe, a nie zielone. Funkcja użytkownika ReportMarkerList() pobierała podsumowanie danych z drzewa danych i zmieniała kolor oznaczenia, ponieważ rzeczywisty odbiorca nie był adresatem.

Jedynym sposobem, w jaki wiemy, że dostarczenie nie przebiegło w pełni pomyślnie, jest analiza tekstu. I właśnie tam rozwiązuje się tajemnica komentarza do przeglądu kodu! Tekst jest w języku angielskim, więc osoba przeprowadzająca przegląd kodu zmodyfikowała funkcję użytkownika, aby działała w dowolnym języku.

MobileTogether oferuje funkcjonalność lokalizacji, która umożliwia łatwe przetwarzanie tekstów wiadomości w różnych językach w czasie działania programu.

Aplikacja do dostarczania przesyłek jest dostępna w wersjach językowych: angielskim, niemieckim, hiszpańskim, japońskim lub francuskim. Górna część okna dialogowego "Lokalizacja", widocznego poniżej, przedstawia tabelę tłumaczeń dla stałych elementów, takich jak tytuły stron, etykiety, przyciski itp.

[![Dialog lokalizacji przypisuje nazwy do ciągów tekstowych, które są określane w czasie działania programu](/blog/images/localization.png)](localization.png)

Dolna sekcja definiuje tabelę tłumaczeń dla ciągów tekstowych, która jest konfigurowana w czasie działania programu, w oparciu o warunki występujące podczas jego działania. MobileTogether zawiera wbudowaną funkcję `mt-load-string('nazwa')`, która odwołuje się do ciągów tekstowych za pomocą ich przypisanych nazw, niezależnie od języka używanego przez urządzenie.

Poniższy obrazek przedstawia definicję funkcji ReportMarkerList(), która ustawia kolory znaczników i tekst wyświetlany po najechaniu na znacznik na mapie raportu dostaw. Jeśli tekst opisujący akcję dla danej dostawy odpowiada ciągowi znaków o nazwie "delivered_C", wówczas znacznik będzie zielony. Tekst "delivered_C" w języku angielskim to "Osobiście odebrana dostawa". W języku hiszpańskim ten tekst brzmiałby: "Entrega aceptada en persona" (Dostawa odebrana osobiście)

[![Poprawna składnia funkcji tworzonych przez użytkowników w aplikacjach mobilnych, aby działały we wszystkich językach](/blog/images/simulator-rpt2.png)](simulator-rpt2.png)

Gdyby programista po prostu porównał zawartość pola "DeliverySummary" z angielskim tekstem "Personally accepted delivery", oznaczenia na mapie nie byłyby poprawnie kolorowane w żadnym innym języku.

Możemy przetestować działanie funkcji użytkownika ReportMarkerText() w różnych językach w symulatorze MobileTogether. W głównym menu projektu znajduje się opcja uruchomienia aplikacji w innych językach:

[![Wybór języka symulacji do weryfikacji wyników lokalizacji](/blog/images/language-menu-es.png)](language-menu-es.png)

Możemy uruchomić aplikację w języku hiszpańskim i przejść przez serię dostaw, aby wygenerować raport dostaw w języku hiszpańskim. Kolor każdego znacznika jest poprawnie ustawiony w oparciu o opis działania dla każdego wpisu w podsumowaniu dostaw.

[![Uruchomienie symulatora w celu wyświetlenia wyników działania funkcji użytkownika w języku hiszpańskim](/blog/images/spanish-color-map-1.png)](spanish-color-map-1.png)

Wykorzystaj wszystkie swoje umiejętności i narzędzia, w tym zaawansowane techniki programowania, takie jak funkcje użytkownika w aplikacjach mobilnych, aby tworzyć własne aplikacje w rekordowym czasie! Sprawdź nasze MobileTogether [Prezentacje wideo](https://www.altova.com/pl/mobiletogether/demos#video_Demos), więcej [Przykładowe aplikacje](https://www.altova.com/pl/mobiletogether/demos), lub nawet [instrukcja online](https://www.altova.com/manual/MobileTogether/mobiletogetherdesigner/) aby uzyskać szczegółowe informacje na ten temat. Kiedy będziecie gotowi, aby rozpocząć tworzenie własnych aplikacji mobilnych działających na różnych platformach, [Pobierz program MobileTogether Designer](https://www.altova.com/pl/mobiletogether/download).
