Objective-C, Swift i ekosystem nowych technologii
W kategorii Objective-C/Swift - Programowanie na helion punktem wyjścia są oczywiście języki Apple, ale kontekst jest znacznie szerszy: praktyczne programowanie, architektura aplikacji, integracja z usługami sieciowymi, a w tle DevOps, cyberbezpieczeństwo czy automatyzacja testów. Widać wyraźnie, że książki nie traktują Swift czy Objective-C jak wyizolowanych ciekawostek, tylko jak realne narzędzia do budowania produktów, które współpracują z bazami danych, mikroserwisami czy modelami uczenia maszynowego.
Można się zastanawiać, od czego zacząć, gdy świat technologii jest tak rozległy. Część publikacji stawia na solidne wprowadzenie do języków programowania (Swift, ale i JavaScript w kontekście mobilnym), inne mocniej zahaczają o zagadnienia typowe dla nowoczesnej inżynierii oprogramowania: integrację z API, zarządzanie stanem aplikacji, wykorzystanie narzędzi takich jak Git, systemy ciągłej integracji czy kontenery. Nie brakuje też odniesień do obszarów takich jak data science czy architektura chmurowa, bo aplikacja iOS rzadko działa dziś w próżni - zazwyczaj jest tylko jednym z elementów większej układanki.
Swift, Objective-C i React Native w praktyce projektowej
Wydaje się, że najwięcej można wynieść z książek wtedy, gdy prowadzą one od pierwszej linijki kodu aż do działającej aplikacji. Dobrym przykładem takiego podejścia jest iOS 12. Wprowadzenie do programowania w Swifcie. Wydanie V - Matta Neuburga, gdzie krok po kroku omawiane są fundamenty Swifta, środowisko Xcode, a także framework Cocoa i Cocoa Touch. Autor prowadzi czytelnika przez cykl życia projektu Xcode: od założenia projektu, przez tworzenie interfejsu, uruchamianie i debugowanie kodu, po zgłoszenie aplikacji do App Store, pokazując przy okazji, jak Swift współpracuje z Objective-C i jak działa mechanizm zarządzania pamięcią w nowoczesnych aplikacjach.
Z drugiej strony mamy książki mocniej nastawione na budowanie kompletnych, ,,namacalnych" projektów. W publikacji Poznaj Swifta, tworząc aplikacje. Profesjonalne projekty dla systemu iOS - Emila Atanasova nauka Swifta odbywa się równolegle z konstruowaniem aplikacji mobilnych: od zrozumienia składni i podstawowych struktur danych, przez tworzenie GUI w Xcode z użyciem storyboardów, po obsługę zapisu danych między sesjami i pobieranie zasobów z chmury. Autor wprowadza też narzędzie CocoaPods oraz przydatne biblioteki open source, co realnie przygotowuje do pracy z kodem rozwijanym zespołowo, a nie tylko do krótkich ćwiczeń ,,do szuflady".
Co ciekawe, w tej kategorii pojawiają się również pozycje wychodzące poza stricte natywne podejście. Książka React Native. Tworzenie aplikacji mobilnych w języku JavaScript. Wydanie II - Bonnie Eisenman pokazuje, jak wykorzystać React Native do budowy aplikacji na iOS i Androida przy użyciu JavaScriptu, z dostępem do zasobów urządzenia, takich jak kamera czy lokalizacja. Autor, a właściwie autorka, prowadzi przez konfigurację środowiska, projektowanie interfejsu, stylowanie komponentów i zarządzanie stanem (np. z wykorzystaniem Redux), aż po rozszerzanie możliwości frameworka własnymi modułami w językach Java i Objective-C. W praktyce oznacza to, że czytelnik uczy się łączyć świat natywny z wieloplatformowym, co jest dziś dość pożądaną kompetencją.
Szczerze mówiąc, nie chodzi tu tylko o ,,ładny kod", ale o umiejętność rozwiązywania konkretnych problemów: integrację z publicznymi API, obsługę błędów sieciowych, projektowanie interfejsu odpornego na zmiany wersji systemu, a czasem także o kwestie bardziej ,,niewidoczne", jak wydajność czy bezpieczeństwo przechowywania danych lokalnych. Książki w tej kategorii przybliżają narzędzia (Xcode, emulator, debuger, menedżer zależności) w taki sposób, by po lekturze dało się po prostu usiąść i samodzielnie zbudować coś działającego - nawet jeśli na początku to tylko prosty notatnik czy pogoda z publicznego API.
Od aplikacji iOS do pełnej ścieżki kariery w IT
Rozwijanie się w obszarze Objective-C i Swifta często zaczyna się od pierwszej aplikacji na iPhone'a, ale szybko może przerodzić się w pełnoprawną karierę. Ścieżka iOS developera to tylko jedna z opcji: znajomość Swifta i architektury Cocoa Touch przydaje się również w pracy nad aplikacjami na macOS, integracjami z usługami chmurowymi, a także w rolach, które łączą frontend mobilny z backendem, na przykład w zespołach odpowiedzialnych za całe produkty cyfrowe. W naturalny sposób pojawiają się tu takie kompetencje jak projektowanie REST API, podstawy DevOps (automatyczne buildy, testy, deployment) czy monitorowanie działania aplikacji po wdrożeniu.
Dla części osób punktem wyjścia stanie się wizja pracy na styku różnych światów: natywnego i wieloplatformowego. Znajomość Objective-C i Swifta może być uzupełniona przez technologie takie jak React Native, Flutter albo narzędzia webowe (React, TypeScript), co otwiera drogę do ról typu mobile full stack lub inżynier oprogramowania odpowiedzialny za cały ,,lifecyle" funkcjonalności - od warstwy interfejsu aż po integrację z usługami analitycznymi i systemami logowania zdarzeń. W tle coraz częściej pojawia się również data science i analityka zachowań użytkowników, bo decyzje produktowe opierają się na danych, a nie na przeczuciach.
Z drugiej strony, ta wiedza ma zastosowanie także poza typowym etatem w software house'ie. Umiejętność tworzenia aplikacji w Swifcie czy z pomocą React Native bywa fundamentem dla freelancerów realizujących projekty dla mniejszych firm, osób budujących własne startupy SaaS, a nawet specjalistów od cyberbezpieczeństwa, którzy analizują, jak aplikacje mobilne obchodzą się z danymi i jakie błędy projektowe mogą prowadzić do podatności. To trochę paradoks, ale im lepiej rozumiesz warstwę programistyczną, tym łatwiej odnajdziesz się także w rolach analitycznych, testerskich czy architektonicznych.
Na koniec warto zauważyć coś może oczywistego, ale istotnego: książki z tej kategorii nie zamykają w jednej ,,szufladce" - raczej otwierają drzwi do kolejnych obszarów IT, od backendu i integracji systemów, przez infrastrukturę chmurową, po zagadnienia uczenia maszynowego, które coraz częściej gości również w aplikacjach mobilnych (choćby w formie lokalnych modeli czy integracji z usługami chmurowymi).
Jeśli interesują Cię także materiały bardziej ogólne, skierowane do początkujących użytkowników i osób chcących rozwijać swoje kompetencje technologiczne w innych obszarach, warto zerknąć również na kategorię Linux.