iOS (Apple)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

iOS je mobilní operační systém vytvořený společností Apple Inc. Původně byl určen pouze pro mobilní telefony iPhone, později se však začal používat i na dalších mobilních zařízeních této firmy, jako jsou iPod Touch, iPad a nejnověji Apple TV.

iOS 7 na iPhonu 5S

Název[editovat | editovat zdroj]

Pojmenování iOS se používá až od čtvrté verze tohoto systému. Do té doby byl oficiálně nazván iPhone OS. Nový název iOS je v souladu s politikou pojmenovávání produktů (iPod, iPhone, iPad, …). Ihned po zveřejnění nového názvu iOS byla na Apple podána žaloba od společnosti Cisco Systems, která název IOS používá pro označení softwaru na svých routerech. Aby zabránila žalobě, licencovala si společnost Apple použití tohoto názvu pro svá zařízení.

Architektura[editovat | editovat zdroj]

iOS je odlehčenou verzí operačního systému Mac OS X, používaného v počítačích společnosti Apple. Jedná se tedy o systém UNIXového typu. Jelikož je určen pro mobilní zařízení, neobsahuje veškerou funkcionalitu OS X, na druhou stranu ale přidává podporu dotykového ovládání. Systém se dělí na čtyři základní vrstvy, které zajišťují základní funkčnost a poskytují vývojářům API a frameworky potřebné k vývoji aplikací.

Vrstva Cocoa Touch[editovat | editovat zdroj]

Tato vrstva obsahuje nejdůležitější frameworky při vývoji aplikací. Technologie dostupné v této vrstvě poskytují infrastrukturu pro implementaci grafického rozhraní aplikace a interakci s uživatelem a poskytuje vysokoúrovňové systémové služby. Při vývoji aplikací je vhodné začínat právě s touto vrstvou a nižší používat pouze v případě potřeby.

Vysokoúrovňové služby Cocoa Touch[editovat | editovat zdroj]

Multitasking[editovat | editovat zdroj]

Až do verze iOS 4.0 nebylo možné psát aplikace, které by byly schopné běhu na pozadí. Stisk tlačítka Home vyvolal ukončení aplikace. iOS 4.0 sice nepřinesl možnost plnohodnotného běhu na pozadí, avšak poskytuje služby, které umožňují provádění některých činností, i když aplikace neběží na popředí.

Ochrana dat[editovat | editovat zdroj]

Aplikace, které ukládají citlivá data, mohou využívat vestavěné podpory šifrování. Pokud aplikace označí soubor jako chráněný, systém ho automaticky ukládá na disk v zašifrované podobě. Dokud je zařízení uzamčené, obsah souboru je nedostupný jak aplikaci, tak případnému útočníkovi. Poté, co uživatel zařízení odemkne, je vygenerován dešifrovací klíč, který aplikaci umožní soubor přečíst. Zařízení však (i v iOS 6.1) lze snadno odemknout a volat i bez znalosti hesla.[1]

Push notifikace[editovat | editovat zdroj]

Od verze 3.0 umožňuje iOS posílání tzv. push notifikací. Tento mechanismus umožňuje upozorňovat uživatele na nové informace, aniž by musela být daná aplikace právě spuštěna. Uživateli je možné zobrazit krátkou textovou informaci, přehrát zvuk či aktualizovat číselnou značku (badge, odznak) na ikoně aplikace. Iniciovat odeslání push notifikace musí server výrobce aplikací, který následně komunikuje se servery společnosti Apple, které se pokusí o doručení na mobilní zařízení (doručení není garantováno) pomocí jeho unikátního identifikátoru.

Lokální notifikace[editovat | editovat zdroj]

Verze iOS 4 a vyšší doplňují mechanismus push notifikací o tzv. lokální notifikace. Ty nevyžadují žádné připojení k serveru a údaje o notifikacích ukládají lokálně. Aplikace aktuálně běžící v pozadí (např. autonavigace) mohou v případě potřeby upozornit uživatele na důležité události (např. o blížící se zatáčce) ihned. Dále je také možné naplánovat notifikaci na určitý datum a čas. Taková notifikace je již uložena v systému a aplikace v požadovaný čas nemusí běžet, aby se uživateli dané upozornění zobrazilo.

Rozpoznávání gest[editovat | editovat zdroj]

V iOS před verzí 3.2 bylo nutné ručně zachytávat a zpracovávat dotykové události a komplikovaně rozpoznávat gesta. Od verze 3.2 však existuje možnost systémového rozpoznávání definovaných gest a jejich předávání aplikaci. Možná gesta jsou ťuknutí (možno i vícenásobné), sevření a rozevření prstů, přetahování objektů, švihnutí (swipe), rotace, dlouhý stisk. Dále je možné nadefinovat rozpoznávání vlastních gest.

Sdílení souborů[editovat | editovat zdroj]

Aplikace může poskytnout přístup ke svým datům pomocí programu iTunes. Pokud to aplikace umožní, lze přes iTunes nahrávat soubory do definované složky v aplikaci a soubory z ní naopak kopírovat do počítače. Tato služba neumožňuje sdílení dokumentů mezi aplikacemi.

Peer to peer[editovat | editovat zdroj]

Od verze 3.0 je možné používat peer-to-peer konektivitu mezi více zařízeními pomocí technologie Bluetooth. Tato funkcionalita je využívána převážně k tvorbě her pro více hráčů, ale je možné ji využít i jinak.

Standardní systémové view controllery[editovat | editovat zdroj]

Mnoho frameworků použitých v systému používá standardizované komponenty. V rámci zachování konzistentního uživatelského zážitku je proto vhodné používat tyto standardizované komponenty i v aplikacích třetích stran. Mezi hlavní controller patří Adresář (zobrazení kontaktních informací), Kalendář, Psaní e-mailu/SMS, Otevření souboru, Výběr obrázku z knihovny/fotoaparátu apod.

Podpora externích zobrazovacích zařízení[editovat | editovat zdroj]

Od verze 3.2 je možné připojit pomocí speciálního příslušenství externí zobrazovací zařízení. Takovéto externí zařízení se pak používá jako druhé okno, kam aplikace zobrazuje obsah. Pokud je třeba používat režim zrcadlení (mirror), je nutné zobrazovat stejný obsah do dvou oken zároveň.

Frameworky dostupné v Cocoa Touch[editovat | editovat zdroj]

Framework Použití
Address Book UI Framework Tento framework obsahuje standardizované rozhraní pro zobrazování a úpravu kontaktních informací.
Event Kit UI Framework Obsahuje controllery pro práci s událostmi (položky v kalendáři)
iAd Framework Umožňuje zobrazení bannerové reklamy v aplikaci.
Game Kit Framework Poskytuje podporu pro peer to peer komunikaci mezi zařízeními pomocí protokolu Bonjour.
Map Kit Framework Umožňuje používat mapovou komponentu pro zobrazovaní map, případně dalších informací o umístění.
Message UI Framework Umožňuje vytvářet a odesílat e-maily a SMS zprávy pomocí standardizovaných uživatelských rozhraní.

Media layer[editovat | editovat zdroj]

Tato vrstva umožňuje vytváření graficky a zvukově propracovaných aplikací. Tyto technologie umožňují plynulé přehrávání animací, videí a zvuků.

Grafické technologie[editovat | editovat zdroj]

Kvalitní grafika je důležitou součástí systému iOS. Nejjednoduššího a nejefektivnějšího vytváření aplikací je možné dosáhnout používáním standardních předrenderovaných obrázků a komponent a nechat systém, aby vše obstaral, nicméně v některých situacích není toto řešení možné. V takových situacích je možné použít následující technologie.

Technologie Popis
Core Graphics (Quartz) Stará se o kreslení nativních 2D vektorů a renderování obrázků
Core Animation Pokročilá podpora animací
OpenGL ES Hardwarově akcelerované vykreslování 2D/3D objektů
Core Text Sofistikovaný engine pro vykreslování textu
Image I/O Čtení a zápis většiny rozšířených grafických formátů
The Assets Library framework Přístup k obrázkové knihovně uživatele

Technologie pro zvuk[editovat | editovat zdroj]

Tyto technologie umožňují přehrávat kvalitní audiozáznamy a používat vibrace (na zařízeních, které to umožňují). Systém nabízí několik možností, jak přehrávat či zaznamenávat zvuk. Vysokoúrovňové frameworky velice zjednodušují vývoj, avšak neumožňují takovou míru ovlivňování operací. Následující frameworky jsou seřazeny a od vysokoúrovňových po nízkoúrovňové.

  • The Media Player framework – poskytuje přístup k iTunes knihovně a přehrávaní skladeb
  • AV Foundation – poskytuje sadu Objective-C rozhraní pro správu přehrávání a záznamu zvuku
  • OpenAL – poskytuje sadu multiplatformních rozhraní pro pozicovaný zvuk (3D)
  • Core Audio framework – poskytuje rozhraní pro přehrávání a záznam zvuků, umožňuje přehrávat systémové zvuky a upozornění, vibrovat a přehrávat vícekanálový či streamovaný zvuk

iOS podporuje tyto zvukové formáty: AAC, ALAC, A-law, IMA/ADPCM (IMA4), Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-2003

Technologie pro video[editovat | editovat zdroj]

Tyto technologie umožňují přehrávat kvalitní video záznam nebo je pořizovat (na zařízeních, které to umožňují) a pracovat s nim v aplikaci. Systém nabízí několik možností, jak přehrávat či zaznamenávat video. Vysokoúrovňové frameworky velice zjednodušují vývoj, avšak neumožňují takovou míru ovlivňování operací. Následující frameworky jsou seřazeny od vysokoúrovňových po nízkoúrovňové.

  • Media Player framework – umožňuje přehrávání videí (buď přes celou obrazovku, nebo pouze částečně)
  • AV Foundation – sada Objective-C rozhraní pro záznam a přehrávání videa
  • Core Media – popisuje nízkoúrovňové typy a rozhraní používané ve vysoko úrovňových frameworcích

Core Services layer[editovat | editovat zdroj]

Vysokoúrovňové služby poskytované Core Services[editovat | editovat zdroj]

Block objekty[editovat | editovat zdroj]

Od verze 4.0 je možné používat objekty typu Block. Jedná se o jazykový konstrukt jazyka C, který je možný používat ve stávajícím C nebo Objective-C kódu. Block objekt reprezentuje anonymní funkci a související data. Takový konstrukt je v jiných jazycích často nazýván closure nebo lambda. Block objekty se hodí jako callback.

Grand Central Dispatch[editovat | editovat zdroj]

Ve verzi 4.0 byla přidána technologie Grand Central Dispatch postavená na BSD, která umožňuje správu úloh v aplikaci. GCD kombinuje asynchronní model programování s vysoce optimalizovaným jádrem a poskytuje tak jednoduchou a zároveň efektivní alternativu k vláknovému programování.

In App Purchase[editovat | editovat zdroj]

Od verze 3.0 je možné provádět platby uvnitř aplikace za dodatečný obsah či zrušení reklamy.

Lokační služby[editovat | editovat zdroj]

Umožňují sledovat aktuální polohu uživatele. Služby využívají k určení polohy veškerý dostupný hardware (Wi-Fi, telefonní síť, GPS). Aplikace tak mohou uživateli nabídnout data relevantní k jeho poloze (např. nejbližší restaurace apod.).

SQLite[editovat | editovat zdroj]

Odlehčená SQL databáze umožňuje ukládání uživatelských dat.

Podpora XML[editovat | editovat zdroj]

Podpora pro zpracování XML dokumentů.

Poskytované frameworky[editovat | editovat zdroj]

Framework Popis
Address Book Přístup k databázi kontaktů uživatele
CFNetwork Komunikace pomocí síťového rozhraní
Core Data Ukládání strukturovaných dat a mapování na programové objekty
Core Foundation Základní služby pro práci s řetězci, daty, URL, vlákny, porty, …
Core Location Hledání aktuální geografické polohy uživatele
Core Media Nízkoúrovňový přístup k audio/video
Core Telephony Přístup k informacím o mobilní síti
Event Kit Přístup k událostem v kalendáři
Foundation Obsahuje Objetive-C wrappery pro funkce z Core Foundation
Mobile Core Services Nízkoúrovňové typy pro UTI
Quick Look Poskytuje možnost vytvořit náhled obsahu souboru, se kterým samotná aplikace není schopna pracovat
Store Kit Poskytuje přístup k iTunes Storu a možnost nákupů
System Configuration Umožňuje zjišťovat dostupnost připojení k internetu a jeho nastavení

Vrstva Core OS[editovat | editovat zdroj]

Vrstva Core OS poskytuje nízkoúrovňové funkce ostatním technologiím, které jsou na ní postaveny. I když nejsou většinou v aplikacích využívány přímo, velice pravděpodobně je využívají vysokoúrovňové komponenty systému.

Accelerate Framework[editovat | editovat zdroj]

Poskytuje rozhraní pro práci s matematickými funkcemi (obdoba java.math), velkými čísly, výpočty DSP apod. Výhodou tohoto frameworku oproti vlastní implementaci těchto funkcí je fakt, že v různých verzích iOS určených pro různá zařízení je tento framework optimalizován pro daný hardware.

External Accessory Framework[editovat | editovat zdroj]

Tento framework poskytuje podporu pro komunikaci s externími zařízeními připojenými přes Bluetooth nebo třicetipinový konektor zařízení. Framework také umožňuje získávat informace o dostupném příslušenství a navázat komunikaci.

Security Framework[editovat | editovat zdroj]

Kromě vestavěných bezpečnostních vlastností iOS je možné využít Security framework, který dokáže zaručit bezpečnost citlivých dat. K dispozici jsou rozhraní pro certifikáty, soukromé a veřejné klíče, generování kryptografických pseudonáhodných čísel apod. Dále je možné ukládat data do zašifrovaného centrálního úložiště svazku klíčů (keychain). V tomto úložišti je navíc možné údaje sdílet mezi aplikacemi (pouze v případě, že je aplikace zkompilována s příslušným nastavením oprávnění).

Vývoj pro platformu iOS[editovat | editovat zdroj]

V iOS je možné spouště aplikace napsané v jazyku C nebo pokročilejším Objective-C. Dlouhou dobu bylo možné vyvíjet pouze v aplikaci XCode, což je vývojové prostředí od firmy Apple (nabízené zdarma). Toto prostředí je však dostupné pouze pro operační systém Mac OS X, takže vývoj např. ve Windows či Linuxu není možný. Tento problém se pokusilo řešit několik projektů, které se snažily kompilovat programy napsané v jiných jazycích do nativního kódu Objective-C. Asi největším počinem v této oblasti je krok společnosti Adobe, která v nové verzi svého nástroje pro vývoj aplikací Flash umožňuje kompilovat právě do programu určeného pro iOS. Tento (a podobné) nástroje však byly zakázány v licenčním ujednání, ale po velké nevoli ze strany vývojářů byly opět povoleny.

Jailbreak[editovat | editovat zdroj]

Hlavní článek: Jailbreak

iOS je poměrně uzavřený systém, který neumožňuje uživateli přístup do systému a také omezuje možnost instalace aplikací – jediná možnost je přes oficiální App Store, kde aplikace procházejí schvalovacím procesem ze strany společnosti Apple. Právě nedostupnost některých aplikací a nemožnost přístupu do systému bývají motivem k tzv. jailbreaku, což je proces, který modifikuje systém a umožní nahrávat neautorizované aplikace a přistupovat ke chráněným souborům systému. Kromě těchto výhod ale přináší rizika v podobě snížení výkonu, zvýšení spotřeby energie a zvýšeného rizika napadení telefonu. Mnoho uživatelů také využívá možnosti nahrávat do zařízení aplikace, které ‚ukradli‘ z internetu. Společnost Apple se snažila bránit tomuto procesu u soudu, avšak nejnovější verdikt zní, že je to legální zásah a nepoškozuje copyright společnosti Apple.

Zadní vrátka iOS[editovat | editovat zdroj]

Výzkumník cyber-bezpečnosti, Christopher Soghoian, upozornil na to, že v říjnu 2011 byl v prostředí indické vojenské rozvědky rozeslán vnitřní oběžník, vydaný plukovníkem Išwarem Singhem. Ten byl později získán hackery a zveřejněn na internetu.[2] V oběžníku se píše, že „výměnou za přítomnost na indickém (mobilním) trhu“ výrobci mobilních zařízení zahrnující korporace RIM, Nokia a Apple souhlasili s umožněním a poskytnutím přístupu „zadními vrátky“ na jimi vyráběných zařízeních indické vládě, která následně tento přístup informací utilizovala pro interní e-maily americko-čínské ekonomické bezpečnostní a výzkumné komise a orgánům vlády USA s mandátem monitorovat, vyšetřovat a podávat hlášení Kongresu na téma implikací národní bezpečnosti o ekonomického vztahu a oboustranném obchodu mezi USA a Čínou.[3][4]

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. http://crypto-world.info/news/index.php?prispevek=21800&sekce=s - Hack umožňuje přístup k datům uvnitř iPhone s iOS.6.x
  2. http://imgur.com/a/8XoGf#4
  3. Leaked Memo Says Apple Provides Backdoor To Governments
  4. http://slashdot.org/story/12/01/08/069204/leaked-memo-says-apple-provides-backdoor-to-governments