Jak začít programovat na iPadu

Úvod

Chvilku mi trvalo, než jsem si ujasnil, jak tuto sérii pojmout. Nejsem profesionální programátor, ve skutečnosti jsem přesný opak, absolutní zelenáč. Mám ale tu výhodu, že mám kolem sebe spoustu programátorů, takže mám koho požádat o případnou radu nebo správné “nakopnutí”. 🙂

Nečekejte tedy, že v tomto článku naleznete odborný návod, jak se naučit programovat na iPadu. Tento příspěvěk je spíše součástí mého učícího procesu. Chci se s vámi podělit o veškeré zdroje, myšlenkové procesy a znalosti, které jsem na své cestě získal. To mi pomáhá utřídit si veškeré znalosti z jednotlivých kurzů a projektů.

Můžete se vydat na stejnou cestu jako já, můžeme si radit a sdílet zkušenosti. Jak už asi vyplynulo z úvodu, nebudu schopen poradit vám z pozice zkušeného vývojáře. Tam se nechci a myslím že nikdy nebudu pozicovat. Učím se programovat ve svém volném čase, abych si rozšířil obzory jako produktový manažer v našem startupu Eventee a nemám žádné ambice živit se jako programátor.

Proč Lua, proč Codea

Lua se řadí mezi nejjednodušší programovací jazyky. Možná jednodušší než velmi oblíbený Python. Navíc je velmi populární v herním odvětví. Mnoho populárních her je alespoň z části programovaných pomocí jazyka Lua. Např. World of Warcraft používá Lua na skriptování herního světa. Mnoho herních enginů je zcela postavených na Lua, např. Love2d.

Lua se nekompiluje. Co to je kompilace? Pokud vyvíjíte hru nebo aplikaci pro iPhone, musíte při každé změně kódu celou aplikaci kompilovat, tzn. vytvořit z řádků kódu a grafiky spustitelný soubor, který se nahraje na iPhone. Tento proces zabere nějaký čas a čím komplexnější aplikace, tím delší dobu trvá kompilace. Můžeme se bavit o sekundách až desítkách minut času mezi drobnou změnou kódu a jeho otestováním na fyzickém zařízení.

Lua je čistě skriptovací (interpretovaný) jazyk. Velmi rychlý skriptovací jazyk, který využívá výrazně méně výkonu zařízení než jiné jazyky. Každá změna se projeví okamžitě v aplikaci, není potřeba ji totiž pokaždé kompilovat. Celý kód se tak exekuuje za běhu aplikace.

Codea pak kombinuje IDE; jak rozhraní, ve kterém se píše kód, tak i samotný engine, ve kterém se tento kód spouští. Pro tvorbu aplikací využívá právě jazyk LUA.

Codea má bohatou historii a docela početnou základnu fanoušků, kteří sdílí svoje aplikace a zkušenosti na diskuzním fóru vývojářů. V tomto ohledu se mi ale stále více líbí engine Love2d, který podporuje vývoj her pro iPad, ale potřebujete k tomu Mac. Množství zdrojů a dokumentace, ze které můžete čerpat, je však násobně větší. Vývoj aplikací v Codei je trochu odlišný, ale ve většině případů si vystačíme i s návody pro Love2d, které se dají přizpůsobit právě pro Codeu.

Kde začít a co k tomu budu potřebovat

Nachystejte si:

  • Dobrou náladu
  • Nějaké ty znalosti angličtiny
  • 379Kč na aplikaci Codea
  • Mraky trpělivosti

Zcela upřímně, nejsložitější je nakopat se do zadku a skutečně začít. Několik měsíců jsem pár hodin týdně trávil studiem materiálů, čtením knih, sledováním tutoriálů apod. Zpětně vzato už můžu říct, že tohle všechno je k ničemu. Stačí načíst úplné základy Lua a pak už se jen musíte zakousnout a pustit se do své první aplikace. Vše další pak lze studovat za pochodu.

Ze všeho, co jsem na toto téma přečetl, musím vyzdvihnout hlavně dvě anglické e-knihy od autora Ignatz: Lua pro začátečníky a Codea pro začátečníky, obě jsou zdarma. S trochou nadsázky bych řekl, že to je vše, co budete pro začátek potřebovat.

Pro zajímavost doporučuji proklikat wiki stránku tvůrců Codea, kde najdete spousty dalších materiálů. Ale moc do toho nezabředněte, nebo skončíte jako já a neposunete se nikam…

Dobrá věc, nikoli však povinnost, je kniha Beginning Lua Programming. Má krásných 644 stran a v mnoha ohledech už je docela zastaralá, např. návod jak rozchodit Lua na Palmu už asi neoceníme. Její výhodou je však to, že díky své komplexnosti může pomoct při řešení problémů. Např. když jsem v aplikaci kalkulačka hledal, jak vytvořit 2D tabulku. Chybu ve svém kódu jsem našel právě díky příkladu z této knihy. Internet však s největší pravděpodobností pomůže stejně. 🙂

C2664C75-3C46-4B82-8ED8-9D8EA44E6EF0

Jak začít s prvním projektem

Když jsem se o jazyk Lua začal zajímat, dávalo mi větší smysl programovat právě v enginu Love2d na mém MacBooku. Codea je však zajímavější výzvou a navíc jste v anketě na Twitteru rozhodli, že se mám věnovat programování na iPadu. 🙂 Co víc, aktuálně používám doma a na cestách výhradně iPad Pro, takže by to stejně byla jediná možná cesta.

Proč to zmiňuji? Spousta návodů a tipů online se točí právě kolem Love2d. Programování v Codei je však trochu jiné. Lua je stále Lua, ale způsob, jak vykreslit informace pomocí daného enginu je jiný.

Já ale nestrkám hlavu do písku a beru to jako výzvu. Kupuji tedy kurz na Udemy o programování her v Love2d a budu se snažit stejný projekt napsat pomocí Codei. Kurz obsahuje celkem tři hry. První z nich je jednoduchá hříčka “Chyť bublinu”. Tato hra je naprosto skvělá pro pochopení veškerých základů. Jak vytvořit základní logiku aplikace a jak vykreslit objekt na obrazovku iPadu.

Můj druhý projekt “Kalkulačka” už jsem si vymyslel sám. Pravděpodobně to je základní projekt v každém programovacím jazyce. Tuto aplikaci ještě nemám dokončenou, ale naučil jsem se díky ní hodně. Jak vykreslit větší množství objektů, jak identifikovat na který objekt jsem kliknul, jak fungují tabulky, jak pomocí cyklu procházet jednotlivé položky v tabulce… je toho hodně.

Má největší rada je, neučte se programovat podle lekcí v nějaké knize. Najděte nebo si vymyslete jednoduchou aplikaci a pomalu vytvářejte složitější a složitější struktury. Skvělým začátkem jsou dvě výše popsané knihy, které obsahují vše, co potřebujete vědět.

Co dál

Kupte si aplikaci Codea, stáhněte obě knihy od Ignatze a pusťte se do své první aplikace! V příštím článku se podělím o kódy ze svého prvního projektu a popíšu jeho jednotlivé části, abyste měli inspiraci do začátku.

Roman Mastalir
Zakladatel Eventee, platformy pro virtuální i tradiční konference. ? | Příležitostný jablečný blogger. ?

Napsat komentář