Jak wygląda praca iOS developera tworzącego aplikację dla jednego z topowych klubów piłkarskich? Wywiad z Robertem Ignasiakiem
Uczestnictwo w prestiżowych projektach, ciekawe zadania na co dzień i możliwość zostania prelegentem na dużym wydarzeniu — żadne z tych wyróżnień nie mogłoby być osiągalne, gdyby nie stałe doskonalenie swoich umiejętności. O rozwoju kariery i istotności poszerzania swojej wiedzy jako iOS developer rozmawialiśmy z Robertem Ignasiakiem, który ma na swoim koncie już wiele projektów z zakresu e-commerce oraz tworzenia aplikacji.
Spis treści
Co skłoniło Cię do rozpoczęcia pracy jako iOS developer?
Mój wujek, który również jest programistą, zainspirował mnie do zainteresowania się programowaniem. Podarował mi książkę „Biblia Flash MX”, dzięki której stworzyłem swoją pierwszą aplikację, pomagającą mi przygotować się do egzaminu z geografii — konturówki. Podzieliłem się tą aplikacją z innymi uczniami, a ich pozytywne opinie utwierdziły mnie w przekonaniu, że jest to ścieżka, którą chce podążać w swoim życiu zawodowym. Jeśli mowa o ścieżce mobilnej, pasjonowała mnie ona już od dzieciństwa.
Kiedyś śledziłem każdy nowy telefon, aplikację i możliwości, które oferowały. Te przenośne urządzenia są jak przedłużenie umysłu, zawsze dostępne na wyciągnięcie ręki, które niejednokrotnie ratowały mnie w trudnych sytuacjach. Ostatecznym wyborem, jaki musiałem podjąć, było zdecydowanie się na konkretny ekosystem. Podczas studiów, w trakcie kursu programowania na Androida, napotkałem wiele problemów. Tworzenie aplikacji iOS przebiegało znacznie łatwiej. Czas pokazał, że również bardziej skomplikowane zadania na tej platformie mogą sprawiać trudności, jednak już związałem się z tą technologią i nie żałuję.
W jaki sposób znalazłeś się w zespole intive? Nad czym aktualnie pracujesz?
Na jednej z grup na Facebooku powiązanych z iOS natknąłem się na ogłoszenie o projekcie „intive iOS School”. Ofert dla początkujących programistów mobilnych było znacznie mniej niż np. dla webowych, więc szybko zgłosiłem swoje zainteresowanie. W ramach tego programu wspólnie z trójką innych developerów, pod okiem doświadczonego programisty, pracowaliśmy nad projektem wewnętrznym.
Ten okres wspominam bardzo pozytywnie, ponieważ pokazał mi, że można wiele się nauczyć nie tylko od doświadczonych programistów, ale również od osób, które dopiero rozpoczynają swoją przygodę z programowaniem. Aktualnie pracuję w projekcie e-commerce dla niemieckiej sieci marketów budowlanych. To kolejna moja aplikacja w tej domenie. W ostatnich latach widać rosnące zainteresowanie zarówno firm, jak i użytkowników w dokonywaniu zakupów za pośrednictwem aplikacji mobilnych.
Miałeś okazję pracować przy tworzeniu aplikacji dla jednego z topowych klubów piłkarskich. Czy możesz opowiedzieć coś na temat samego procesu, różnic wynikających z pracy nad tak prestiżowym projektem oraz własnych odczuć, kiedy to tysiące osób z całego świata korzystały z czegoś, co pomagałeś stworzyć?
Praca nad aplikacją na taką skalę przynosi wiele wyzwań, ale także ogromne zadowolenie. Podobnie jak artyści, programiści pragną, aby ich twórczość była doceniana przez jak najszersze grono odbiorców. Im więcej osób korzysta z ich pracy, tym większa satysfakcja. Z drugiej strony, praca nad takim projektem niesie ze sobą ogromną odpowiedzialność. Ze względu na liczbę użytkowników, zróżnicowanie urządzeń oraz wersji systemów, niezbędne jest skupienie się na jakości produktu. W przypadku mniejszej liczby użytkowników, pewne błędy mogą pozostać niewykryte, lecz w naszej sytuacji mało prawdopodobne jest, aby nasz błąd pozostał niezauważony.
Przed wdrożeniem aplikacji konieczne jest przeprowadzenie szerokiej gamy testów, a po wdrożeniu, musimy stale monitorować działanie aplikacji, zbierać opinie użytkowników oraz wprowadzać ulepszenia w kolejnych aktualizacjach. Spędziliśmy również znaczną ilość czasu na opracowanie odpowiedniego środowiska testowego. Wiele danych obsługiwanych przez aplikację napływało na bieżąco podczas rozgrywki, więc kluczowe było dla nas, aby móc przetestować aplikację nie tylko w trakcie meczu, lecz także w momencie dogodnym dla nas. Ze względu na renomę klubu oraz dużą ilość użytkowników, konieczne było wdrożenie mechanizmów bezpieczeństwa, aby chronić dane użytkowników oraz zapewnić im bezpieczne korzystanie z aplikacji.
W swojej karierze przerobiłeś już sporo technologii. Z którymi pracę wspominasz najlepiej? Czy pojawiły się takie, które sprawiły Ci problemy?
Jednym z ciekawszych przypadków w mojej karierze było moje doświadczenie z technologią Flash. Niestety, została ona całkowicie wyłączona. Podobnie było z frameworkiem, który został użyty w moim pierwszym projekcie gry – Cocos2d. Świat IT jest bardzo dynamiczny, dlatego uważam, że najważniejszą umiejętnością dla deweloperów jest elastyczność.
Podstawy informatyczne są bardzo podobne we wszystkich rozwiązaniach, doświadczony deweloper może szybko przyswoić nową technologię. Tak było w przypadku Fluttera, w którym udało mi się stworzyć w parę miesięcy gotowy projekt. Zdarzało mi się czuć wtedy, że mimo wielu lat doświadczenia, zaczynam swoją przygodę na nowo. Choć nie jest to przyjemne uczucie, uważam, że jest to specyfika naszej pracy. IT rozwija się bardzo szybko i często musimy przystosowywać się do zmian w technologiach, trendach i wymaganiach rynku.
Często słyszę, że najlepszą praktyką jest stosowanie rozwiązań natywnych. Jednakże, moje zdanie jest inne – uważam, że wybór technologii zależy od specyfiki projektu. W naszej firmie długo funkcjonowała prosta aplikacja do zamawiania pizzy na wspólny obiad w ostatni dzień miesiąca. Była ona wykonana w bardzo prostej technologii, ale sprawdzała się doskonale. Kluczem jest dokładna analiza wymagań projektu, a dla długoterminowych projektów polecam stosowanie sprawdzonych rozwiązań natywnych.
Co powinien robić iOS Developer, aby osiągnąć sukces w swojej branży?
Aby odnieść sukces w branży jako iOS Developer, istotne jest nieustanne doskonalenie swoich umiejętności. Ciągły rozwój nie oznacza jedynie zdobywania nowych umiejętności, ale również pogłębianie dotychczasowych, a także praktykowanie i doskonalenie umiejętności miękkich, takich jak komunikacja, zarządzanie czasem, kreatywność czy rozwiązywanie problemów.
Warto poznać i stosować zasady Human Interface Guidelines (HIG) opracowane przez Apple. Przestrzeganie HIG jest istotne z kilku powodów. Po pierwsze, korzystanie z tych wytycznych ułatwia tworzenie aplikacji, które są intuicyjne i łatwe w obsłudze. Nieprzestrzeganie ich może skutkować odrzuceniem aplikacji podczas procesu weryfikacji, przed umieszczeniem jej w sklepie AppStore. Jest to duża różnica w porównaniu np. z aplikacjami internetowymi, gdzie aktualizacje mogą być stosunkowo łatwe i szybkie, ponieważ użytkownicy mają dostęp do aplikacji poprzez przeglądarkę internetową, co oznacza, że wystarczy zaktualizować kod na serwerze.
Czy masz swoje metody na nadążanie za stale rozwijającą się technologią?
Dokumentacja i prezentacje na Apple Worldwide Developers Conference (WWDC) to pierwsze i jedno z najważniejszych źródeł informacji dla iOS Developerów. WWDC to coroczne wydarzenie organizowane przez Apple, podczas którego deweloperzy mogą poznać najnowsze narzędzia, technologie i trendy związane z tworzeniem aplikacji na urządzenia z systemem iOS. Podczas WWDC, Apple przedstawia nowości w systemie operacyjnym iOS, a także w narzędziach deweloperskich. Prezentacje od ekspertów z Apple dają wgląd w najnowsze trendy i najlepsze praktyki w tworzeniu aplikacji dla urządzeń z systemem, a także przedstawiają przyszłościowe kierunki rozwoju tej branży.
Kolejnym moim zdaniem, jednym z najefektywniejszych sposobów na pogłębianie swojej wiedzy jest interakcja z innymi ludźmi. Już podczas studiów zauważyłem, że wiele wartościowych informacji i praktycznych umiejętności zdobyłem dzięki moim kolegom, którzy chętnie dzielili się swoją wiedzą i doświadczeniem. Kontakt z innymi deweloperami może być źródłem inspiracji, a także umożliwić zdobycie nowych perspektyw i spojrzeń na dane zagadnienie.
Ponadto zdolność do skutecznej komunikacji i współpracy z innymi ludźmi jest kluczowa w branży technologicznej, a interakcja z innymi może pomóc w rozwinięciu tych umiejętności. Polecam również uczestnictwo w programistycznych spotkaniach, takich jak meetupy czy konferencje, które są świetnym sposobem na pogłębianie wiedzy i dzielenie się doświadczeniami z innymi deweloperami. Często możemy usłyszeć prezentacje i wystąpienia od liderów branży, którzy dzielą się swoim wieloletnim doświadczeniem w formie skondensowanego i zwięzłego wystąpienia. Ponadto umożliwiają nawiązanie kontaktów z innymi deweloperami, którzy podzielają nasze zainteresowania i pasję do programowania.
W przeszłości miałem przyjemność brać udział w jednym z takich wydarzeń jako prelegent. Zachęcam każdego do wypróbowania się w takiej roli — mimo iż wystąpienia publiczne mogą być stresujące, dzielenie się własnymi doświadczeniami oraz pasjami pozwala przezwyciężyć niepokój.