3. Jan 2022iOS

Ako začať vyvíjať iOS: tipy a sprievodca pre vývojárov

V tomto článku ti chcem ukázať niekoľko tipov, ako začať s vývojom iOS. Čerpal som z vlastných začiatkov, ale aj zo skúseností nášho tímu. Ukážeme si, čo iOS development znamená, čo k nemu budeš potrebovať po technickej aj osobnej stránke a omnoho viac.

Dominik PethoiOS Developer

Čo v skutočnosti znamená iOS development?

Všetci si pod pojmom vývoj aplikácií preiOS predstavíme tvorbu appiek pre mobilné zariadenia iPhone od spoločnostiApple. Nie je to tak, ale úplne pravda.

Pozícia iOS developera na prvý pohľad nezahŕňa len tvorbu aplikácií pre mobilné zariadenia iPhone, no väčšina iOS developerov tvorí, alebo má skúsenosti aj z tvorby aplikácií pre ostatné operačné systémy v ekosystéme Apple. Medzi ne patrí napríklad iPadOS, ktorý predstavuje operačný systém pre iPad zariadenia, watchOS pre Apple hodinky (Apple Watch), nemenej známy tvOS pre AppleTV a samozrejme macOS pre Macbook/iMac zariadenia.

Obrázok Apple iPad, Mac a iPhone s logom GoodRequest

Každý jeden operačný systém v tomto Apple ekosystéme má svoje špecifiká, rozdiely a náročnosť vývoja, no všetky majú pri vývoji aj niečo spoločné, a to, že ich tvorba môže a je realizovaná pomocou rovnakého programovacieho jazyka (Swift alebo Objective-C) a rovnakého programovacieho prostredia (IDE). V prípade, že máte skúsenosti s tvorbou aplikácie pre iOS, tak vytvorenie a vydanie aplikácie napríklad pre iPadOS alebo WatchOS nie je vôbec zložité. Tomuto dopomáha aj samotný Apple, ktorý v posledných rokoch prichádza s viacerými riešeniami, ako publikovať aplikáciu na viac operačných systémov, bez nejakého veľkého zásahu do už existujúceho projektu.

Takýmto nástrojom je napríklad Mac Catalyst, ktorý umožňuje nainštalovať do macOS aplikáciu, ktorá je vytvorená pre iOS. Apple ale v posledných 3 rokoch predstavil aj ďalší skvelý nástroj, SwiftUI, ktorý programátorom zjednodušuje prácu s UI prvkami, a tak programátor môže jednoducho prispôsobovať UI aplikácie napríklad na watchOS alebo tvOS s tým, že vytvorí len jednu aplikáciu a následne si ju vie plnohodnotne spustiť na rôznych zariadeniach s rôznymi OS. Veľká časť kódu sa tak zdieľa a programátor sa stará len o to, ako tieto informácie na danom zariadení zobraziť.

Požiadavky na developera

Požiadavky na developera sa samozrejme môžu líšiť od aplikácie alebo nástroja, na ktorom pracujete, od vašej pozície alebo od spoločnosti, pre ktorú pracujete.

Základnou požiadavkou vždy bolo, mať aspoň drobné skúsenosti z programovania, analytické myslenie a chuť učiť sa a pracovať na sebe. To je ale všeobecná poučka nielen pre iOS programátora.

Prvá a tá najdôležitejšia vec pri vývoji, ktorá odrádza programátorov začať s vývojom iOS aplikácií je veľká finančná investícia do vybavenia. Bez iMacu alebo Macbookusa pri vývoji bohužiaľ nezaobídete. Výhodou ale je, že ak v seba a svoje schopnosti veríte (čo by ste aj mali, keďže sa chcete stať programátormi), tak sa tá investícia veľmi rýchlo vráti.

Ďalším problémom, ktorý vás môže odradiť od iOS vývoja je to, že nemáte dizajnové cítenie, inak povedané "Cit pre User Interface". Tu si ale treba uvedomiť, že ako iOS developer sa nemusíte stretnút len s tvorbou obrazoviek alebo prvkov, ktoré sa zobrazujú v telefóne a musia vyzerať pekne. Vývoj zahŕňa aj tvorbu knižníc, ktoré následne pomáhajú pri vývoji, návrh a implementáciu rôznych algoritmov a podobne. Cit pre dizajn sa z časti dá naučiť, aj keď nikdy to nebude také, ako keby ste ho mali vrodený.

Pracovné nástroje iOS developera: Swift a Xcode

Príprava pre vývoj

V najbližších častiach si spíšeme, čo je potrebné spraviť na to, aby sme mohli začať vyvíjať v iOS ekosystéme.

Macbook (alias Mac) alebo iMac

Ako som už písal vyššie, túto investíciu treba spraviť. Viete ale aká je výhoda niektorých firiem ako je GoodRequest? To, &a takéto zariadenie dostanete pri nástupe úplne zadarmo.

"Tak, ale určite ho nedostane zadarmo úplný začiatočník."

Práve naopak! Na to v GoodRequeste slúži iOS Akadémia, o ktorej vám poviem neskôr.

Xcode IDE

Pri vývoji aplikácií je vždy potrebné mať aj nejaké vývojové prostredie. Presne takýmto prostredím je Xcode IDE. Skúsenejší iOS programátori vám určite povedia, že existuje aj alternatíva ako je napríklad AppCode, no pre začiatok určite odporúčame pracovať práve v Xcode IDE. Je to prostredie priamo optimalizované Applom, prebieha na ňom neustály vývoj a je to nástroj určený priamo na vývoj appiek pre ekosystém Apple.

iPhone

Po nákupe nového Macbooku si poviete, že vás iste čaká ďalšia investícia do mobilného telefónu. Áno, aj my odporúčame, aby každý iOS programátor mal svoj vlastný, osobný iPhone z prostého dôvodu, a to toho, že nie je nič jednoduchšie, ako pracovať na appke a mať pritom skúsenosti s tým, ako ten operačný systém funguje, ako sa na ňom veci animujú, zobrazujú. Proste ako sa správa.

Na druhej strane vám ale na začiatok bude úplne stačiť pracovať na simulátore, ktoré si viete jednoducho spustiť pomocou Xcodu, bez toho, aby ste museli vlastniť nejaký svoj iPhone. Simulátor emuluje správanie reálneho zariadenia. Má to samozrejme svoje limity, ale pri tvorbe väčšiny aplikácií úplne stačí.

Nezmeškaj svoju príležitosť! Otvorili sme pre teba našu iOS academy!

Otvorená pozícia pre Junior iOS developerov

Programovací jazyk

Zabŕdnem troška do inej platformy, ale možno ste postrehli informáciu o tom, že Google dávnejšie pri vývoji mobilných aplikácií Android prešiel z programovacieho jazyka Java na Kotlin. Rovnaká vec sa stala aj u nás na iOS, kde pár rokov dozadu bol predstavený programovací jazyk Swift, ktorý môže a aj nahrádza predtým používaný Objective-C.

Swift je sám o sebe veľmi moderný programovací jazyk, ktorý sa syntakticky, a teda formou zápisu, podobá Kotlinu. Samozrejme každý má svoje špecifiká, ale je pekné vedieť, že v prípade že sa naučíte Swift, pravdepodobne budete vedieť čítať aj kód napísaný v Kotline. Samozrejmosťou je aj to, že je open-source, a teda sa na vývoji a pokroku jazyka môžete podieľať aj vy.

Ak by ste váhali s tvorbou iOS aplikácií a chceli by ste sa najskôr naučiť programovací jazyk a až potom investovať napríklad do "Macu". Existuje aj možnosť ako si tento programovací jazyk vyskúšať aj na Linuxe alebo nejakom online nástroji, a teda Mac nebudete vôbec potrebovať. Stačí ak do Googlu zadáte napríklad "Swift online compiler".

Treba ale spomenúť, že skúsený iOS programátor sa určite stretne aj s Objective-C, no do budúcna sa to bude stávať zriedkavejšie a zriedkavejšie.

Programovacie jazyky pre iOS vývoj - Swift a Objective-C

Distribúcia aplikácie

Na to, aby aplikácia bola úspešná a dostupná verejnosti, slúži AppStore. AppStore je v podstate dôveryhodné miesto, kde programátori nahrávajú svoje aplikácie a následne si ich používatelia odtiaľ vedia bezpečne stiahnuť. Každá nahratá aplikácie je následne posúdená a preverovaná Applom. Nemôže sa teda stať, že sa tam bude nachádzať aplikácia, ktorá nebola overená.

Aby sme ako programátori mohli vyvíjať a spúšťať aplikácie na reálnych zariadeniach, je potrebné mať vytvorený AppleID, na ktorom následne treba potvrdiť jeden dokument (Apple Developer Agreement). Tu to ale nekončí a ak chcete aplikáciu nahrať do AppStoru, je potrebné zaplatiť ročné členstvo. To platí pre firemný ale aj individuálny účet.

Samotná distribúcia aplikácie po vytvorení účtu je veľmi jednoduchá a nahrávanie novej aplikácie môže byť realizované priamo cez Xcode IDE. To je ďalšia výhoda, prečo využívať Xcode. Ten vás prevedie celým procesom nahratia aplikácie do AppStoru. Samozrejme existujú aj alternatívne riešenia, ale poznať tento základný proces je na začiatok to najlepšie. Rovnaký postup platí pre iOS, iPadOS ale aj MacOS appku.

Ako sa stať iOS vývojárom

Ako som spomínal, tak na začiatok je určite dôležité vlastniť macOS zariadenie, následne mať nainštalovaný Xcode IDE a môžete začať vyvíjať. Ak začínate s programovaním na iOS sami a v okolí nemáte nikoho, kto sa tomu venuje, určite odporúčame nasledujúce zdroje informácií, z ktorých sme čerpali aj my.

Photo of the GoodRequest iOS team members

Kurzy a Videoprednášky

Určite väčšina pozná službu Udemy a ak nie, tak určite ju treba poznať. Je to web, na ktorom nájdete kurzy rôzneho druhu, medzi ktorými nechýba ani vývoj appiek pre iOS. Medzi náš top kurz patrí iOS & Swift - The Complete iOS App Development Bootcamp.

Neodmyslitelnou súčasťou našich začiatkov boli aj Standford prednášky a nemenej známy Paul Hegarty. Posledné dva roky sa venuje SwiftUI.

Ak sa chcete zoznámiť aj s UIKitom, tu je od neho kurz iOS 11.

Určite sa ale odporúčame pozrieť aj na ďalšie:

Knihy a blogy

Z osobnej skúsenosti bola najlepšia vec, ktorú sme sme spravili pre zlepšenie a naučenie sa programovacieho jazyku Swift, prečítanie knihy "The Swift Programming Language (Swift 5.5)", určite muest have pre každého:

Pre pokročilejších odporúčame aj tieto:

V iOS komunite sa nachádzajú aj mnohé známe blogy, medzi ktoré patria napríklad:

Ak začínate s iOS popri inom zamestnaní alebo iných povinnostiach, odporúčame tento tutorial. Počas 100 dní vás bude každý deň čakať nejaký chellange, pričom výsledkom bude, že sa naučite základy.

Ďalšie praktické odkazy

Celkom praktické vysvetlenia na vulgárnych adresách

A ďalšie, ktoré používame pri vývoji:

SwiftUI alebo UIKit?

Toto je otázka, ktorú si kladie každý iOS developer či už to je úplný začiatočník, alebo skúsenejší iOS programátor. U nás v GoodRequeste sa tejto téme budeme venovať podrobnejšie v ďalších článkoch. Naše odporúčania ale sú začať s UIKitom. Prečo? Pokročilejšie UI prvky ešte nie sú priamo obsiahnuté v SwiftUI a tak sa stane, že budete musieť naprogramovať daný prvok v UIKite a následne ho prepojiť so SwiftUI. Najjednoduchším príkladom je napríklad SearchBar v navigácii aplikácie. SwiftUI pre iOS 15 síce obsahuje jednoduché riešenie ako ho do navigácie pridať, no naše aplikácie musia byť spätne kompatibilné aj s iOS 13 alebo iOS 14. Tým pádom je potrebné vytvoriť, alebo nakonfigurovať prvok v UIKite a následne ho prepojiť so SwiftUI. Mohli by sme to prirovnať aj k situácii, keď prišiel do iOS Swift ako programovací jazyk. Síce tu je viac ako 5 rokov, ale stále sa stretnete s projektom, kde sú veci písané v Objective-C. Rovnako to bude tak aj pri UIKite a SwiftUI.

iOS Akadémia

Každý, kto čerpá info z komunity, by mal do tejto komunity aj niečo priniesť. Práve preto sme sa v rámci GoodRequestu zamerali aj na vzdelávanie iOS začiatočníkov. Pripravili sme si pre nich interný kurz, kde sa zameriavame na základy tvorby iOS aplikácií. Je to super príležitosť v prípade, že váhate či do toho ísť alebo nie. Každý účastník iOS Akadémie dostane od nás "Mac", na ktorom môže vyvíjať, čiže sa nemusí báť, že na začiatok veľa investuje.

Práve u nás prebieha tretie kolo iOS Akadémie počas jedného roka, tak neváhajte a ak zvažujete že začnete s vývojom alebo niekoho takého poznáte, určite vám odporúčam sledovať nás na Facebooku alebo LinkedIn-e.

Tipy & Triky

Do komunity sa popri iOS Akadémii snažíme prispievať aj písaním článkov a návodov. Pre začiatočníkov si odporúčame prečítať našu sériu na Medium článkov.

Pripravili sme pre teba aj výber našich najpoužívanejších skratkiek na Xcode IDE.

Pre skúsenejších programátorov prinášame aj sériu článkov, ako si pripraviť šablónu zefektývňujúcu tvorbu projektu a urýchľujúcu jeho následný vývoj.

Samozrejme pripravuje aj nové a zaujímavejšie články okľadom nášho prístupu k iOS navigácii, práci s lokalizáciou, architektúre a dizajn patternom a mnoho dalšich zaujímavých tém, na ktoré sa môžete tešiť. Ak chcete byť pravidelne informovaný ohľadom našich noviniek. Odporúčame odoberať náš newsletter.

Zhrnutie

Byť iOS vývojár, podobne ako Android či Web developer prináša popri výhodách aj určité nevýhody. Každá platforma a programovací jazyk má svoje špecifiká a plusy aj mínusy. Dôležité ale je, že stať sa iOS vývojárom je rovnako náročné ako sa stať akýmkoľvek iným vývojárom. Všetko je to o nastavení vašej mysle, toho čo chcete dokázať a akú vášeň pre danú technológiu máte. Ak vás iOS láka, určite ho treba skúsiť. Ak zistíte že to nie je pre vás, určite ste nespravili chybu, vaše znalosti a rozhľad Vám už nikto nevezme. Držíme vám palce a prajeme veľa síl. V prípade otázok nám neváhajte napísať.

Dominik PethoiOS Developer