iPhone: Přehled iPhone OS

iPhone OS sestává z operačního systému a technologií které se používají pro běh aplikací nativně na iPhone a iTouch. I když sdílí iPhone OS mnoho vlastností a tchnologií s Mac OS X, byl navržen především pro potřeby dynamického (mobilního) prostředí, v nemž jsou potřeby uživatele trochu odlišné. Stávající vývojáři pro Mac OS X v něm najdou spoustu známých technologií ale také technologie dostupné jen na iPhone OS, jako je rozhraní Multi-Touch a podpora akcelerometru.

iPhone Touch

iPhone SDK obsahuje kód, informace a nástroje potřebné k vývoji, testování, běhu, spravování a odlaďování aplikací pro iPhone OS. Nástroje XCode byly aktualizovány aby podporovaly vývoj pro iPhone OS. Kromě základního prostředí pro úpravu, překlad a spravování kódu nabízí XCode také podporu testování vašich aplikací přímo na iPhone nebo iPod Touch. XCode vám také dovolí spustit aplikace v iPhone simulátoru, což je platforma která napodobuje prostředí iPhone OS na vašem Macintoshi.

Tento článek uvádí obecný přehled základních vlastností iPhone OS a pomůže vám tak se zorientovat v nové platformě.

Vrstvy technologií v iPhone OS

iPhone OS, jako základní architektura a mnoho technologií kolem něj je podobných těm v Mac OS X. Jádro iPhone OS je založeno na variantě stejného jádra Mach jaké lze najít v Mac OS X. Nad tímto jádrem leží vrstva služeb která se používá k implementaci aplikací platformy. Obrázek 1 ukazuje přehled těchto vrstev.

Vrstvy technologií v iPhone OS

Toto vrstvení vám dává možnost se rozhodnout jak implementovat kód. Například vrstvy Core OS a Core Services obsahují základní rozhraní iPhone OS, včetně těch pro přístup k souborům, nízkoúrovňovým datovým typům, službám Bonjour, síťovým zásuvkám atd. Tato rozhraní jsou většinou napsaná v C a obsahují technologie jako je Core Foundation, CFnetwork, SQLite a přístup k POSIX vláknům a UNIX zásuvkám, mimo jiné.

Jak se pohybujete k vyšším vrstvám, můžete najít pokročilejší technologie které používají směs rozhraní napsaných v C a Objective-C. Například vrstva Media obshuje základní technologie podporující 2D a 3D vykreslování, audio a video. Tato vrstva zahrnuje technologie napsané v C jako je OpenGL ES, Quartz a Core Audio. Také obsahuje Core Animation, což je pokročilý animační engine napsaný v Objective-C.

Ve vrstvě Cocoa Touch používá většina technologií Objective-C. Knihovny v těchto vrstvách poskytují základní infrastrukturu pro vaši aplikaci. Například knihovna Foundation poskytuje objektově orientovanou podporu kolekcí, správu souborů, síťových operací a další. Knihovna UIKit poskytuje vizuální strukturu vaší aplikaci, včetně tříd pro tvorbu oken, pohledů, ovládacích prvků a manažerů těchto tříd. Ostatní knihovny vám na této úrovni umožňují přístup ke kontaktním informacím a fotografii uživatele a k akcelerometru a ostatním hardwarovým modulům.

Počátečním bodem každého nového projektu je vrstva Cocoa Touch a částečně i knihovna UIKit. Při rozhodování jaké další technologie použít se doporučuje začít s knihovnami ve vyšších vrstvách a podle potřeby jít níže. Knihovny ve vyšších vrstvách ulehčují podporu standardního systémového chování s minimálním usilím z vaší strany. Jediná situace kdy byste se meli spolehnout na knihovny nižší úrovně je jedině tehdy, když chcete implementovat vlastní chování které není dostupné na vyšší úrovni.

Psaní kódu pro iPhone OS

iPhone SDK podpruje tvorbu grafických aplikací které běží nativně na iPhone OS. Aplikace které vytvoříte jsou umístěny na Home (domovské) obrazovce spolu s ostatními systémovými aplikacemi jako je Photos, Weather a Clock. Poté co je vaše aplikace spuštěna, je kromě jádra a pár systémových démonů, jedinou aplikací která v systému běží. Za běhu zabírá vaše aplikace celou obrazovku a je středem pozornosti uživatele. Když uživatel zmáčkne tlačítko Home, vaše aplikace se ukončí a systém zobrazí Home obrazovku. Mít celý systém pro sebe je výhodné protože vám to umožňuje přístup k všem systémovým prostředkům. Můžete tak využít vestavěných hardwarových modulů jako jsou akcelerometry, fotoaparát a grafický modul jen pro svůj kód.

Díky tomu že způsob jakým uživatelé pracují s iPhone a iPod Touch je zásadně odlišný od způsobu jaký pracují s Mac OS X, musít být také návrh vašich aplikací odlišný. V aplikaci pro iPhone neexistuje žádný koncept separátních oken pro zobrazování obsahu. Všechna data se zobrazují v jediném okně. To vedlo k vytvoření nových pohledů a ovládacích prvků které vám umožňují uspořádaně prezentovat data. Navíc můžete čekat že mnoho standarních pohledů a prvků se chová trochu odlišně od jejich protějšků v Mac OS X. Většina z těchto změn by měla být zřejmých ale některé z nich vás mohou donutit změnit způsob uspořádání a prezentace vašich dat.

Model obsluhy událostí v iPhone OS je také významně odlišný od tradičních desktopových aplikací. Místo spoléhání se na tradiční události myši a klávesnice představuje iPhone OS myšlenku dotykových událostí. Událost dotyku může nastat kdykoli a v kombinaci s jednou či více událostí dotyku. Dotyky lze použít k detekování jednoduchých interakcí s obsahem , jako je označování nebo přetahování prvků, nebo je lze použít k detekování složitých gest a interakcí, jako jsou cvrnknutí nebo pinch-open a pinch-close (používané, například k zoomování v aplikaci Photos).

Kromě základní struktury vaší aplikce budete také muset přemýšlet o tom jak ji uživatelé budou používat. iPhone aplikace by měly být jednoduché a účelné. Pamatujte že užvaelé kteří jsou v pohybu chtějí mít informace rychle a nechtějí strávit zbytečně čas hledáním přes několik obrazovek. Poskytnutí jednodchého návrhu který zvýrazní uživateli potřebné informace je důležité. U her a ostatních zábavných aplikací byste měli zvážit jak budou moci chtít uživatelé s vasší aplikaci komunikovat a yužít technologií jako jsou akcelerometry a fotoaparát tam de je to vhodné.

jakmile začnete s vývojem, prvními knihovnami které budete chtít použít jsou knihovny Foundation a UIKit. Tyto knihovny poskytují klíčové služby používané všemi iPhone aplikacemi. Postupně jak vylepšujete svoji aplikaci, měli byste se poohleédnout i po ostatních knihovnách v systému a podívat se co vám nabízeji. Dokumentace ke každé knihovně obsahuje odkazy na podstatné materiály které vám pomohou dovědět se více o tom jak danou knihovnu použít.

Kde začít

Vytváření jednoduchých aplikací které běží na iPhone OS je relativně snadné pomocí šamblon dostupných v XCode, ale vytváření aplikací které dělají něco užitečného a vypadají hezky vyžaduje strávit nějaký čas čtením dostupné dokumentace. Minimálně byste měli strávit nějaký čas čtením článků na iPhone Dev Center, které popisují nástroje a proces vytváření aplikací.

Pokud jste úplnými nováčky v iPhone OS a Mac OS X, pak je čas strávený snahou porozumět základním návrhovým vzorům a konvencím iPhone OS velmi důležitý k tomu abyste byli schopni psát kód pro tuto platformu. Aplikace jsou na iPhone OS nejvýkonnější pokud využívají síly knihoven. Pokud strávíte čas snahou obejít základní chování knihoven, můžete shledat psaní vaší aplikace mnohem obtížnějším než pokud se jednoduše naučíte používat základní návrhové vzory. Základní informace které potřebuje každý vývojář pro iPhone vědět jsou v Cocoa Fundamentals Guide. Tento dokument pokrývá základy jazyka Objective-C a programovací zvyklosti a návrhové vzory použité pro UIKit a mnoho jiných systémových knihoven.

Poté co porozumíte základním konvencím které se používají pro tvorbu iPhne aplikací, můžete se odkazovat na iPhone OS Programming Guide kde lze najít detaily o vývojovém procesu. tato kniha poskytuje klíčové koncepty a specifické informace tom jak psát aplikace pro iPhone, včetně příkladů jak zobrazit uživatelské rozhraní, obsloužit události a využít klíčových vlastností iPhone OS. Také popisuje celý proces vývoje a vysvětluje jak použít XCode k sestavení a spuštění vašich aplikací.

Kromě iPhone OS Programming Guide byste si také měli procházet dostupný ukázkový kód. iPhone OS obsahuje balík s počtem plnohodnotných příkladů které vám ukáží jak použít dostupné technologie k vytvoření aplikaci. Příklady můte použít jako výchozí bod pro vaše vlastní aplikace nebo do nich můžete nahlížet pokud chcete vědět víc o specifických funkcích.

iPhone, Obsah | Dr3dweRkZ | iPhone, Vývojářské nástroje pro iPhone OS