Setapp, mój niezbędnik z narzędziami programisty - ciąg dalszy
Setapp, usługa oferująca grubo ponad setkę aplikacji dla Maca w ramach miesięcznego abonamentu, stale poszerza swoją ofertę, nie podnosząc przy tym jednak ceny. Gdybym miał zapłacić za wszystkie aplikacje, z których korzystam w ramach abonamentu, musiałbym wydać tyle, ile za kilka lat abonamentu w tej usłudze. Programów tych jest tak dużo, że opisanie ich w jednym, a nawet w dwóch tekstach nie jest możliwe. Postanowiłem więc podzielić je na różne kategorie i opisać w cyklu artykułów poświęconych tej usłudze.
W poprzednim miesiącu skupiłem się na narzędziach programisty, które używam w mojej codziennej pracy. Nie były to jednak wszystkie programy tego typu. Listę tę musiałbym uzupełnić przynajmniej o trzy: IconJar, Paw i ProxyMan.
IconJar
Każdy, kto projektuje aplikacje mobilne, prędzej czy później musi sięgnąć po ikony symbolizujące różne funkcje w jego programie czy widoki. Pojawiają się one zarówno w górnym pasku nawigacyjnym, jak i tym dolnym (zwanym po angielsku „tab bar”) w programach dla iPhone'a czy iPada. Inne ikony trafiają np. do menu czy list wyświetlanych w różnych programach. Pewną gamę systemowych ikon oferuje oczywiście Apple. W ubiegłym roku wprowadzono także specjalną paletę znaków do wykorzystania jako ikony (SF Symbols). To jednak wciąż mało, dlatego w pewnym momencie trzeba rozejrzeć się za nowymi kolekcjami, zarówno darmowymi, jak i płatnymi. Trzymać je można wszystkie wygodnie w „słoiku na ikony”, czyli w aplikacji IconJar, zamiast jako osobne pliki w rozbudowanej strukturze katalogów.
Domyślnie w programie znajdziemy pełną kolekcję ikon Google Material Design. IconJar obsługuje zarówno ikony SVG, jak i zestawy fontów z ikonami. Oczywiście zbiory ikon można szybko i wygodne przeszukiwać po nazwie i kategorii oraz eksportować gotowe zestawy różnych rozmiarów danej ikony do szybkiego dodania jej do katalogu Assets w Xcode czy odpowiednika w Android Studio. Ikony można eksportować do wielu różnych formatów, od PNG przez TIFF, WebP, GIF, SVG po JPG.
Paw
Wiele, jak nie większość aplikacji dla urządzeń mobilnych pobiera różne dane z sieci z różnych serwisów. Ot choćby aplikacje do podcastów, czytnik RSS, czy wiele aplikacji dedykowanych różnym właśnie usługom sieciowym. Tworzenie ich wymaga częstej kontroli tego, jakie zapytania do tych usług wysyła nasz program oraz jakie na te zapytania dostaje odpowiedzi. Te ostatnie zwykle mają formę ustandaryzowaną w postaci list obiektów ułożonych w plikach JSON, czasem jednak serwisy te wysyłają informacje w mniej standardowy sposób. Zanim zaczniemy rwać sobie włosy z głów, że tworzona aplikacja nie działa czy nie wyświetla tego, co powinna, warto skorzystać z aplikacji, które pozwalają w szczegółach przeglądać wspomniane już zapytania do i odpowiedzi z serwera, czyli testować i debugować komunikację z API danej usługi. W Setapp oczywiście znalazło się takie narzędzie - to program Paw.
Paw w przeciwieństwie do rozwiązań wieloplatformowych został stworzony z myślą o deweloperach pracujących na Macach. Dzięki temu oferuje natywny i przejrzysty interfejs wraz z wygodnymi skrótami klawiszowymi. Wspomniany interfejs podzielony jest na trzy kolumny. Lewa to lista zapytań do API. Środkowa przedstawia szczegóły wybranego zapytania. Jest tam więc dokładny adres z podświetleniem adresu bazowego serwisu, typ zapytania (get lub post) oraz jego szczegóły w postaci opisu, nagłówków, parametrów, właściwego bloku zapytania, autoryzacji i innych opcji. Dolną część środkowego panelu zajmuje konsola, gdzie wyświetlane są komunikaty np. o połączeniu z danym serwerem.
Prawy panel przeznaczony jest na wyświetlenie odpowiedzi. U góry znalazł się jeszcze raz pasek z adresem zapytania oraz statusem odpowiedzi (oczywiście najlepiej, jeśli jest to status „200”). Większą część prawego panelu zajmuje podgląd tego, co dostajemy z API, a więc zwykle JSON-a. Można go wyświetlić jako czysty tekst, formatowany z podświetlaniem składni, lub w formie tabeli, która moim zdaniem najlepiej pokazuje strukturę obiektów i należących do nich własności.
Na tym nie koniec. Paw oferuje ogromną ilość wtyczek, pozwalających na rozszerzenie możliwości programu, m.in. generowanie kodu zapytań w Swifcie z wykorzystywaniem biblioteki Alamofire czy w Pythonie z wykorzystaniem biblioteki Requests.
Proxyman
Kolejnym narzędziem przydatnym podczas debugowania problemów z komunikacją z API danego serwisu jest Proxyman. Monitoruje on komunikację komputera z różnymi usługami online, wyświetlając i analizując zapytania HTTP i HTTPS wysyłane przez poszczególne aplikacje czy usługi systemowe. Aplikacja przydaje się zwłaszcza do monitorowania zapytań wysyłanych np. przez symulator iPhone'a czy iPada w Xcode lub prawdziwe urządzenia, na których testujemy nasze aplikacje.
Ponieważ wiele usług i programów komunikuje się z siecią, warto wyłowić z ich gąszczu to, co nas interesuje. Wybraną usługę systemową, aplikację czy np. wspomniany już symulator iPhone'a w Xcode można odnaleźć, przywołując wyszukiwarkę skrótem CMD+SHIFT+F, a następnie dodać ją do listy „Pined" (przypięte).
Nie jest to pogram, z którego korzystam na co dzień, ale zwykle wtedy, kiedy pojawiają się problemy. W takich jednak sytuacjach jest on nieocenionym narzędziem do rozwiązywania problemów z komunikacją.