Programowanie w języku Swift - jak zacząć, kursy, tutoriale

Programowanie w języku Swift – jak zacząć, kursy, tutoriale

Chyba zdecydowanie większość programistów ma taki folder lub repozytorium, w którym zalega taka ilość projektów, na ile wpadli pomysłów by napisać aplikację i tak jak szybko rozpoczął się proces twórczy fazy początkowej, tak szybko trafił do kolejnej fazy, czyli: obmyślić co dalej, no i tak sobie leży i czeka razem z innymi projektami. A więc skoro mamy już jakąś ową bazę projektów to czemu by nie utworzyć kolejnego? 

W artykule chciałbym przedstawić język Swift, jego możliwości oraz ogólny zarys tworzenia aplikacji z jego pomocą. 

Programowanie w języku Swift - jak zacząć, kursy, tutoriale

Rafał Prążyński. Programista iOS w firmie Ailleron. Interesuje go pisanie czystego kodu, testów oraz tworzenie architektur. Lubi poznawać nowe rzeczy w programowaniu i nie ogranicza się tylko do dziedziny iOS. Stara się być aktywny sportowo. Trenuje Wing Chun Kuen, Kettlebells oraz jak jest okazja to wychodzi na szlak w górach, najlepiej zimą.


Lekkie wprowadzenie do języka Swift

SWIFT to open sourcowy obiektowy język programowania firmy Apple Inc. Jego kompilator to: LLVM. Swift pojawił się w czerwcu 2014 roku na konferencji WWDC (Worldwide Developers Conference). Na ten moment kompilowanie Swifta jest możliwie na Linuxie oraz komputerach firmy Apple Inc. Jest następcą leciwego już Objective-C, który liczy sobie kilkadziesiąt lat, a jego składnia potrafi odstraszyć. 

Na szczęście składnia Swifta jakoś kolosalnie nie różni się od takich języków jak C# czy Java, to nauka składni nie powinna być ciężka. Dodatkowo jeśli ktoś ma background w Kotlinie to przejście na programowanie w Swifcie można powiedzieć, będzie prawie bezbolesne ponieważ oba te języki mają bardzo podobną składnię.

Nie jest to też język “niszowy”, także na rynku pracy większość ofert dotycząca platformy Apple zawiera w wymaganiach znajomość tego języka, co za tym idzie czas poświęcony na jego naukę może zaowocować zmianą stanowiska!

Nauka i społeczność Swift – kursy i tutoriale

Swift ma rozbudowaną społeczność oraz wiele stron (np. ulubiona strona programistów: StackOverflow), które zawierają odpowiedzi dotyczące rozwiązań nurtujących nas problemów. Są też strony, które, bardzo fajnie wyjaśniają pewne mechanizmy językowe, np:

swiftbysundell.com (poradniki, podcasty, artykuły)

oraz:

hackingwithswift.com (kursy, poradniki, forum)

Jest duże prawdopodobieństwo, iż artykuły, kursy, poradniki jak i filmy z YT na tych stronach, które publikują autorzy będą niezłym nauczycielem dla początkujących programistów Swifta, jak i dobrym uzupełnieniem wiedzy dla tych, którzy już w jakimś stopniu są zaznajomieni z językiem. Istnieje również międzynarodowy workspace na Slacku, gdzie można bardzo szybko uzyskać odpowiedź, jeśli mamy z czymś problem oraz społeczność na FB, gdzie można spotkać ludzi z dużym doświadczeniem i chętnych do udzielenia porady i pomocy.

No to co możemy zrobić z tym całym Swiftem?

Do wyboru mamy kilka możliwości. Możemy napisać aplikację na: 

  • zegarki,
  • smartfony,
  • tablety,
  • komputery,
  • telewizory,
  • serwery.

Czy potrzeba Macbook’a do programowania w Swifcie

Jeśli chodzi o pierwsze 5 punktów jedyne wymaganie, jest takie, że trzeba to robić na komputerach od Apple. Wydaje mi się, że większość ludzi nie musi korzystać z komputera firmy Apple, aby posiadać wiedzę na temat jego ceny, która jest niejednokrotnie tematem wielu konwersacji. Mamy również alternatywę, jeśli ktoś nie chce kupować Maca, a jest nią Hackintosh. Pozwala on nam na postawienie macOS na innym urządzeniu nie wspieranym przez firmę Apple lub można też postawić sobie wirtualkę.

Jeśli ktoś z Was zastanawia się nad rozpoczęcie nauki pisania aplikacji mobilnych (iOS lub Android) to serdecznie polecam tą stronkę: raywenderlich.com. Można tam znaleźć ciekawe artykuły, tutoriale i kursy, które w przystępny sposób objaśniają krok po kroku co się dzieje w projekcie, który się pisze razem z nimi.

GUI – storyboard, xib, swiftUI

Weźmy za przykład aplikację na iOS (którymi zajmuję się na co dzień). Do tworzenie GUI mamy możliwe następujące podejścia: pisanie interfejsu użytkownika z kodu lub używając tzw. storyboardów/xibów

Storyboard lub xib jest wizualną reprezentacją widoku, który chcemy zaprezentować na ekranie. W moim odczuciu na początku lepiej jest używać storyboardów/xibów ponieważ łatwiej zrozumieć jak działa mechanizm layoutu widoku, aczkolwiek może to być kwestia indywidualna i komuś lepiej będzie zrozumieć ten mechanizm pisząc wszystko z kodu.

Oprócz wcześniej wymienionych możliwości mamy jeszcze jedną do dyspozycji, nowy framework o nazwie SwiftUI, który pozwala nam na tworzenie GUI multiplatformowo, oczywiście w środowisku urządzeń Apple. Multiplatformowo mam na myśli każde urządzenie, które wspiera minimalną wersję systemu operacyjnego dla SwiftUI. Jest on o tyle ciekawy, iż tworzenie widoku odbywa się w paradygmacie deklaratywnym, co jest warte uwagi jeśli ktoś nie jest zapoznany z tym podejściem.

Jeśli ktoś jest zainteresowany tematem od strony serwerowej, to polecam się zapoznać z frameworkami:

W bardzo przyjemny sposób pomogą nam szybko postawić prostą aplikację serwerową.

Możemy również utworzyć skrypty, command line tools lub biblioteki wykonywalne na Linuxie. Opcji do wyboru jest wiele także: Zachęcam do eksperymentowania!

Coś więcej o Swift

Swift daje nam możliwość pisania w kilku paradygmatach: 

  • protokolarnym,
  • reaktywnym,
  • funkcyjnym,
  • deklaratywnym.

Jako język wysokiego poziomu zawiera w sobie mechanizmy funkcji wyższego rzędu takich jak: reduce, filter czy map. Ma możliwość tworzenia funkcji anonimowych oraz pisania generycznego kodu. Jest również silnie typowany, co pozwala na uniknięcie problemów z rzutowaniem, jakie czasem zdarzało się spotkać w projektach utworzonych w Objective-C. Na zakończenie dodam, iż mamy również możliwość zabawy z Machine Learningiem, który jest natywnym mechanizmem języka dzięki czemu nie trzeba ściągać zewnętrznych bibliotek.

Podsumowanie

Swift daje nam możliwość tworzenia aplikacji różnego pokroju: od telefonów po telewizory czy serwery, posiada cechy nowoczesnego języka obiektowego, co pozwala programiście na łatwiejszą ekspresje w kodzie. Jak wspomniałem na początku składnia języka jest przystępna do przyswojenia, co za tym idzie nauka składni nie powinna być ciężka.

Niedogodnością jest wymuszone posiadanie urządzenia firmy Apple, np.: aby móc zapoznać się systemem iOS, aczkolwiek historia nam nie raz udowodniła, że prawie wszystko da się “rozwiązać inaczej”. Osobiście zachęcam do zapoznania się z językiem, jak i samym tworzeniem aplikacji na którąś z wyżej wymienionych platform, nawet jeśli by to miało być tylko w celach sprawdzenia “z czym się to je”. Dzięki temu możemy poszerzyć swój horyzont możliwości rozwiązań napotkanych problemów czy nauczyć się jakiegoś nowego ciekawego podejścia w pisaniu kodu.

Sam język jest ciągle rozwijany i ulepszany, a jego popularność rośnie także nigdy nie wiadomo czy jego nauka nie przyda się w przyszłości i/lub będzie miłym dodatkowym autem w czyichś mile widzianych umiejętnościach. Dziękuję za uwagę i powodzenia!


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Amazon udostępnił 57 darmowych kursów dot. machine learningu