Black Friday Black Friday
Black Friday výprodej! Až 80 % extra bodů zdarma! Více informací zde

Lekce 1 - Vývíjíme aplikace pro iOS v jazyce Swift

Swift iOS Vývíjíme aplikace pro iOS v jazyce Swift

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Vítejte u úvodního tutoriálu, který vás provede základy programování aplikací pro mobilní zařízení od firmy Apple. To znamená především iPhone, ale také iPad, jelikož aplikace můžete vyvíjet současně pro oba typy zařízení. V úvodu si povíme něco málo o důvodech výběru této platformy, řekneme si, co budeme potřebovat, a seznámíme se s programem Xcode.

Proč iOS?

Proč zvolit iOS? Protože se jedná o důležitou mobilní platformu a Apple každé čtvrtletí prodá hromadu nových zařízení. Při vývoji nemusíte řešit tucty rozměrů displejů, různé poměry stran či verze systému uživatelů, což by vás čekalo při vývoji pro Android. Uživatelé iOS jsou zvyklí za kvalitní aplikace platit, a to klidně i několik dolarů. Spíš byste ale měli iOS zvolit, pokud je vám platforma blízká a chcete se pustit do programování cool aplikací pro vašeho kapesního pomocníka.

Proč Swift?

Pokud náhodou dumáte, proč Swift a ne Objective-C (ve kterém se iOS aplikace psaly v minulosti), tak právě pro vás je určen tento krátký odstavec. Je to jednoduché. Swift je budoucnost iOS vývoje, je to moderní objektový jazyk, který nabízí fajn vychytávky. Nebude na vás např. křičet za chybějící středník a pokud ho ze zvyku na konec řádku napíšete, tak se nic neděje. Swift není na rozdíl od Objective-C starý 25 let a poskytuje programátorům automatickou správu paměti, čímž se vyvarujete opravdu velkému množství chyb, které se jinak velmi špatně hledají. Navíc obsahuje null-safety a další moderní mechanismy, díky kterým budete chybovat ještě méně. Jestli vám důvody nestačí, vyhledejte si ukázky Objective-C kódu, což by vás mělo zaručeně přesvědčit, proč chcete používat Swift :)

Potřebné nástroje

  • Zařízení se systémem macOS
  • Xcode 9 (najdete v AppStore)
  • Znalost Swiftu na OOP úrovni
  • Chuť se něco nového naučit

Fyzické zařízení s iOS nepotřebujete. Xcode nabízí simulátory pro všechna relevantní zařízení. Zkoušet aplikaci na skutečném zařízení je ale každopádně lepší, navíc pokud máte slabší Mac, nevyužívání simulátorů výrazně pomůže jeho výkonu. Některé věci navíc v simulátoru nezkusíte, či je to problematické. Jelikož jste dočetli až sem a máte Mac, tak hádám, že ani o iOS zařízení není nouze.

Řekli jsme si proč a s čím vyvíjet. V úvodní lekci se níže ještě stručně seznámíme s vývojovým prostředím a poté se můžeme směle pustit do akce. Tedy do programování.

Hello Xcode

Tak jdeme na to. Seznamte se, Xcode. Nejdříve si ukažme obrázek, kde jsem vyznačil důležité části programu různými barvami. Mrkněte na něj a pokračujte k popisku níže.

Xcode pro programování iOS aplikací ve Swift
  • Hnědá - Zde budete vaši aplikaci spouštět, vypínat a také vybírat, na jakém zařízení se spustí (váš iPhone / simulátor). Pokud máte obsáhlejší projekt, tak zde také vyberete, co spustit.
  • Modrá - Přepnutí editoru a přizpůsobení UI. Druhé tlačítko z první trojice přepne na Assistant editor. Ten se hodí v případě, že potřebujete mít v jedné části editoru otevřené UI a ve druhé kód. Využijeme ho především při propojování UI komponent s kódem. Vše nás čeká v dalších lekcích. Zbylá trojice tlačítek vám umožní lehce skrýt části Xcode, abyste získali více prostoru, což oceníte zejména na notebooku.
  • Žlutá - oblast tzv. “inspektorů”. Půjde o vaše důležité pomocníky při budování UI. Důležité inspektory jsou Identity, Attributes a Size. Dostaneme se k nim později, takže jen stručně. V Identity budete primárně nastavovat vaše třídy UI prvkům. Attributes je asi nejčastější, např. v případě komponenty Label (textového popisku) zde nastavíte její výšku, text samotný, barvu a tak dále. Size potom řeší rozměry.
  • Červená - Knihovny, především UI komponent, ale také třeba předpřipravených koster pro kód či soubory. Zde najdete všechny UI prvky, které budete potřebovat. Vyplatí se použít vyhledávání pro snadnější nalezení. A jeden pro tip: Když budete potřebovat obyčejnou View komponentu, napište do políčka “uiview”, protože napsání “view” vám nejdříve zobrazí specifické varianty, jako je TableView apod. Můžete si to zkusit v dalších lekcích, až se k tomu dostaneme.
  • Zelená - Jsme u konce naší rychlé Xcode prohlídky. Zde najdete soubory vašeho projektu. Ty lze libovolně organizovat (s výjimkou Info.plist, které musí zůstat v kořenovém adresáři).

Co vás čeká v dalších dílech?

Kurz koncipuji tak, aby vás naučil všechny nutné základy vývoje pro iOS. Podíváme se, jak se tvoří UI, jak komponenty propojit s kódem, jak funguje navigace na další stránky aplikace. Detailně probereme TableView, což je jedna z nejdůležitějších UI komponent. Podíváme se také, jak si usnadnit práci využitím hotových balíčků, které pomohou s barvami, zpracováním JSONu, HTTP requesty... Těšit se můžete rovněž na několik způsobů ukládání dat.

Dejte vědět, jak se vám tutoriál líbí

V psaní tutoriálů se určitě nepovažuji za bezchybného mistra, pokud je někde problém či třeba část není úplně jasně vysvětlena, budu moc rád, když mi dáte vědět třeba do komentářů nebo skrze zprávy, abych mohl text zlepšit. Díky!

V příští lekci, Tvorba UI a seznámení se základními komponentami, se budeme věnovat tvorbě UI a popisu základních komponent.


 

 

Článek pro vás napsal Filip Němeček
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Autor se příležitostně věnuje vývoji iOS aplikací či těch webových za pomocí frameworku Django. Aktuální projekt: hrejzdarma.cz Twitter: @nemecek_f (neprogramátorské tweety)
Aktivity (4)

 

 

Komentáře

Avatar
Tomáš Me
Člen
Avatar
Tomáš Me:19. června 14:16

Super! Těším se na další lekce, nicméně měl bych prosby:

  • Zastavil bych se u řešení UI, které jsou řešeny přes konstanty, tzn. efektivní nastavení zobrazení ve všech iOS zařízení.
  • V kategorii OOP zmínit architekturu MVC, apod.
  • Chci se zeptat, zda se pracuješ s funkcionálním reaktivním programování (ReactiveCocoa, ReactivSwift apod.)? :)
Odpovědět  +2 19. června 14:16
Není čas, ztrácet čas.
Avatar
Filip Němeček
Redaktor
Avatar
Odpovídá na Tomáš Me
Filip Němeček:21. června 19:47

Ahoj, Autolayout už je publikovaný :-) Co se týče MVC, tak je to víceméně pro aplikace default, nebo máš na mysli něco konkrétního?

S RxSwift jsem se parkrát setkal, ale zatím jsem to nějak výrazně nepoužil.

 
Odpovědět 21. června 19:47
Avatar
Tomáš Me
Člen
Avatar
Odpovídá na Filip Němeček
Tomáš Me:26. června 20:25

Ahoj,

snažím si vytvořit "kopii" již existující aplikace "Pitný režim" a narazil jsem na úskalí, kdy si nejsem jistý, zda jdu dobrou cestou, vysvětlím :) :

  1. Mám vytvořeny 2 samostatné ViewController, spojeny s vazbou "Show" (UIViewController -> SecondUIViewCon­troller).
  2. Vytvořeny 2 třídy: Nastavení - výpočet nového cíle (dle zadaných hodnot) metoda getAktLitr - vrací výsledek.

View - pracuje s výsledkem jako Cíl, který je zapotřebí splnit. - viz img.
Odkaz

Dotaz: - Je tento postup efektivní, případně jak bych měl zaslat po uložení data z (SecondUIView­Controller) do druhé instance (bez definice instance jako globální let - abych mohl přistupovat k metodě getAktLit, která je v druhé třídě)?

  • Zkoušel jsem použít další seque s identifikátorem, buď to není dobrý nápad, nebo jsem se do toho zamotal.
  • V případě nejasností, více informací doplním až budu doma. :)
Odpovědět 26. června 20:25
Není čas, ztrácet čas.
Avatar
Filip Němeček
Redaktor
Avatar
Odpovídá na Tomáš Me
Filip Němeček:27. června 11:43

Podle toho, co jsem pochopil to vypadá, že tam máš data, která bude pro fungování aplikace nutné uložit. Tudíž bych je ani přes segue neposílal, to se hodí pro data, se kterými potřebuješ pracovat v dalším VC, ale potom už tě nebudou zajímat.

Pro těchto pár primitivních typů, co ukládáš, se skvěle hodí vestavěné UserDefaults. Stručný tutoriál je třeba tady - https://swift3tutorials.com/…er-defaults/

Jednoduše si pod klíčema uložíš data a pak k nim přistupuješ.

Tutoriál s různými způsoby ukládání dat mám rozpracovaný, ale nedokážu říct, kdy se zde objeví :-)

 
Odpovědět 27. června 11:43
Avatar
Tomáš Me
Člen
Avatar
Odpovídá na Filip Němeček
Tomáš Me:9. července 8:25

Ahoj,

skvělý, tohle jsem potřeboval! :)

Odpovědět 9. července 8:25
Není čas, ztrácet čas.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.