Polacy wśród laureatów Apple Swift Student Challenge 2024!
Już za miesiąc startuje coroczna konferencja programistyczna WWDC 2024. W Cupertino, jak co roku spotkają się najlepsi deweloperzy z całego świata, jednak w tym roku będzie trochę inaczej niż do tej pory – mamy dość mocny „polski” akcent.
World Wide Developers Conference to nie tylko profesjonaliści, ale też młodzież, która dopiero się uczy, która aspiruje, która chce związać swoją przyszłość z kodowaniem.
Pod koniec marca poznaliśmy wyniki konkursu Apple Swift Student Challenge. W tym roku wśród 350 finalistów z całego świata mamy 4 Polaków. Co więcej, jeden z nich znalazł się w gronie 50 Distinguished Winners! To wyjątkowy sukces i dowód, że w Polsce mamy wielu młodych i utalentowanych ludzi.
O Swift Student Challenge pisaliśmy w iMagazine wielokrotnie. W wyzwaniu uczniowie mieli za zadanie stworzyć innowacyjny projekt w aplikacji Swift Playgrounds.
Apple organizuje coroczny konkurs Swift Student Challenge już od kilku lat. Zazwyczaj ruszał wraz z ogłoszeniem daty WWDC. Tym razem konkurs został ogłoszony 5 lutego, a uczniowie mieli trzy tygodnie na przesłanie swoich prac do Apple.
Wyróżnieni zwycięzcy, Distinguished Winners, zostaną zaproszeni do siedziby Apple w Cupertino w Kalifornii, gdzie będą mogli nawiązać kontakt z rówieśnikami i zespołem Apple, podczas gdy wszyscy pozostali zwycięzcy otrzymają bezpłatne roczne członkostwo w programie Apple Developer.
Jak pisałem wcześniej, to wyjątkowy sukces, że w tym roku mamy aż czterech finalistów oraz jednego zwycięzcę. Poznajcie Wita Owczarka, naszego tegorocznego Distinguish Winnera, oraz trzech Jakubów – Jakuba Florka, Jakuba Ptasznego oraz Jakuba Milcarza. Wielkie gratulacje!
Udało nam się z nimi skontaktować i poprosić ich komentarz oraz kilka słów o sobie i swoich projektach. Jestem pod niesamowitym wrażeniem kreatywności…
Wit Owczarek
Jestem uczniem trzeciej klasy Liceum Ogólnokształcącego im. Tadeusza Reytana w Warszawie.
Zacząłem programować gdy miałem 13 lat. Początkowo była to Java, w której tworzyłem proste algorytmy. Poza tym bardzo mnie interesowały mody do Minecrafta i wówczas dużo czasu poświęciłem nauce programowania. Oglądałem filmy instruktażowe, szukałem kursów online, po których udało mi się stworzyć pierwsze aplikacje. Z drugiej strony, zawsze interesowało mnie działanie aplikacji iOS, więc po dwóch latach zacząłem kodować w Swift.
Do tegorocznego Swift Student Challenge zgłosiłem Pushaton. To gra 2D, zbudowana w SpriteKit framework, w której biegniesz przez dżunglę, pokonujesz przeszkody i zdobywasz punkty. Jej wyróżnikiem jest unikalny sposób interakcji, ponieważ skoki wymagają od gracza wykonania pompek w świecie rzeczywistym. Ta funkcja działa na podstawie obrazu transmitowanego na żywo z kamery. Wyodrębnia kluczowe punkty ciała, które są przekazywane do modelu deep learning, który samodzielnie przygotowałem w Pythonie. Model ocenia, w jakiej pozycji znajduje się ciało gracza i czy pompka została wykonana.
Główną częścią aplikacji jest model, który zbudowałem w celu rozpoznawania poszczególnych etapów ruchu pompki. Spędziłem nad nim półtora miesiąca, tworząc ponad 20 różnych wersji. Rozpocząłem od trenowania modeli 3D CNN. W tym celu zebrałem ponad 80 000 zdjęć osób wykonujących pompki – to było duże wyzwanie, w którym uczestniczyło wielu moich kolegów.
Niestety wyniki uzyskane z modeli 3D CNN nie były zadowalające, co skłoniło mnie do poszukiwania alternatywnych rozwiązań. Zwróciłem się ku transfer learningu, wykorzystując pre-trenowane modele jako bazę, z nadzieją na poprawę dokładności. Kiedy to podejście również nie spełniło oczekiwań, podjąłem próbę implementacji metody Dense Optical Flow, która miała na celu lepsze śledzenie ruchu i pozycji ciała w czasie. Jednakże to było zbyt wolne i nie ograniczyło się do pompek. W końcu, kluczowym krokiem okazało się zastosowanie modelu LSTM, trenowanego bezpośrednio na podstawie punktów położenia ciała zarejestrowanych przez kamerę. To podejście znacząco poprawiło dokładność detekcji.
Ostatecznie powstało ciekawe wdrożenie, które gamifikuje proces ćwiczenia. Pushaton to moje drugie zgłoszenie do Swift Student Challenge. W tym roku byłem jeszcze bardziej zdeterminowany, żeby wygrać i jak widać udało się.
Obecnie pracuję nad Wigion – kolejną aplikacją, która oferuje nowe widżety do Notion. To popularna aplikacja, ale oferuje bardzo podstawowe widżety. Postanowiłem to zmienić i stworzyć nowe, bardziej interaktywne, które wykorzystują funkcjonalności iOS 17.
Poza programowaniem lubię ćwiczyć. Stąd pomysł na pompki w Pushatonie. Drugą moją pasją jest budowanie customowych klawiatur, a przy okazji lutowanie. Rok temu zrealizowałem projekt, który, analizując kształt dłoni i rozmieszczenie palców, generował optymalny układ klawiszy dla klawiatury.
Konferencje WWDC oglądam od 2018 roku. Początkowo robiłem to bardziej dla produktów Apple. Dopiero w 2020 roku zacząłem patrzeć na to wydarzenie z perspektywy dewelopera i zdobywania wiedzy pod nowe projekty i aplikacje. W ostatnim czasie bardzo interesowały mnie zmiany jakie Apple wprowadza do App Store w Europie, aby spełnić wymagania stawiane przez Unię Europejską. Nie mam szczególnych oczekiwań wobec WWDC24, ale na pewno będzie to ciekawe wydarzenie.
Moim zdaniem najlepszymi źródłami do nauki kodowania w języku Swift są YouTube oraz dokumentacja techniczna Apple, a także wszystkie materiały wideo z konferencji WWDC, które są dostępne za darmo online. Swift jest przyjazny dla początkujących, ponieważ zawiera ładny i całkiem prosty syntax. Pozwala także na tworzenie różnorodnych aplikacji, od mobilnych po webowe, wyróżniając się szybkością pisania kodu.
W przyszłości chciałbym zostać indy developerem i realizować własne pomysły na aplikacje, które byłyby moim źródłem utrzymania. Jeszcze nie myślałem o kierunku studiów jaki wybiorę po ukończeniu liceum, ale na pewno będzie on związany z IT.
Czy wyjadę na tegoroczną konferencję WWDC do Kalifornii? Wszystko na to wskazuje!
Jakub Florek
Pochodzę z Tarnowa, a obecnie studiuję Computer Science and Engineering na Delft University of Technology (Holandia). Decyzja o studiach poza Polską była ciekawym zbiegiem okoliczności i w dużym stopniu następstwem sukcesu jaki osiągnąłem podczas Swift Student Challenge w 2021 roku. Tarnów to małe miasto i nie miałem wielu znajomych, z którymi mógłbym wspólnie rozwijać się w wybranym kierunku. Swift Student Challenge pomógł mi podjąć decyzję, aby wyjechać i kontynuować edukację w Holandii. Dzięki konkursowi Apple poznałem wielu ciekawych ludzi z całego świata.
Moja przygoda z kodowaniem rozpoczęła się od gier wideo. Jako nastolatek chciałem stworzyć coś swojego. Próbowałem sił w Unity, tworzyłem proste gry w C# i wtedy przyszła pandemia. Moja siostra potrzebowała laptopa z kamerą do pracy zdalnej, a ja przypomniałem sobie o starym MacBooku mojego taty. Poszedłem na strych po stary komputer i zainteresowałem się językiem Swift. Moim ówczesnym marzeniem było stworzenie aplikacji iOS. Podczas pandemii obejrzałem wiele tutoriali i stworzyłem swoje pierwsze, proste aplikacje.
Na początku 2021 roku w Tarnowie pojawił się nowy przewoźnik komunikacji zbiorowej. Rozkład jazdy autobusów był trudno dostępny. Jednocześnie powstawała lokalna aplikacja mobilna, która nie miała swojej wersji na iOS. Skontaktowałem się z osobami realizującymi ten projekt i stworzyliśmy aplikację, która w mojej ocenie osiągnęła całkiem spory sukces. Był to projekt charytatywny. Miałem dużą satysfakcję, gdy widziałem mieszkańców Tarnowa, którzy codziennie korzystali z mojej aplikacji. To mnie bardzo zmotywowało do dalszych działań. Otworzyłem się na świat, poznałem nowych ludzi i aplikowałem do Swift Student Challenge.
Poza programowaniem od wielu lat muzykuję. Jestem zapalonym gitarzystą i chciałem połączyć te dwie pasje. Od drugiej klasy szkoły podstawowej śpiewałem w chórze katedralnym. Kilka lat później zacząłem grać na gitarze. Śpiewanie w chórze mocno wpłynęło na moje gusta muzyczne. Czasami moi koledzy irytują się, gdy odtwarzam Mozarta czy Beethovena. W mojej ocenie to doskonała muzyka do kodowania. W 2022 roku stworzyłem aplikację do tworzenia efektów dźwiękowych, inspirowaną efektami gitarowymi, a dzięki kolejnej edycji Swift Student Challenge poznałem jeszcze większe grono młodych programistów.
W ostatnim roku bardziej zająłem się tworzeniem aplikacji narzędziowych, które pomagają tworzyć nowe rzeczy. Mój tata jest współwłaścicielem firmy, która sprzedaje akcesoria meblowe. Korzystał z programu do aranżacji zabudowy kuchennej z gotowych modeli szafek. Tworzenie modeli kuchni na komputerze było bardzo czasochłonne, bo wiązało się z wypełnianiem Excela. Dlatego postanowiłem stworzyć aplikację na iPada, zawierającą predefiniowane obiekty z funkcjami drag & drop, eksportu i opisami. To dotychczas mój najbardziej skomplikowany projekt i jestem z niego dumny.
Nowe doświadczenie pomogło stworzyć mi jeszcze bardziej zaawansowany projekt, który zgłosiłem do tegorocznego Swift Student Challenge. Stworzyłem znacznie bardziej skomplikowane interfejsy, wykorzystałem technologię spatial audio i znalazłem interesujący framework Apple, który pozwala umieszczać wirtualne głośniki i tworzyć bardzo ciekawe efekty dźwiękowe. Na przykład, perkusja orbituje wokół słuchacza, a gitara zanika w konkretnym miejscu. Było ciężko, bo część kodu pisałem nawet w przerwach na lunch, ale jestem bardzo zadowolony z efektów. Tym bardziej, że lubię eksperymentować z muzyką. Do tegorocznego zgłoszenia Swift Student Challenge przygotowałem ”Us and Them” Pink Floydów. Jestem bardzo zadowolony w jaki sposób udało mi się zmienić dynamikę tego utworu.
Przed WWDC zawsze jestem podekscytowany możliwością nawiązania nowych kontaktów z innymi uczestnikami Swift Student Challenge. W tym roku na pewno oczekuję nowości dotyczących Vision Pro i rozszerzonej rzeczywistości oraz dalszych zmian w SwiftUI. Już teraz SwiftUI umożliwia bezproblemową pracę na wszystkich platformach, od iPhone’a po Vision Pro. Ciekawie byłoby zobaczyć, jak ta technologia dalej rozwija się w tym multiplatformowym kierunku.
Swift stał się moim głównym językiem programowania. Największym marzeniem zawodowym jest współudział w jego dalszym rozwoju oraz praca w Apple, ale wcześniej muszę skoncentrować się na dalszej edukacji. Chciałbym zaangażować się w Swift community i dołożyć swoją cegiełkę w dalszy rozwój technologii, którym tyle zawdzięczam. Zdaję sobie sprawę, jak wiele osiągnąłem dzięki zwycięstwu w Swift Student Challenge. Dlatego chciałbym się zrewanżować i pośrednio pomóc innym.
Jakub Ptaszny
Mam 21 lat. Mieszkam w Katowicach i studiuję architekturę na Politechnice Śląskiej.
Moja przygoda z kodowaniem rozpoczęła się w liceum. Podczas zajęć informatyki mogliśmy wybrać dowolny język programowania. W tamtym czasie wygrałem iPada w konkursie i znalazłem aplikację Swift Playground z wieloma interesującymi samouczkami. Aplikacja na tyle mi się spodobała, że spośród kilku języków programowania wybrałem Swift. Początkowo tworzyłem proste aplikacje typu kółko i krzyżyk oraz saper. Wiele musiałem nauczyć się samodzielnie, poza zajęciami informatyki w szkole. Do kodowania w Swift wróciłem podczas studiowania Architektury na Politechnice Śląskiej w Gliwicach. W tym samym czasie zainteresowałem się grafiką 3D i programem Blender, do którego piszę proste dodatki w Pythonie.
O Swift Student Challenge słyszałem wielokrotnie, ale dopiero teraz zdecydowałem się wziąć udział. Swift Student Challenge to doskonała okazja do sprawdzenia swoich umiejętności programowania, tym bardziej gdy do dyspozycji jest taka aplikacja jak Swift Playground. Decyzja o zgłoszeniu była spontaniczna i spowodowała, że po dwóch latach przerwy wróciłem do kodowania w Swift.
Przygotowałem Playground o projektowaniu architektonicznym i wpływie warunków środowiska na budynek i jego wnętrze. Korzystałem z wielu poradników i tutoriali Swift dostępnych w internecie. Ponadto na stronach internetowych Apple dla deweloperów znalazłem ciekawe poradniki dotyczące tworzenia animacji w SwiftUI. Wszystkie materiały edukacyjne są bardzo dobrze przygotowane. Istotnie pomogły mi zrozumieć sposób pracy w Swift i przygotować zgłoszenie do Swift Student Challenge.
W wolnych chwilach tworzę grafiki 3D. Brałem udział w konkursach Pixar, w ramach których przygotowywałem artystyczne rendery 3D. Sposób myślenia programisty i wiedza o kodowaniu są przydatne na przykład podczas tworzenia efektów specjalnych. Moje prace od czasu do czasu publikuję w internecie lub pokazuję na uczelni. Działam również w kole naukowym, które obecnie zajmuje się projektowaniem mebli w Blenderze.
W przyszłości chciałbym częściej kodować w Swift. Praca w Swift jest niezwykle wygodna i szybka. Tworząc projekt na Swift Student Challenge miałem wrażenie, że w krótkim czasie sporo osiągam i szybko śledzę postępy za pomocą funkcji live preview w Xcode. Podczas przygotowania zgłoszenia korzystałem z wielu narzędzi zewnętrznych, a następnie importowałem pracę do Swift.
W przyszłości chciałbym wykorzystać Swift do dalszego rozwoju projektu z mojego zgłoszenia – czyli łączenia architektury z programowaniem. Moim marzeniem jest również stworzenie nowej aplikacji, która pomogłaby studentom architektury w projektowaniu. Jako student posiadam doskonałą wiedzę, jakie usprawnienia byłyby najbardziej pożądane przez moich kolegów.
Programowanie z perspektywy studenta architektury jest interesujące z kilku względów. Przede wszystkim jest to obszar analiz i optymalizacji, do czego można wykorzystać Swift. Kolejnym ciekawym obszarem jest rzeczywistość rozszerzona i możliwość prezentacji budynków i wizualizacji innych obiektów na urządzeniach mobilnych, do czego można wykorzystać wiele bibliotek Swift. Tworzenie aplikacji dla VisionPro jest również interesujące, ale do realizacji tego typu zadań potrzebowałbym MacBooka z czipem M. Obecnie korzystam z iPada, którego wygrałem w konkursie rysunkowym Toyoty. Częściowo programowałem na iPadzie w aplikacji Swift Playground, a następnie kontynuowałem projekt na iMacu.
Od kilku lat regularnie oglądam konferencje WWDC – nie mam specjalnych oczekiwań wobec tegorocznego wydarzenia, ale powodów do śledzenia na pewno nie zabraknie. Na WWDC zawsze dzieje się coś ciekawego.
Jakub Milcarz
Mam 21 lat. Mieszkam i studiuję w Warszawie na Akademii Leona Koźmińskiego.
Moja historia z kodowaniem trwa już prawie dekadę i trudno przypomnieć sobie dokładne jej początki. Programowanie zacząłem traktować bardziej na poważnie od 2015 roku, gdy zająłem się tworzeniem stron internetowych w HTML, PHP, React czy Node. W międzyczasie próbowałem swoich sił w programowaniu na iOS, ale do chwili wprowadzenia SwiftUI, wcześniejszy UI kit był dla mnie barierą nie do pokonania. Mocne wejście do kodowania w Swift było jesienią 2021 roku i wszystko wskazuje, że zostanę przy Swift na dłużej.
Moim tegorocznym zgłoszeniem do Swift Student Challenge jest aplikacja wspierająca program szczepień. Stwierdziłem, że przyda się szczególnie młodym rodzicom, dla których wiele rzeczy jest nowych. Aplikacja na bieżąco śledzi wymagania dotyczące szczepień, bez względu czy dziecko przebywa w Polsce, Stanach Zjednoczonych, Francji czy w Niemczech. Spełnienie obowiązku w zakresie szczepień staje się jeszcze ważniejsze po tym, jak wybrane kraje wprowadzają restrykcje wobec niezaszczepionych. Moja aplikacja powstała z myślą o zgłoszeniu do Swift Student Challenge. Drzemie w niej duży potencjał i dlatego planuję ją rozwijać w przyszłości oraz udostępnić w App Store.
Obecnie w App Store znajduje się pięć moich aplikacji. Jednocześnie pracuję nad nowymi. Gdybym miał wybrać trzy aplikacje, z których jestem najbardziej dumny to byłyby to Memorize, Bookie i Coffee Note. Pierwsza z nich to aplikacja do nauki, w której obracamy wirtualne fiszki oraz wybieramy spośród różnych metod nauki. Memorize ma duży potencjał, a największe zainteresowanie ze strony użytkowników przypada w okresie sesji na uczelniach. Druga – Bookie Reading Tracker – odniosła największy sukces. Chciałem stworzyć aplikację, która spełni również wszystkie osobiste oczekiwania jako czytelnika. W mojej opinii udało się to osiągnąć, co widać również po zadowoleniu użytkowników. Trzecia ciekawa aplikacja to Coffee Note. Jej premiera odbyła się wiosną 2023 roku. Coffee Note pozwala użytkownikom dzielić się swoimi wrażeniami związanymi z parzeniem i piciem kawy. Obecnie jestem na końcowym etapie prac przy wersji 2.0, która wprowadza dodatkowe funkcjonalności, w tym dużą integrację z mapami. Nie mogę doczekać się jej premiery.
Wszystkie aplikacje tworzę samodzielnie i wszystkie pomysły na aplikacje wzięły się z moich pasji. Na przykład, praca w Starbucks przełożyła się na Coffee Note, czytanie książek skłoniło mnie do prac nad Bookie. Kolejna moja aplikacja będzie skierowana do wszystkich, którzy kochają podróżowanie. Z kolei Memorize była inspirowana inną aplikacją, której design nie zachęcał i nie spełniała moich oczekiwań podczas nauki. Nadal poszerzam swoją wiedzę. Prowadzę również anglojęzyczny kanał na YouTubie. Zachęcam również do śledzenia Swift community na platformie X.
Swift warto polecić początkującym programistom ponieważ jest type-safe – czyli jeżeli zmienna jest tekstem, to zawsze będzie tekstem i tego nie można nadpisać. Poza tym Swift jest czystym angielskim – czyli rozumiemy co piszemy, a nie musimy posługiwać się skrótowcami jak ma to miejsce w przypadku Pythona.
Konferencję WWDC24 obejrzę przez internet. Oglądam wszystkie sesje WWDC i zawsze moje oczekiwania przed WWDC są duże. Pamiętam rok, kiedy pracowałem na pełen etat i dopiero w nocy oglądałem wszystkie sesje, żeby być na bieżąco.
W przyszłości chciałbym przygotowywać aplikacje na wszystkie platformy i zoptymalizować aplikacje pod działanie na różnych urządzeniach. To wszystko wymaga czasu, szczególnie gdy jesteś odpowiedzialny za utrzymanie pięciu aplikacji. Pierwszym tego przykładem jest Memorize, dostępna na macOS, iPadOS, visionOS oraz iOS.
Bardzo polecam kodowanie w Swift i udział w Swift Student Challenge. To konkurs w którym swoich sił powinni próbować również początkujący programiści, ponieważ często najbardziej liczy się pomysł i kreatywność, a nie wykonanie i ja kodu.