(Darmowe) powiadomienia na iOS na podstawie API HTTP na przykładzie sprawdzania ważności biletu MPK z mobilnego nośnika Karty Krakowskiej
Zacznijmy od zdefiniowania problemu - w Krakowie posiadacze Karty Krakowskiej mogą korzystać z biletu na dwóch nośnikach - klasycznej karty zbliżeniowej (takiej jak KKM, albo plastikowa KK), albo w aplikacji mobilnej. I można by oczekiwać że aplikacja raczy przypomnieć że bilet się kończy. Ale najwyraźniej nie w Krakowie.
Zatem trzeba coś samemu wytworzyć. Zacząłem od próby napisania aplikacji na iPhona, ale nieco poległem - trochę to jak strzelanie z armaty na komara - wszak pobranie informacji o ważności biletu to najwyżej 2 strzały HTTP, obliczenie różnicy czasu i wysłanie powiadomienia. Alternatywa wydawałoby się pozostała jedna - skrypt na serwerze który wysyła powiadomienia przez Telegrama, albo inny komunikator obsługujący boty i posiadający przyjemne API - coś w rodzaju skryptu, który napisałem do crawlowania portalu JustJoinIT.
Szukając zupełnie innej rzeczy na iPhona - sposobu na dodanie skrótu łączenia się z VPN (przez natywnego klienta IPsec, nie z aplikacji typu NordVPN) przypomniałem sobie że przecież iOS od wersji 13 posiada aplikację Shortcuts w której można automatyzować czynności między innymi na podstawie wyniku pobierania treści z internetu czy skryptów SSH.
Wystarczyło teraz wystawić tylko proste API, które zwróci liczbę dni do końca ważności biletu i stworzyć automatyzację wyświetlającą ładne natywne powiadomienie. Zalążek projektu krakow-tickets-api wrzuciłem na githuba i zahostowałem w pokątnym miejscu na serwerze zabezpieczając się przez nieprzewidywalną ścieżkę. Docelowo API powinno obsługiwać hasło dostępu do samego siebie i parametry w postaci loginu i hasła do strony posiadającej właściwe dane - takie informacje także można przekazać przez Shortcuts.
Czas na programowanie graficzne. Aplikacja jest odinstalowywalna więc pewnie większość użytkowników się jej pozbyła po aktualizacji. Dostępna jest oczywiście w AppStore.
Kroki przedstawione powyżej raczej nie wymagają komentarza. Testować można klikając przycisk w prawym dolnym rogu. Teraz jeszcze tylko harmonogram - wschód słońca wydał mi się dobrym wyborem i można cieszyć się powiadomieniami.
Aplikacja działa całkowicie na telefonie więc możemy wyświetlać tyle natywnych powiadomień ile chcemy. A i zapytania do API mogą lecieć o ciekawsze i potencjalnie bardziej skomplikowane rzeczy niż liczba dni ważności biletu 🙂 Happy hacking!