Narzędzia programisty iOS cz. 2

0

W poprzedniej części skupiłem się na Xcode oraz elementach wchodzących w jego skład. Tym razem opiszę narzędzia innych firm oraz te stworzone przez społeczność.

Tak samo jak poprzednio – zaznaczam, że nie są to wszystkie dostępne narzędzia i wcale nie muszą być najlepsze. Z mojego doświadczenia wynika, że są najpowszechniej używane, najbardziej lubiane lub po prostu najbardziej istotne.

Homebrew

To narzędzie musi znać każdy programista pracujący na macOS. Jest to najpopularniejszy makowy menedżer pakietów. Instalujemy nim większość konsolowych narzędzi – od nowszej wersji gita do Node.js. Instrukcja instalacji (po polsku!) jest dostępna na stronie brew.sh.

Warto przy okazji wspomnieć parę ważnych narzędzi instalowanych przez Homebrew. Poza wspomnianym gitem dobrze jest od razu zainstalować m.in. SwiftLint, Chisel oraz rbenv. To pierwsze służy do utrzymania odpowiedniego stylu Swiftowego kodu, a drugie to zestaw narzędzi wspomagających debugowanie przy użyciu LLDB, o którym wspominałem już poprzednim razem.

Rbenv to inny menedżer, ale w tym przypadku interpreterów Ruby. Bardzo przydaje się do tego, by (poza korzystaniem z nowszej wersji ruby) móc instalować gemy lokalnie, a nie w ścieżkach systemowych z użyciem sudo. W postaci gemów otrzymamy narzędzia “must-have”, takie jak Fastlane oraz CocoaPods (opisane poniżej).

Fastlane

Jest to zbiór narzędzi automatyzujących pracę z projektami iOS (również Android, ale tam nie aż tak powszechnie). Opisanie w szczegółach Fastlane zapewniłoby mi tematy do pisania na najbliższe dwa lata. Biorąc pod uwagę tempo rozwoju to w sumie mógłbym nigdy nie zdążyć tego zrobić… Każdy, kto na poważnie interesuje się programowaniem na iOS musi to znać. Najciekawsze moim zdaniem elementy będące częścią Fastlane to match oraz snapshot.

Match usprawnia podpisywanie kodu. Automatyzuje m.in. pobieranie kluczy, certyfikatów i profili od Apple. Pozwala nawet na synchronizowanie ich między komputerami poprzez specjalne repozytorium git!

Snapshot automatyzuje tworzenie zrzutów ekranu aplikacji poprzez wykonanie napisanego wcześniej testu UI i zrobienie zrzutu w odpowiednim momencie. I tak dla każdego rozmiaru urządzenia i każdego języka aplikacji. Ta ilość idzie w setki, a ręczne wykonywanie takiej pracy zakrawa o masochizm. Oczywiście jest też odpowiedni moduł fastlane zajmujący się wysyłaniem tych plików do iTunes Connect. Snapshot przyda się również, gdy chcemy skasować dane z wszystkich symulatorów.

Twórcy pracują także nad serwerem CI, który nazywa się (niespodzianka!) fastlane.ci oraz bazuje na bardzo nowoczesnych (i aktualnie modnych) rozwiązaniach takich jak np. przetrzymywanie konfiguracji CI w repozytorium git.

xcode-install

Standardowo Xcode instaluje się poprzez Mac App Store. Ma to jednak swoje minusy – przede wszystkim można mieć tylko jedną wersję naraz. No i może się ona przypadkiem zaktualizować (lub nie). Do tego instalując inne wersje Xcode (szczególnie na CI) trzeba pamiętać aby dać im dostęp do kluczy prywatnych służących do podpisywania aplikacji itp.

Tutaj wyręczy nas xcode-install. Trzeba jednak mieć na uwadze pewne błędy przy instalacji Xcode w wersji beta – narzędzie nie rozróżnia ich i najpierw trzeba starą betę odinstalować, by bez problemu zainstalować nową.

CocoaPods, Carthage, SPM

Opisują te rzeczy w jednym rozdziale, ponieważ wszystkie mają ten sam cel – zapanowanie nad zależnościami. Co ciekawe bardzo się od siebie różnią.

CocoaPods jest najstarsze i ma największe możliwości, ale też najbardziej ingeruje w pliki projektu.

Carthage jest nowsze i jak można przeczytać w nagłówku “nie modyfikuje plików projektu ani ustawień budowania“. Osobiście nie mam nic przeciwko żadnemu z nich ale uważam, że poprawne i bezpieczne używanie CocoaPods jest co najmniej trudne.

Swift Package Manager (SPM) jest bardzo świeży i rozwijany przez Apple, ale póki co używa się go raczej w przypadku projektów innych niż aplikacje iOS czy macOS. Najczęściej można się z nim spotkać przy pisaniu aplikacji serwerowych w Swift.

iTerm 2

Wszystkich wymienionych wyżej narzędzi używa się z linii poleceń. Istnieją co prawda takie aplikacje jak Cakebrew lub CocoaPods App, ale jest to raczej awangarda. Warto się więc wyposażyć w dobry terminal.

Aktualnie wróciłem do systemowego, który jest bardzo dobry, ale bardzo długo korzystałem z iTerm 2. Lista funkcjonalności jest bardzo długa i osoby uwielbiające Vima z pewnością będą chciały coś bardziej rozbudowanego niż systemowa aplikacja.

Niezależnie od preferencji dotyczących aplikacji do terminala polecam zainstalować Oh My Zsh lub ewentualnie fish. Nie wyobrażam sobie już używania standardowej konsoli.

Dash

Dash to po prostu przeglądarka dokumentacji. Ale nie tylko iOS – na stronie producent chwali się liczbą zestawów dokumentacji przekraczającą 200. Jest to też jedyna płatna aplikacja na tej liście, ale uważam, że jest warta każdego centa.

Integracja z wieloma środowiskami, zasób dokumentacji oraz wygoda (np. tryb HUD zmapowany pod skrót klawiszowy) to funkcje, które bardzo usprawniają pisanie kodu.

Ciekawostką może być też, że autor doczekał się własnej afery kiedy to jego konto deweloperskie zostało zawieszone, a aplikacje usunięte ze sklepu.

SourceTree

Są różne GUI do gita na macOS i jest SourceTree.

Wygląda ładnie, jest aktywnie rozwijane przez znaną firmę (Atlassian, twórców Jira) i posiada zaimplementowane praktycznie wszystkie funkcje gita potrzebne na co dzień. Można nawet robić interactive rebase!

Fakt, mogłoby działać trochę szybciej ale i tak pracuje się z nim szybciej niż z linią komend – no chyba, że jesteśmy prawdziwymi miłośnikami konsolowego gita.

Edytor tekstu i kodu

Tego jest bardzo dużo, ale wspomnę z obowiązku chociaż o czterech, które wydają mi się najpopularniejsze. Zdaję też sobie sprawę z tego, że granica pomiędzy edytorem tekstu, a IDE jest aktualnie bardzo niewyraźna.

Atoma oraz Visual Studio Code pewnie wszyscy już znają, więc nie będę się rozpisywał. Osobiście na co dzień używam VS Code, bo działa trochę szybciej i ma wystarczająco dużo funkcjonalności. Oba niestety są zrobione na Electronie i nie polecam ich stosowania przez dłuższy czas z dala od zasilania.

Sublime Text 3 jest uwielbiane przez wiele osób przede wszystkim za szybkość działania. Teoretycznie trzeba je kupić jeśli zamierzamy z niego korzystać, ale wersja testowa nie posiada żadnych ograniczeń.

TextMate jest najbardziej “makowym” edytorem i też jedynym z zestawienia posiadającym wersję jedynie na macOS. Nie posiada bardzo rozbudowanych możliwości ale działa szybko, przyjemnie i będzie odpowiednim wyborem dla osoby, która lubi natywne aplikacje macOS.

Inne

Mógłbym wspomnieć również o aplikacjach typu Paw, Sketch albo Sip czy też przeróżnych komunikatorach (i tak w nieskończoność) ale kiedyś trzeba skończyć, więc zostawiłem tylko te moim zdaniem najważniejsze.

Dajcie znać, jeśli zapomniałem o czymś ważnym, a dodam to do tej listy.

Do następnego!

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Share.

About Author

Programista iOS w intive, prelegent, mentor, bloger. Nie cierpi oprogramowania niskiej jakości. Ważniejsze niż odgadnięcie czemu coś się psuje jest zrozumienie dlaczego działa. Więcej na mojej stronie oraz Medium.

Comments are closed.