Komputer jest podstawowym narzędziem pracy każdego programisty. Dlaczego jednak tak wielu deweloperów na swój podstawowy komputer osobisty wybiera sprzęt Apple? Odpowiedź jest prosta – poza walorami platformy sprzętowej, użytkownicy komputerów Apple mają też dostęp do całego ekosystemu rozwiązań wspierających rozwój kompetencji, a także tworzenie i komercjalizację aplikacji. Mają również do dyspozycji szereg ułatwień w zakresie rozwoju oprogramowania dla rozwiązań Apple.
Najważniejszym kryterium wyboru sprzętu komputerowego jest jego docelowe zastosowanie. Aspekt ten definiuje nie tylko konfigurację sprzętową samego komputera, ale też środowisko operacyjne i powiązany z nim ekosystem. Podstawowe wymagania programistów w obszarze samego sprzętu, podobnie jak innych profesjonalistów wykonujących swoją pracę na komputerze, jest wysoka wydajność, niezawodność i ergonomia. Komputery Apple, w szczególności MacBook Pro od lat kojarzone są właśnie z tymi walorami – uzupełnionymi dodatkowo o stabilność oraz wysokie bezpieczeństwo warstwy oprogramowania. O wyborze konkretnego komputera w coraz mniejszym stopniu decyduje dziś moda na urządzenia Apple, a za decyzjami o wyborze tych rozwiązań przemawiają konkretne powody. Czasem jest to przyzwyczajenie, czasem prostota, niezawodność i spójność ekosystemu, zaś innym razem – dostępne dla platformy Apple dedykowane aplikacje, szczególnie dla twórców muzyki, obrazu czy filmów. Istnieje zapewne jeszcze wiele obszarów kreatywnych zastosowań, w których ekosystem Apple sprawdza się świetnie. Szczególne miejsce zajmuje tu właśnie praca programisty.
MacBook dla programisty? Dlaczego miałby to być dobry pomysł? W zasadzie program można napisać nawet w notatniku, co wnosi zatem posiadanie komputera rodem z Cupertino? Choć takie pytania są zasadne, to pracując czasem z ulubionej kawiarni obserwuję wielu programistów, którzy do wykonywania swojej pracy używają właśnie MacBook’ów. Zdaję sobie sprawę, że jako fan technologii Apple i wieloletni użytkownik całego ekosystemu, będzie mi ciężko o pełną obiektywność, ale postaram się możliwie rzetelnie odpowiedzieć na powyższe pytania.
MacBook otwiera drzwi całego ekosystemu
Rozważania o przewagach rozwiązań Apple zacząłbym od spojrzenia na cały ekosystem zbudowany przez tego producenta. Uważam, że system MacOS wnosi bardzo wiele ciekawych funkcjonalności, jednak prawdziwą wartość pokazuje jako element znacznie większej układanki. Ten ekosystem to oczywiście inne urządzenia jakie ma w swojej ofercie Apple, ale także szereg narzędzi programistycznych, kursów, poradników, a nawet – zintegrowany, przygotowany od początku do końca i dostępny dla twórców aplikacji kanał sprzedaży oprogramowania jakim jest platforma AppStore.
Zacznijmy jednak od pierwszych kroków, które czyni początkujący programista. Dla ułatwienia można sobie wyobrazić dziecko, nie tyle zaczynające przygodę z konkretną platformą, co w ogóle z programowaniem. Już na tym etapie ekosystem Apple ma do zaoferowania miłe przywitanie – aplikację Apple Playgrounds. Jest to dość rozbudowana propozycja kierowana do tych, którzy nie mają żadnego doświadczenia w programowaniu, ale także do osób stawiających swoje pierwsze kroki w języku Swift, o którym można powiedzieć, że jest natywnym językiem świata Apple. Playgrounds jest aplikacją dostępną zarówno dla tabletów iPad jak i komputerów Mac, a zatem każdy znajdzie coś dla siebie. Istotną cechą tej platformy jest bogactwo rozszerzeń, które w zależności od naszych preferencji pomogą nauczyć się programowania w wybranym obszarze lub też realizować się w konkretnych wyzwaniach programistycznych.
Jeden kod aplikacji dla wszystkich urządzeń Apple
Kolejnym krokiem jest platforma XCode, czyli dostępne nieodpłatnie dla komputerów Mac kompletne środowisko programistyczne IDE. Aby z niego skorzystać na początkowym etapie nie trzeba kupować dodatkowych subskrypcji – można po prostu wytworzyć dowolne oprogramowanie i przy zachowaniu jego zgodności z każdym urządzeniem ekosystemu Apple. Tworzenie aplikacji dla komputera, telefonu, tabletu czy nawet zegarka, jeśli dobrze wszystko przygotujemy, może się sprowadzać tylko do wybrania opcji na jakie platformy chcemy to oprogramowanie przygotować i napisania kodu aplikacji. Może jest to uproszczenie, jednak nie znam innego tak skonsolidowanego i elastycznego systemu pozwalającego w jednym, spójnym środowisku napisać aplikację na tak różne klasy urządzeń.
W ostatnim czasie Apple jeszcze bardziej uprościło pracę deweloperom przygotowując bardzo wydajną i bardzo elastyczną jednostkę obliczeniową opartą o architekturę ARM – Apple M1. Procesory te napędzają dziś zarówno komputery Apple MacBook, jak i tablety iPad, a programista może zdecydować czy kod, który napisał pod kątem aplikacji dedykowanej dla tabletu ma być dostępny do uruchomienia na MacOS czy nie. Kodowanie odbywa się tylko raz. To zjawisko jest dość unikalne w porównaniu z platformami, takimi jak Windows czy Linux, choć trzeba przyznać, że znajduje zastosowanie w momencie, gdy budowana aplikacja może pozostać wyłącznie w ekosystemie Apple. W przeciwnym razie oczywiście można ją rozwijać na platformie Apple, ale korzyści nie są takie oczywiste. Jeśli panujemy tworzyć aplikacje bardzo uniwersalne, na różne platformy, to blask ekosystemu Apple nieco przygasa, choć w mojej ocenie zapewnia on dodatkową wartość w postaci wygody i niezawodności.
Bezcenne wsparcie Apple
Warto zauważyć, że aby naprawdę na poważnie zająć się tworzeniem aplikacji należy uprzednio poznać platformy, dla których przeznaczone będzie rozwijane oprogramowania, dostępne języki, biblioteki, pakiety SDK i inne elementy warsztatu programisty.
Tu z pomocą przychodzi program Apple Developer. Jest to płatny – obecnie kosztuje ok. 400 zł rocznie – kompleksowy program pozwalający wejść w świat programistów Apple szybko i skutecznie. Obejmuje on m.in. narzędzia, biblioteki, kursy, poradniki i szereg innych dobrodziejstw, które przydają się programistom. Jedną z kluczowych wartości jest dostęp do treści prezentowanych na konferencji Apple WWDC (World-Wide Developer Conference), która od wielu już lat gromadzi programistów z całego świata. W ostatnich dwóch latach konferencja Apple WWDC odbywała się wirtualnie, jednak nie przeszkadza to pasjonatom, jak i zawodowcom korzystać z prezentowanej tam wiedzy. Dobrze przygotowane merytorycznie sesje tematyczne pozwalają zgłębić bardzo konkretny obszar wiedzy, jak np. programowanie urządzeń medycznych w ramach platformy HealthKit czy korzystanie z różnego rodzaju integracji urządzeń UWB (Ultra Wide Band). Na WWDC każdy znajdzie coś dla siebie, a najwięksi fani wszelkich nowości będą mogli się cieszyć wczesnym dostępem do wersji beta systemów iOS, iPadOS, WatchOS, tvOS i MacOS.
Program Apple Developer to jednak nie tylko szkolenia i prezentacje. To przede wszystkim dostęp do kanału sprzedaży oprogramowania. Dochodzimy tu do kolejnego, milowego kroku w rozwoju każdego programisty – komercjalizacji aplikacji. Oczywiście zdaję sobie sprawę z głosów krytycznych, podnoszących m.in. kwestię 30% prowizji Apple za umieszczenie aplikacji w AppStore, jednak zauważmy jak wielu programistów i firm deweloperskich odniosło sukces, właśnie dzięki temu, że poprzez sklep Apple mogli łatwo dotrzeć do tak rzeszy odbiorców. Oczywiście istnieją inne, bardziej korzystne drogi sprzedaży swojej kreatywności wyrażonej w kodzie, ale jeśli popatrzymy na AppStore, czy konkurencyjny Google Play, to są to platformy, które co prawda przynoszą ich właścicielom ogromne sumy, ale zdecydowanie pozwalają tez pojedynczym twórcom oraz mniejszym firmom oferować i sprzedać swoje produkty milionom ludzi na świecie.
Warto pamiętać, że proces komercjalizacji oprogramowania nie ogranicza się tylko do sprzedaży i dystrybucji. Wprowadzenie aplikacji na rynek wymaga przecież zapewnienia określonej jakości kodu i stabilności działania, przetestowania oprogramowania w różnych warunkach, ale też – rozliczeniem transakcji, obsługą faktur czy zwrotów. Wszystkie te aspekty ułatwia platforma AppStore, dzięki czemu twórcy oprogramowania mogą skupić się na rozwoju aplikacji. Okraszając tą rzeczywistość rozmaitymi dodatkami w postaci usług XaaS (cokolwiek jako usługa), czyli np. przestrzeń dyskowa, obsługa biometrii, potwierdzanie tożsamości (TouchID, FaceID) uzyskujemy bardzo wygodny warsztat deweloperski, gdzie wiele modułów wystarczy poskładać jak klocki skupiając się na własnym pomyśle na ciekawą aplikację.
MacBook dla developera w korporacji
Mówić o warsztacie programisty nie sposób zapomnieć o wszystkich tych osobach, które pracują w działach deweloperskich dużych korporacji, gdzie odpowiadają jedynie za kod stanowiący część większej całości. Mam tu na myśli ogromne systemy rozliczeniowe, CRM’y, obiegi dokumentów i inne rozwiązania będące efektem pracy całych departamentów. W takim przypadku zastosowanie platformy Apple niekoniecznie ma aż tak wiele benefitów, bo przecież wytworzony kod testujemy w ramach polityki Q&A danej organizacji, a jego ostateczną postać przekazujemy nie do publicznego sklepu z aplikacjami tylko wewnętrznego repozytorium. Czy w takich realiach komputer taki, jak jak MacBook Pro i szerzej – ekosystem Apple – się przydaje?
Uważam, że tak. Jest to platforma mająca swoją genezę na systemach UNIX, a w istocie programiści bardzo często korzystają w dużych organizacjach z narzędzi, które zostały zaprojektowane dla takich właśnie środowisk. Aby nie szukać daleko – platformy kontenerowe czy wszechobecne repozytoria Git są znacznie bliżej systemów Linux niż Windows. Używając MacOS śmiem twierdzić, że wielu deweloperom, pomijając może tych skupionych stricte na technologiach Microsoft, pracuje się po prostu wygodniej niż ich kolegom korzystających z innych środowisk.
MacBook to dobra maszyna dla dewelopera
Podsumowując, uważam, że MacBook to dobra maszyna dla dewelopera. Największe korzyści przynosi twórcom aplikacji, których nie byłoby stać na całe działy programistów, Q&A, wsparcia oraz dystrybucji. Mimo relatywnie wysokiej prowizji, AppStore i cały ekosystem narzędzi do testowania (TestFlight) dostarczania aplikacji pozwala zwieńczyć dzieło i po prostu sprzedać swoją pracę. Przygotowując się do napisania tego artykułu zapytałem też kilku kolegów, na co dzień zajmujących się tworzeniem aplikacji o to, na ile, ich zdaniem, MacBook czy ekosystem Apple nadaje się dla programisty. Najbardziej ujęła mnie odpowiedź człowieka, z którym pracowałem kilka lat i którego bardzo cenie za wiedzę technologiczną (i nie tylko). Powiedział on bowiem: „ekosystem Apple pozwala programować łatwo i oferuje szereg narzędzi bardzo różnych, żeby nie musieć pisać wszystkiego samodzielnie; innymi słowy jak chce zjeść ciastko, to nie kupuje cukierni”. Jako fan technologii Apple odpowiedziałem, że dla mnie ekosystem Apple to w zasadzie trochę taka cukiernia, do której mogę wejść z własnym przepisem, a wyjść z gotowym ciastkiem, na które właśnie mam ochotę.
Krzysztof Waszkiewicz