Integracja interfejsów API i aplikacji mobilnych

Użytkownicy urządzeń mobilnych, którzy są często w ruchu, preferują aplikacje, które są wygodne i wydajne. MobileTogether oferuje programistom narzędzia umożliwiające płynną integrację interfejsów API i aplikacji mobilnych, co pozwala łączyć funkcjonalność urządzeń mobilnych z aktualnymi informacjami z zewnętrznych źródeł. Dzięki temu programiści mogą tworzyć niestandardowe, natywne aplikacje działające na różnych platformach, które zapewniają użytkownikom bogate i angażujące doświadczenie.

Publiczne interfejsy API stanowią doskonałe źródło zewnętrznych danych, które mogą wzbogacić praktycznie każdą aplikację mobilną. Programiści mogą łączyć informacje z różnych interfejsów API, aby dostarczać użytkownikom lepsze informacje, szybciej i w elegancki, zintegrowany sposób.

Interfejsy API są dostępne dla niemal każdego rodzaju informacji, których może potrzebować aplikacja mobilna, od śledzenia lotów, przez ceny surowców i akcji, po monitorowanie tropikalnych sztormów.

W tym artykule przyjrzymy się aplikacji GPS, która zaczyna od podstawowej funkcjonalności geolokalizacji urządzeń mobilnych, odpowiadając na pytanie: "Gdzie się znajduję?". Następnie aplikacja łączy się z interfejsami API firm Google i MapQuest, aby dodać bogaty zestaw dodatkowych informacji. Zintegrujemy również wyszukiwarkę, która uwzględnia lokalizację, aby znaleźć pobliskie punkty zainteresowania w promieniu nawet ćwierci mili, a także umożliwi precyzyjne określenie lokalizacji użytkownika na zdjęciu satelitarnym, prezentując szeroki widok całego kontynentu lub nawet większego obszaru.

Po uruchomieniu naszej aplikacji, użytkownikowi wyświetlane są najpierw przyciski służące do sterowania GPS, jak widać na tym obrazku z okna symulatora MobileTogether:

Po wprowadzeniu pierwszej pary współrzędnych, zestaw kolorowych ikon na pasku narzędzi umożliwia dostęp do nowych opcji:

Od lewej do prawej, przyciski pełnią następujące funkcje:

  • Przycisk dialogowy w kolorze zielonym uruchamia aplikację do wysyłania wiadomości tekstowych na urządzeniu mobilnym, wyświetlając domyślny komunikat: „Jestem tutaj:”, wraz z współrzędnymi geograficznymi (szerokość i długość) oraz adresem ulicy. To działanie łączy akcję SMS w MobileTogether z danymi z źródła geolokalizacji, jak widać poniżej w definicji drzewa akcji. Ta sama akcja działa na urządzeniach z systemem Android, iPhone lub Windows Phone, a programista nie musi się martwić o specyficzny sposób działania każdego systemu operacyjnego urządzeń mobilnych. MobileTogether automatycznie zajmuje się szczegółami dla każdego urządzenia.
  • Ikona złożonej mapy otwiera domyślną aplikację map na urządzeniu mobilnym, wyświetlając mapę wycentrowaną na podanych współrzędnych. Jest to również akcja MobileTogether, a szczegóły dotyczące interakcji z różnymi typami urządzeń mobilnych są obsługiwane automatycznie:
  • Ikona narzędzia z trzema kropkami to przycisk "Więcej informacji". Wykonuje on szereg działań. Najpierw przesyła współrzędne geograficzne (szerokość i długość) do API MapQuest Reverse Geocode, aby uzyskać adres ulicy, który często jest bardziej szczegółowy niż surowy adres geograficzny. Następnie, za pomocą akcji MobileTogether, otwiera przeglądarkę internetową urządzenia mobilnego, wyświetlając zapytanie w wyszukiwarce oparte na podanym adresie:
  • Ikona narzędzia satelitarnego współpracuje z API map Google, aby generować plik obrazu satelitarnego danego miejsca, wykorzystując poziom powiększenia określony przez użytkownika. Obraz można zapisać w galerii zdjęć na urządzeniu mobilnym lub wysłać za pomocą wiadomości SMS lub e-mail. Poniżej znajduje się przykład dla współrzędnych podanych powyżej:
  • Narzędzie powiększające otwiera nową stronę, korzystając z interfejsów MapQuest Search i Place Search, aby zaoferować użytkownikowi dwie różne opcje wyszukiwania.

Nawiązywanie połączenia między interfejsami API a aplikacjami mobilnymi

Narzędzie do wyświetlania obrazów satelitarnych wykorzystuje wyrażenie XPath do generowania obrazu za pomocą API Google Maps i otwierania go poprzez adres URL. Parametry wymagane przez API są przekazywane jako część adresu URL, co pozwala na ustawienie różnych opcji. Wartości dla każdego parametru są generowane w czasie rzeczywistym. Poniżej znajduje się wyrażenie XPath, jak jest ono wyświetlane w edytorze wyrażeń XPath/XQuery:

Kolorowanie pomaga w lepszym zrozumieniu wyrażenia: zielony element w pierwszym wierszu to operator łańcuchowy, pomarańczowe elementy w pojedynczych cudzysłowach to stałe, a fioletowy kolor reprezentuje elementy z drzewa danych lub wyniki funkcji.

Oto przykład końcowego adresu URL, sformatowanego z użyciem znaków nowej linii, aby odpowiadał wyrażeniu XPath:

Rozmiar generowanego obrazu zostanie automatycznie dopasowany do szerokości i wysokości okna każdego urządzenia użytkownika, ponieważ te wartości są zdefiniowane jako globalne zmienne w MobileTogether.

Naciśnięcie przycisku satelitarnego uruchamia domyślny przeglądarkę internetową w urządzeniu mobilnym i otwiera podany adres URL.

MobileTogether obsługuje protokoły HTTP/FTP, interfejsy REST oraz protokół SOAP, umożliwiając integrację interfejsów API i aplikacji mobilnych

Interfejsy API MapQuest Search i Place Search wykorzystują zapytania GET w architekturze REST do pobierania ustrukturyzowanych danych, które stają się źródłem strony w drzewie danych MobileTogether i są dostępne do dalszej obróbki.

Żądanie GET jest definiowane w oknie dialogowym, które jest tworzone podczas dodawania źródła strony do drzewa danych aplikacji, jak widać tutaj:

Prosty sposób na skonfigurowanie żądania to wklejenie przykładowego adresu URL z dokumentacji API w pole adresu URL powyżej, a następnie zastąpienie definicji parametrów w nawiasach i zdefiniowanie źródeł wartości dla tych parametrów w odpowiedniej sekcji.

Funkcja wyszukiwania po kategoriach w naszej aplikacji umożliwia użytkownikowi określenie promienia wyszukiwania oraz maksymalnej liczby wyników, korzystając z list rozwijanych. Dodatkowe listy rozwijane pozwalają użytkownikowi wybrać cel wyszukiwania z listy dostępnej w dokumentacji API. Po kliknięciu przycisku wyszukiwania, akcja MobileTogether wykonuje żądanie GET:

Dane XML, które są zwracane, są dodawane do struktury danych, co można zobaczyć tutaj, w sekcji "Źródła stron" okna symulatora MobileTogether:

Otwiera się nowa strona z wynikami wyszukiwania, która prezentuje informacje w formie tabeli, którą można przewijać. Należy zauważyć, że API automatycznie sortuje wyniki według odległości od bieżącej lokalizacji.

Dodatkowe przyciski narzędzi na stronie wyników wyszukiwania pozwalają na otwarcie mapy z trasą do celu, przeprowadzenie wyszukiwania w internecie pod kątem nazwy i lokalizacji celu, lub umożliwiają wykonanie połączenia telefonicznego do tego celu jednym kliknięciem.

Funkcja wyszukiwania po kategoriach daje dobre rezultaty, ale może być uciążliwa dla użytkownika, który musi wybierać spośród ponad 300 możliwych opcji. API wyszukiwania miejsc MapQuest akceptuje dowolny tekst jako kryterium wyszukiwania i dostarcza podobne wyniki. API wyszukiwania miejsc jest również dostępne jako żądanie GET w formacie REST i jest skonfigurowane w podobny sposób jak wyszukiwanie po kategoriach:

Istnieją pewne różnice w parametrach wymaganych oraz w danych zwracanych przez API wyszukiwania miejsc. Funkcja wyszukiwania po kategoriach oferuje wyniki w formacie XML lub JSON, natomiast API wyszukiwania miejsc zwraca wyłącznie dane w formacie JSON.

Łączenie różnych formatów danych nie stanowi problemu dla MobileTogether. Po prostu stworzyliśmy pole do wprowadzania danych w naszej aplikacji, aby zbierać dane od użytkowników, a następnie ponownie wykorzystaliśmy akcję "Odśwież", aby wykonać żądanie pobrania danych.

Wyniki w formacie JSON można zobaczyć tutaj, w drzewie danych "Źródła strony" w oknie symulatora:

Wyniki są prezentowane użytkownikowi w formie tabeli, którą można przewijać. Poniżej znajduje się fragment tej tabeli. Należy jednak pamiętać, że to API nie zwraca odległości od bieżącej lokalizacji ani numerów telefonów

Chociaż API zwracało dane w formacie JSON, możemy nadal wykorzystać te wyniki w akcji geolokalizacji MobileTogether, aby po kliknięciu przycisku na mapie otwierała się domyślna aplikacja mapowa na urządzeniu mobilnym i wyświetlała trasę do podanego adresu

Akcja "MobileTogether Open URL" jest przypisana do narzędzia "Globe" w celu otwarcia w oknie przeglądarki internetowej nazwę i adres lokalizacji wynikowej. Zagnieżdżone operatory zastępowania zapewniają generowanie adresu URL o prawidłowej składni.

Kilka słów o kluczach API

Każde z opisanych tutaj interfejsów API wymaga jednego parametru: unikalnego klucza API, który jest przypisywany przez dostawcę interfejsu. Klucz API służy do identyfikacji i uwierzytelniania użytkownika przy każdym żądaniu wysłanym do interfejsu. W przypadku aplikacji udostępnianej grupie określonych użytkowników przedsiębiorstwa, najbardziej odpowiednim rozwiązaniem jest użycie pojedynczego, współdzielonego klucza, przechowywanego jako element trwałego zapisu w strukturze danych MobileTogether. Żądania od wszystkich użytkowników będą agregowane, a jeden rachunek zostanie wystawiony, jeśli całkowite zużycie przekroczy darmowy limit dla danego interfejsu API.

Kiedy aplikacja jest przeznaczona do powszechnej dystrybucji, twórca może chcieć wymagać, aby każdy użytkownik posiadał unikalny klucz API i był odpowiedzialny za jego indywidualne wykorzystanie. Nasza aplikacja zawiera zakładkę "Ustawienia", do której można uzyskać dostęp, klikając ikonę koła zębatego na stronie głównej. Zakładka "Ustawienia" umożliwia użytkownikowi konfigurowanie różnych preferencji, w tym wybór wyszukiwarek oraz funkcję zapisu każdego klucza API w specjalnym drzewie danych, unikalnym dla każdego urządzenia mobilnego.

Dodaj niestandardowe funkcje

Dotychczas opisaliśmy dość powszechne funkcje geolokalizacyjne, które można znaleźć w wielu aplikacjach mobilnych. Można również wykorzystać opisane powyżej interfejsy API – lub inne publiczne API – aby dodać funkcjonalności do aplikacji, które rozwiązują konkretne problemy. Na przykład, nasza aplikacja zawiera stronę o nazwie "Gdzie byłem". Osoby, które potrzebują udokumentować podróż wzdłuż określonej trasy, mogą kliknąć ikonę koperty na tej stronie, aby przesłać zapis podróży e-mailem. W naszej aplikacji, długie kliknięcie ikony dowolnego narzędzia wyświetla okienko pomocy:

Można tworzyć własne aplikacje mobilne, integrując interfejsy API i aplikacje mobilne, oraz testować wszystkie inne funkcje platformy MobileTogether, które umożliwiają tworzenie eleganckich, wieloplatformowych aplikacji mobilnych pobieranie bezpłatnego programu MobileTogether Designer, które zawiera wbudowaną pomocą, samouczkami oraz licznymi przykładami. Można również zapoznać się z wieloma projektami MobileTogether Prezentacje wideo aby pomóc rozpocząć.