IOS 5 architektura a SDK rámce

předchozí obsah následující
historie iOS připojení k vývojářskému programu Apple iOS 5

Naučte se SwiftUI a posuňte svůj vývoj iOS na další úroveň
SwiftUI Essentials-kniha iOS 14 Edition je nyní k dispozici v edicích Print (39,99$) a eBook (29,99$). Další informace…

koupit tisknáhled knihy

když vyvíjíme aplikace pro iPad, Apple nám neumožňuje přímý přístup k žádnému z tohoto hardwaru. Ve skutečnosti veškerá hardwarová interakce probíhá výhradně prostřednictvím řady různých vrstev softwaru, které fungují jako prostředníci mezi kódem aplikace a hardwarem zařízení. Tyto vrstvy tvoří to, co je známé jako operační systém. V případě iPadu je tento operační systém známý jako iOS.

abychom lépe porozuměli vývojovému prostředí iPadu, bude se tato kapitola podrobně zabývat různými vrstvami, které obsahují operační systém iOS 5, a rámce, které nám jako vývojářům umožňují psát aplikace iPad.

obsah

iPhone OS se stává iOS

před vydáním iPadu v roce 2010 byl operační systém běžící na iPhone obecně označován jako iPhone OS. Vzhledem k tomu, že operační systém používaný pro iPad je v podstatě stejný jako na iPhone, nemělo smysl pojmenovat jej iPad OS. Místo toho se Apple rozhodl přijmout obecnější a nespecifičtější název operačního systému. Vzhledem k zálibě Apple pro jména s předponou s písmenem “ i “ (iTunes, iBookstore, iMac atd.) Bohužel iOS je také název používaný společností Cisco pro operační systém na svých směrovačích (zdá se, že Apple má také zálibu v ignorování ochranných známek). Při vyhledávání na internetu pro iOS proto buďte připraveni vidět velké množství výsledků pro iOS společnosti Cisco, které nemají absolutně nic společného s iOS společnosti Apple.

přehled architektury iOS 5

jak již bylo zmíněno, iOS se skládá z řady různých softwarových vrstev, z nichž každá poskytuje programovací rámce pro vývoj aplikací, které běží nad základním hardwarem.

tyto vrstvy operačního systému lze zobrazit schematicky, jak je znázorněno na obrázku 4-1:

Architektura iOS 5

obrázek 4-1

některé diagramy navržené tak, aby graficky zobrazovaly zásobník softwaru iOS, ukazují další pole umístěné nad vrstvou Cocoa Touch, které označuje aplikace spuštěné v zařízení. Ve výše uvedeném diagramu jsme tak neučinili, protože by to naznačovalo, že jediným rozhraním dostupným pro aplikaci je Cocoa Touch. V praxi může aplikace přímo vyvolat kteroukoli z vrstev zásobníku a provádět úkoly na fyzickém zařízení.

to však znamená, že každá vrstva operačního systému poskytuje rostoucí úroveň abstrakce od složitosti práce s hardwarem. Jako vývojář iOS byste proto měli vždy hledat řešení svých programovacích cílů v rámcích umístěných ve vrstvách iOS vyšší úrovně, než se uchýlíte k psaní kódu, který sahá až do vrstev nižší úrovně. Obecně platí, že čím vyšší úroveň vrstvy naprogramujete, tím méně úsilí a méně řádků kódu budete muset napsat, abyste dosáhli svého cíle. A jak vám řekne každý zkušený programátor, čím méně kódu musíte napsat, tím méně příležitostí musíte zavést chyby.

Nyní, když jsme identifikovali různé vrstvy, které obsahují iOS 5, se nyní můžeme podrobněji podívat na služby poskytované každou vrstvou a odpovídající rámce, které nám tyto služby zpřístupňují jako vývojáři aplikací.

Cocoa Touch Layer

Cocoa Touch layer sedí v horní části zásobníku iOS a obsahuje rámce, které vývojáři aplikací iPad nejčastěji používají. Cocoa Touch je primárně napsán v Objective-C, je založen na standardním Mac OS X Cocoa API (jak se nachází na stolních a přenosných počítačích Apple) a byl rozšířen a upraven tak, aby vyhovoval potřebám hardwaru iPadu.

vrstva Cocoa Touch poskytuje následující rámce pro vývoj aplikací iPad:

UIKit Framework (UIKit.framework)

rámec UIKit je rozsáhlé a na funkce bohaté programovací rozhraní založené na Objective-C. Je to bezpochyby rámec, se kterým budete trávit většinu času prací. Celé knihy by mohly a pravděpodobně budou napsány pouze o rámci UIKit. Některé z klíčových vlastností UIKit jsou následující:

  • tvorba a správa uživatelského rozhraní (textová pole, tlačítka, štítky, barvy, písma atd.)
  • správa životního cyklu aplikace
  • zpracování událostí aplikace (např.
  • Multitasking
  • bezdrátový tisk
  • ochrana dat pomocí šifrování
  • funkce vyjmout, kopírovat a vložit
  • prezentace a správa webového a textového obsahu
  • zpracování dat
  • integrace mezi aplikacemi
  • Push notification ve spojení se službou Push Notification Service
  • místní oznámení (mechanismus, kterým aplikace běžící na pozadí může získat pozornost uživatele)
  • Přístupnost
  • akcelerometr, baterie, senzor přiblížení, interakce kamery a knihovny fotografií
  • rozpoznávání gest dotykové obrazovky
  • sdílení souborů (možnost zpřístupnit soubory aplikací uložené v zařízení prostřednictvím iTunes)
  • připojení mezi zařízeními typu peer to peer založené na modrém zubu
  • připojení k externím displejům

Chcete-li získat pocit bohatství tohoto rámce, stojí za to strávit nějaký čas procházením referenčního materiálu Apple UIKit, který je k dispozici online na adrese :

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/index.html

Map Kit Framework (MapKit.framework)

pokud jste s iPadem strávili nějaký znatelný čas, je pravděpodobné, že jste museli používat aplikaci Mapy více než jednou, buď získat mapu konkrétní oblasti, nebo vygenerovat pokyny k jízdě, abyste se dostali do zamýšleného cíle. Rámec Map Kit poskytuje programovací rozhraní, které umožňuje vytvářet funkce založené na mapách do vlastních aplikací. To vám umožní, mimo jiné, zobrazení posuvných map pro libovolné místo, zobrazení mapy odpovídající aktuální geografické poloze zařízení a anotaci mapy různými způsoby.

Push Notification Service

služba Push Notification umožňuje aplikacím informovat uživatele o události, i když aplikace v zařízení aktuálně není spuštěna. Od zavedení této služby se nejčastěji používají aplikace založené na zprávách. Typicky, když je nejnovější zprávy služba vygeneruje zprávu na zařízení s novinkou titulek a poskytnout uživateli možnost načíst odpovídající zprávy app přečíst další podrobnosti. Toto upozornění je obvykle doprovázeno zvukovým upozorněním a vibracemi zařízení. Tato funkce by měla být používána šetrně, aby nedošlo k otravě uživatele častými přerušeními.

Message UI Framework (MessageUI.framework)

rámec uživatelského rozhraní zpráv poskytuje vše, co potřebujete k tomu, aby uživatelé mohli vytvářet a odesílat e-mailové zprávy z vaší aplikace. Ve skutečnosti rámec dokonce poskytuje prvky uživatelského rozhraní, pomocí kterých uživatel zadává informace o adresování e-mailu a obsah zprávy. Alternativně mohou být tyto informace předdefinovány ve vaší aplikaci a poté zobrazeny, aby uživatel mohl před odesláním upravit a schválit.

adresář UI Framework (AddressUI.framework)

vzhledem k tomu, že klíčovou funkcí iPadu je komunikační zařízení a digitální asistent, nemělo by být příliš překvapením, že celý rámec je věnován integraci dat adresáře do vašich vlastních aplikací. Primárním účelem rámce je umožnit vám přístup, zobrazení, úpravy a zadávání kontaktních informací z adresáře iPad z vlastní aplikace.

Hra Kit Framework (GameKit.rámec)

rámec Game Kit poskytuje připojení peer-to-peer a hlasovou komunikaci mezi více zařízeními a uživateli, což umožňuje těm, kteří používají stejnou aplikaci, komunikovat. Když byla tato funkce poprvé představena, společnost Apple předpokládala, že bude primárně použita ve hrách pro více hráčů (tedy výběr jména), ale možné aplikace pro tuto funkci jasně přesahují vývoj her.

iad Framework (iAd.framework)

účelem rámce iAd je umožnit vývojářům zahrnout bannerovou reklamu do svých aplikací. Všechny reklamy jsou poskytovány vlastní reklamní službou společnosti Apple.

Event Kit UI Framework

rámec event Kit UI byl představen v iOS 4 a je poskytován, aby umožnil přístup k událostem kalendáře a jejich úpravu přímo z aplikace.

Rámec Účtů (Účty.framework)

iOS 5 zavádí koncept systémových účtů. Ty v podstatě umožňují ukládat informace o účtu pro jiné služby do zařízení iOS a přistupovat k nim z kódu aplikace. V současné době jsou systémové účty omezeny na účty Twitter, i když další služby, jako je Facebook, se pravděpodobně objeví v budoucích verzích iOS. Účelem rámce účtů je poskytnout API umožňující aplikacím přístup a správu těchto systémových účtů.

Twitter Framework (Twitter.rámec)

rámec Twitter umožňuje integraci Twitteru, které mají být přidány do aplikací. Rámec funguje ve spojení s rámcem účtů, aby získal přístup k informacím o účtu Twitter uživatele.

mediální vrstva iOS

úlohou mediální vrstvy je poskytnout iOS zvukové, video, animační a grafické funkce. Stejně jako u ostatních vrstev obsahujících zásobník iOS Obsahuje mediální vrstva řadu rámců, které mohou být použity při vývoji aplikací pro iPad. V této části se podíváme na každou z nich.

Core Video Framework (CoreVideo.framework)

rámec Core Video poskytuje podporu vyrovnávací paměti pro rámec Core Media. I když to mohou využít vývojáři aplikací, obvykle není nutné tento rámec používat.

Základní Textový Rámec (CoreText.framework)

iOS Core Text framework je API založené na C, které usnadňuje manipulaci s pokročilým rozvržením textu a požadavky na vykreslování písma.

Image I / O Framework (ImageIO.framework)

rámec Image I / O, jehož účelem je usnadnit import a export obrazových dat a obrazových metadat, byl zaveden v iOS 4. Rámec podporuje širokou škálu obrazových formátů včetně PNG, JPEG, TIFF a GIF.

Assets Library Framework (AssetsLibrary.framework)

Knihovna aktiv poskytuje mechanismus pro lokalizaci a načítání souborů videa a fotografií umístěných v zařízení iPad. Kromě přístupu k existujícím obrázkům a videím tento rámec také umožňuje ukládat nové fotografie a videa do standardního fotoalba zařízení.

Základní Grafický Rámec (CoreGraphics.framework)

základní grafický rámec iOS (jinak známý jako Quartz 2D API) poskytuje lehký dvourozměrný vykreslovací engine. Funkce tohoto rámce zahrnují tvorbu a prezentaci dokumentů PDF, vektorovou kresbu, průhledné vrstvy, kresbu založenou na cestě, vyhlazené Vykreslování, manipulaci s barvami a správu, vykreslování obrázků a přechody. Ti, kteří znají Quartz 2D API běžící na MacOS X, s potěšením zjistí, že implementace tohoto API je na iOS stejná.

Core Image Framework (CoreImage.framework)

nový rámec představený s iOS 5 poskytuje sadu funkcí filtrování a manipulace s videem a obrázky pro vývojáře aplikací.

Quartz Core Framework (QuartzCore.framework)

účelem frameworku Quartz Core je poskytnout možnosti animace na iPadu. Poskytuje základ pro většinu vizuálních efektů a animací používaných rámcem UIKit a poskytuje programovací rozhraní založené na Objective-C pro vytváření specializovaných animací v aplikacích iPad.

OpenGL ES framework (OpenGLES.rámec)

po mnoho let je průmyslovým standardem pro vysoce výkonné 2D a 3D grafické kreslení OpenGL. Původně vyvinutý nyní zaniklý Silicon Graphics, Inc (SGI) během 1990 ve formě GL, otevřená verze této technologie (OpenGL) je nyní v péči neziskové konsorcium zahrnující řadu významných společností, včetně Apple, Inc., Intel, Motorola a ARM Holdings.

OpenGL pro vestavěné systémy (ES) je lehká verze úplné specifikace OpenGL navržená speciálně pro menší zařízení, jako je iPad.

iOS 3 nebo novější podporuje OpenGL ES 1.1 a 2.0 na některých modelech iPhone(například iPhone 3GS a iPhone 4). Starší verze iOS a starších modelů zařízení podporují pouze OpenGL ES verze 1.1.

GLKit Framework (GLKit.framework)

GLKit framework je API založené na Objective-C určené k usnadnění vytváření aplikací založených na OpenGL ES.

Newstandkit Framework (Newstandkit.framework)

aplikace Kiosek je nová funkce iOS 5 a je určena jako centrální místo pro uživatele, aby získali přístup k novinám a časopisům. Rámec Newstandkit umožňuje vývoj aplikací, které využívají tuto novou službu.

podpora zvuku iOS

iOS je schopen podporovat zvuk ve formátech AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM, Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 a Aes3-2003 prostřednictvím podpory poskytované následujícími rámci.

av Foundation framework (AVFoundation.framework)

rámec založený na Objective-C navržený tak, aby umožňoval přehrávání, nahrávání a správu zvukového obsahu.

Základní Zvukové Rámce (CoreAudio.rámec, AudioToolbox.rámec a AudioUnit.framework)

rámce, které obsahují Core Audio pro iOS, definují podporované typy zvuku, přehrávání a nahrávání zvukových souborů a streamů a také poskytují přístup k vestavěným jednotkám pro zpracování zvuku zařízení.

Open Audio Library (OpenAL)

OpenAL je multiplatformní technologie používaná k poskytování vysoce kvalitních 3D zvukových efektů (označovaných také jako poziční zvuk). Poziční zvuk může být použit v různých aplikacích, i když se obvykle používá k poskytování zvukových efektů ve hrách.

Media Player Framework (MediaPlayer.framework)

rámec iOS Media Player je schopen přehrávat video .mov, .mp4,.m4v, a .Formáty 3gp v různých kompresních standardech, rozlišeních a snímkových frekvencích.

Core Midi Framework (CoreMIDI.framework)

představený v iOS 4, Core MIDI framework poskytuje API pro aplikace pro interakci se zařízeními kompatibilními s MIDI, jako jsou syntezátory a klávesnice, prostřednictvím konektoru doku iPadu.

vrstva iOS Core Services

vrstva iOS Core Services poskytuje většinu základů, na kterých jsou dříve odkazované vrstvy postaveny, a skládá se z následujících rámců.

Adresář Framework (AddressBook.framework)

adresář framework poskytuje programový přístup k databázi kontaktů iPad Address Book umožňující aplikacím načíst a upravit položky kontaktů.

CFNetwork Framework (CFNetwork.framework)

rámec CFNetwork poskytuje rozhraní založené na C ke zásobníku síťových protokolů TCP/IP a přístup na nízké úrovni k soketům BSD. To umožňuje zápis kódu aplikace, který pracuje se servery HTTP, FTP a doménových jmen, a navázání bezpečných a šifrovaných připojení pomocí Secure Sockets Layer (SSL) nebo Transport Layer Security (TLS).

Základní Datový Rámec (CoreData.framework)

tento rámec je poskytován pro usnadnění vytváření modelování a ukládání dat v aplikacích založených na modelu-View-Controller (MVC). Použití rámce Core Data významně snižuje množství kódu, který je třeba zapsat pro provádění běžných úkolů při práci se strukturovanými daty v rámci aplikace.

Základní Základový Rámec (CoreFoundation.framework)

rámec Core Foundation je rámec založený na C, který poskytuje základní funkce, jako jsou datové typy, manipulace s řetězci, správa dat surových bloků, manipulace s adresami, vlákna a smyčky běhu, datum a časy, základní manipulace s XML a komunikace portů a soketů. Další funkce XML nad rámec těch, které jsou součástí tohoto rámce, jsou poskytovány prostřednictvím knihovny libXML2. I když se jedná o rozhraní založené na C, většina možností rámce Core Foundation framework je k dispozici také s obaly Objective-C prostřednictvím rámce Foundation.

Základní Mediální Rámec (CoreMedia.framework)

Core Media framework je základ nižší úrovně, na kterém je postavena av základová vrstva. Zatímco většina zvukových a obrazových úkolů může a skutečně by měla být prováděna pomocí rámce AV Foundation na vyšší úrovni, přístup je také poskytován pro situace, kdy vývojář aplikací pro iOS vyžaduje nižší úroveň kontroly.

Základní Telefonní Rámec (CoreTelephony.framework)

základní telefonní rámec iOS je poskytován tak,aby umožňoval aplikacím dotazovat zařízení na informace o aktuálním poskytovateli služeb mobilních telefonů a přijímat oznámení o událostech souvisejících s telefonií.

Eventkit Framework (EventKit.framework)

API navržené tak, aby poskytovalo aplikacím přístup k kalendáři a alarmům v zařízení.

Rámec Nadace (Nadace.framework)

rámec Foundation je standardní rámec Objective-C, který bude znám těm, kteří programovali v Objective-C na jiných platformách (pravděpodobně Mac OS X). V podstatě, to se skládá z obalů Objective-C kolem velké části základního základového rámce založeného na C.

Core Location Framework (CoreLocation.framework)

rámec Core Location umožňuje získat aktuální geografickou polohu zařízení (zeměpisná šířka, délka a nadmořská výška) a čtení kompasu z vašich vlastních aplikací. Metoda používaná zařízením k poskytování souřadnic bude záviset na datech dostupných v době, kdy jsou informace požadovány, a na hardwarové podpoře poskytované konkrétním modelem iPadu, na kterém je aplikace spuštěna (GPS a kompas jsou uváděny pouze na nejnovějších modelech). To bude buď založeno na odečtech GPS, datech sítě Wi-Fi nebo triangulaci buněčné věže(nebo nějaké kombinaci těchto tří).

Mobile Core Services Framework (MobileCoreServices.framework)

rámec iOS Mobile Core Services poskytuje základ pro mechanismus jednotných identifikátorů typu (UTI) společnosti Apple, systém pro specifikaci a identifikaci datových typů. Společnost Apple definovala širokou škálu předdefinovaných identifikátorů, včetně takových různých datových typů, jako je text, RTF, HTML, JavaScript, PowerPoint .soubory ppt, obrázky Photoshopu a soubory MP3.

Rámec Sady Obchodů (StoreKit .framework)

účelem rámce Store Kit je usnadnit obchodní transakce mezi vaší aplikací a Apple App Store. Před verzí 3.0 systému iOS bylo možné účtovat zákazníkovi aplikaci pouze v okamžiku, kdy ji zakoupili v App Store. iOS 3.0 představil koncept „nákupu v aplikaci“, kdy může být uživateli dána možnost provádět další platby přímo z aplikace. To může například zahrnovat implementaci modelu předplatného pro aplikaci, nákup dalších funkcí nebo dokonce nákup rychlejšího auta pro jízdu v závodní hře.

SQLite knihovna

umožňuje lehkou databázi založenou na SQL, která má být vytvořena a manipulována z aplikace iPad.

System Configuration Framework (SystemConfiguration.framework)

rámec Konfigurace systému umožňuje aplikacím přistupovat k nastavení konfigurace sítě zařízení a zjišťovat informace o „dosažitelnosti“ zařízení (například zda je aktivní připojení Wi-Fi nebo buněk a zda a jak může být provoz směrován na server).

Quick Look Framework (QuickLook.rámec)

rámec Quick Look poskytuje užitečný mechanismus pro zobrazení náhledů obsahu typů souborů načtených do zařízení (obvykle prostřednictvím internetového nebo síťového připojení), pro které aplikace již neposkytuje podporu. Typy formátů souborů podporované tímto rámcem patří iWork, Microsoft Office document, Rich Text Format, Adobe PDF, obrazové soubory, veřejné.textové soubory a oddělené čárkami (CSV).

vrstva iOS Core OS

vrstva Core OS zaujímá spodní polohu zásobníku iOS a jako taková sedí přímo na horní části hardwaru zařízení. Vrstva poskytuje celou řadu služeb, včetně sítí na nízké úrovni, přístupu k externímu příslušenství a obvyklým základním službám operačního systému, jako je správa paměti, manipulace se souborovým systémem a vlákna.

Accelerate Framework (Accelerate.framework)

Accelerate Framework poskytuje hardwarově optimalizované API založené na C pro provádění komplexních a velkých úloh matematiky, vektoru, digitálního zpracování signálu (DSP) a výpočtů zpracování obrazu.

Externí Příslušenství Framework (ExternalAccessory.framework)

poskytuje možnost vyslýchat a komunikovat s externím příslušenstvím připojeným fyzicky k iPadu přes 30kolíkový dokovací konektor nebo bezdrátově přes Bluetooth.

Bezpečnostní Rámec (Zabezpečení.framework)

bezpečnostní rámec iOS poskytuje všechna bezpečnostní rozhraní, která byste očekávali na zařízení, které se může připojit k externím sítím, včetně certifikátů, veřejných a soukromých klíčů, zásad důvěryhodnosti, klíčenek, šifrování, digestů a hash-based Message Authentication Code (HMAC).

System (LibSystem)

jak jsme již zmínili, iOS je postaven na základech podobných Unixu. Systémová součást vrstvy Core OS poskytuje téměř stejné funkce jako jakýkoli jiný operační systém UNIX. Tato vrstva obsahuje jádro operačního systému (založené na Machově jádru vyvinutém Carnegie Mellon University) a ovladače zařízení. Jádro je základem, na kterém je postavena celá platforma iOS a poskytuje rozhraní nízké úrovně podkladovému hardwaru. Jádro je mimo jiné odpovědné za přidělování paměti, správu životního cyklu procesu, vstup/výstup, komunikaci mezi procesy, správu vláken, síťování na nízké úrovni, přístup k souborovému systému a správu vláken.

jako vývojář aplikací je váš přístup k systémovým rozhraním omezen z bezpečnostních a stabilních důvodů. Rozhraní, která máte k dispozici, jsou obsažena v knihovně založené na C s názvem LibSystem. Stejně jako u všech ostatních vrstev zásobníku iOS by tato rozhraní měla být použita pouze v případě, že jste si naprosto jisti, že neexistuje způsob, jak dosáhnout stejného cíle pomocí rámce umístěného ve vyšší vrstvě iOS.

Naučte se SwiftUI a posuňte svůj vývoj iOS na další úroveň
SwiftUI Essentials-kniha iOS 14 Edition je nyní k dispozici v edicích Print (39,99$) a eBook (29,99$). Další informace…

koupit tisknáhled knihy

předchozí obsah následující
historie iOS připojení k vývojářskému programu Apple iOS 5

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.