Společnost Apple se ráda prezentuje jako technologická a inovativní firma na poli hardwaru ale i softwaru. Pravdou je, že celá řada technologií nese právem patenty Applu, najdou se ale i technologie odkoupené, převzaté, případně zkopírované.
Dnešní díl bude nezvykle techničtější a pomalu otevře miniseriál o vývoji od A do Z. Jak se stát vývojářem, co to obnáší a jak začít od nuly až k vydané aplikaci v App Storu. Bývávalo to o dost snazší, ale dnes je iOS, tvOS a OSX regulerní a plnohodnotný byznys, který živí desítky tisíc vývojářů a firem po celém světě.
Sluha systému vs. Jailbreak
iOS je jako systém velmi rezervovaný a pro vývojáře do velké míry uzamčený. Narozdíl od Androidu, ve kterém lze značně zasahovat do systému jako takového. Toto omezení je dobré pro uživatele, ne tak pro vývojáře. Celá řada produktů a myšlenek se tak musí obejít bez realizace. Systém vám zkrátka nedovolí sáhnout na komponenty a funkce. A pokud ano, jen velmi omezeně a pod taktovkou Applu.
Tzv. vyblbnout se a pořádně si zaprogramovat lze pouze s jailbreaknutým zařízením. Jailbreak prolomil ochrany systému a otevřel ho chtivým vývojářům. Komunita kolem jailbreaku je početná, ale minoritní proti celému světu. A navíc s každým novým iOS je stále složitější prolamovat ochrany.
Ruku na srdce, po jailbreaku dnes touží jen málokdo. Riskovat, že si trvale zničíte iPhone v ceně mnoha tisíc, se chce málokomu. Pirátství v podobě her a aplikací zdarma je jen slabou motivací, a tak se vývojáři musí spokojit s omezenými možnostmi a zaměřit své myšlenky a inovativní nápady jiným směrem.
Siri
Zapomeňte na chvíli, že Siri stále není lokalizovaná do českého jazyka a pojďme si říci, co vlastně tato asistentka znamená pro vývojáře a uživatele. Siri byla představená s iPhonem 4s a iOS 5. Už tomu nějaký pátek bude a jeden by čekal, že vývoj Siri bude daleko rychlejší a efektivnější. Ale není tomu tak.
Siri je integrovaná v systému a do příchodu Apple Watch byla plně využívána pouze klukama z Applu. Až watchOS umožnil přístup k základnímu API, které vám analyzuje vstup (diktování) a na výstupu poskytne výsledek v textové formě. S trochou práce tak je možné Apple Watch použít pro rozšíření vašich aplikací i s podporou ovládání za pomoci diktování.
Kdy bude API uvolněné i do iOS a tvOS zatím není známo. Siri tak zůstává dlouholetým produktem, který tu není primárně pro vývojáře. Napadlo vás, že by bylo užitečné, kdyby ta a ta aplikace měla podporu Siri? Věřte, že to napadlo i autory vašich oblibených aplikací, mají ale svázané ruce a nezbývá jim než trpělivě čekat.
Xcode alias SDK
Co se Applu musí uznat, je podpora vývojářů. Celé SDK je k dispozici zdarma (po investici do MacBooku a zaplacení vývojářského účtu, které činí 99 dolarů ročně). Veškeré vývojové a ladící nástroje, dokumentace a plno návodů. Stejně jako oficiální vývojářské forum.
Xcode je vývojový nástroj pro editaci a tvorbu zdrojového kódu. A nejen to, je to celé vývojové prostředí, které pod sebe zahrnuje i řadů dalších podpůrných nástrojů a systémů. Jde o velmi komplexní prostředí a plnohodnotně ho ovládají pouze profesionální vývojáři.
Chcete si vyrobit malou hru na zkoušku? Potom doporučuji sáhnout po Unity narozdíl od nativního vývoje v Xcode. Zároveň je ale pravdou, že Apple má svoje API velmi dobře udělané a často pro vývojáře oddřel tu nejtěžší práci. Například zapojení Game Centeru do hry zabere pár řádků kódu. Stejně jako podporovat In-App nákupy, použít kameru, fotoaparát, 3D Touch atd. Odvážní zájemci nechť hledají Xcode v Mac App Storu.
Swift vs. Obj-C
Swift je jednou z posledních a dlouho připravovaných novinek. Přišel z nenadání a obrátil vývojářský svět naruby. Jedni ho zatracují, druzí milují, jak to s ním tedy doopravdy je? Apple je znám tím, že si dělá věci po svém a je nekompromisní. Swift přináší novou koncepci a filozofii do vývoje. Definuje nová pravidla a postupy a často se neohlíží na již známé a zavedené zvyklosti.
Je to s ním přesně tak, jak bylo řečeno. Můžete ho buď milovat nebo nenávidět. Jiný už nebude, nedá se čekat, že jeho vývoj bude reagovat na stížnosti uživatelů. Nepříjemné je, že je stále pod vývojem a prošel už několika změnami a verzemi. Udržovat zdrojový kód na poslední verzi je tak pracné a prodraží se to. Pár let to tak ještě bude.
Pořád jde ale o nejmodernější a nejnovější jazyk, na který já osobně nedám dopustit. Oproti programovacímu jazyku Objective-C, který byl dlouho jedinou možnou volbou. Obj-C měl svá pro, rozhodně ano, ale do iOS se dostal tak nějak náhodou, když Apple koupil společnost NeXT. To jim přivedlo Jobse zpět a pomohlo k vybudování OS X, z něhož se odvodil iOS.
OpenGL vs. Metal
Spouštíte-li nějakou grafickou aplikaci v iOS (typicky hru), můžete si být jisti, že je poháněna OpenGL knihovnou, případně Metalem. OpenGL je standard, jehož historie sahá hluboko do pravěku počítačů. Na mobilních telefonech zpravidla běží verze OpenGL ES. Právě z historických důvodů je dnes OpenGL přežitek a příchod Metalu je jako blesk z čistého nebe.
Metal je pokrokový, nový, moderní a vskutku výkonný. Zapomeňte na marketingové řeči, že Metal je až 10 krát rychlejší než OpenGL. V reálných případech to je daleko skromnější poměr. Přesto je Metal jasná jednička, filozoficky do velké míry odlišná od OpenGL.
Metal se navíc objevuje jako hlavní hrdina systému OS X El Capitan a tvOS. Dáme-li si všechny střípky dohromady, vyjde nám, že dnes je naprosto ideální doba, která přes Swift a Metal spojila všechny systémy Applu dohromady. Vytvořte jediný zdrojový kód a snadno ho distribujte na všech platformách. Snadné pro údržbu i rozvoj, dosud nebylo lepší a výhodnější doby.
Vývoj pro iOS je komplexní tvorba a vyžaduje celou škálu znalostí a nástrojů. V příštích dílech se podíváme podrobně na to, jak se dělá vývoj na iOS od A do Z.