Pokročilá témata KAPITOLA 11. Architektura operačního systému ios

Podobné dokumenty
Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Telekomunikační koncová zařízení

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ. Roman Fischer

CineStar Černý Most Praha

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Základní informace. Operační systém (OS)

Tabulka základních vlastností nástroje C++Builder dle edice

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

Aplikace GoGEN Smart Center

Uživatelská příručka CZ

Platforma ArcGIS. Platforma ArcGIS se skládá ze čtyř komponent: dat, zdrojů, portálu a aplikací.

Aplikace gdmss, idmss V

Mobilní informační průvodce - RegTim

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

LV5WDR Wireless Display Receiver Rychlá příručka

Mobile application developent

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Vývoj Internetových Aplikací

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Seznámení s prostředím dot.net Framework

Xtreamer Wonder. Uživatelská příručka CZ

Identifikátor materiálu: ICT-1-17

Business Intelligence

Příručka pro rychlý start

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Příručka pro rychlý start

USB-C Slouží k nabíjení MacBooku a k připojení externího úložiště či monitoru.

Návod k zapojení Bluetooth MIDI

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Česká zemědělská univerzita v Praze

SADA VY_32_INOVACE_PP1

Formy komunikace s knihovnami

Android 100% Java telefon. Petr Musil

EUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE - Online Collaboration SYLABUS 1.0 (M14)

Thunderbolt 3 (USB-C) Slouží k nabíjení MacBooku Pro a k připojení externího úložiště či monitoru. HD kamera FaceTime

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Thunderbolt 3 (USB-C) Slouží k nabíjení MacBooku Pro a k připojení externího úložiště či monitoru. HD kamera FaceTime

Hardware Různé počítačové platformy (personální počítače, pracovní stanice, víceuživatelské systémy) Požadavek na konkrétní vstupní a výstupní zařízen

Embedded vývoj v Clutteru a Mx

Vývoj informačních systémů. Přehled témat a úkolů

ApoEye. Bezdrátová kamera Uživatelský manuál

Příručka pro rychlý start

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

2011 Všechna práva vyhrazena. Stručné pokyny k zařízení Acer ICONIA TAB Model: A500/A501 Původní vydání: 4/2011. Acer ICONIA TAB.

Obsah. Úvod 9 Komu je kniha určena 11 Konvence použité v knize 11

Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace

eses WiFi bezpečnostní kamera Wanscam K P

České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu

A7B36SI2 - Řízení SW projektů. Smart-Fine. Systém evidence parkovacích lístků pomocí chytrých telefonů. Analýza (v. 3)

Vývoj informačních systémů. Přehled témat a úkolů

Stylový společník, který nabízí pokročilou grafiku i zabezpečení. Oficiální webové stránky VAIO Europe

Projekt podnikové mobility

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

NAS 242 Aplikace AiMaster pro mobilní zařízení

KANTOR IDEÁL Vzdělávání a podpora pedagogických pracovníků ZŠ a SŠ při integraci ICT do výuky. registrační číslo: CZ.1.07/1.3.00/51.

Ten nejlepší zážitek z vysokého rozlišení. Vlajková loď mezi zábavními notebooky s Full HD a jednotkou Bluray Disc Combo

Nové jazykové brány do Caché. Daniel Kutáč

Příručka pro rychlý start

Témata profilové maturitní zkoušky

MCDVR31H. Mini DVR s vestavěnou HD kamerou a displejem. Uživatelský manuál

Datová věda (Data Science) akademický navazující magisterský program

Mobilní aplikace pro digitální knihovnu Kramerius (Android a ios)

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Jakub Šesták. ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

Version No: 0.1/ Status: DRAFT. Zpětná vazba. Workshop s operátorem

Nastavení provozního prostředí webového prohlížeče pro aplikaci

1.2 Operační systémy, aplikace

CHARAKTERISTIKA VZDĚLÁVACÍ OBLAST VYUČOVACÍ PŘEDMĚT ZODPOVÍDÁ INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

POKROČILÉ POUŽITÍ DATABÁZÍ

Specifikace projektu Ocerus

Základní informace: vysoce komfortnímu prostředí je možné se systémem CP Recorder efektivně pracovat prakticky okamžitě po krátké zaškolení.

Obsah. Zpracoval:

NAS 232 Aplikace AiFoto pro mobilní zařízení. Správa fotografií na vašem NAS z mobilního zařízení

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Enterprise Mobility Management AirWatch & ios v businessu

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Knihovny v mobilních zařízeních. Jan Pokorný Knihovny současnosti 2012

Zapojení studentů VŠPJ do vývoje mobilních aplikací na platformě Recon Jet

Profilová část maturitní zkoušky 2017/2018

Návod k obsluze. Spionazni-technika.cz Stránka 1

Začínáme s aplikací Třída Příručka učitele k aplikaci Třída pro ipad. Identifikátor zápatí_příručka recenzenta produktu měsíc

Obsah. Úvod 13 Co a kde v knize najdete 13 Pro koho kniha je a jak ji číst 14 Zpětná vazba od čtenářů 15 Errata 15

Wonderware Information Server 4.0 Co je nového

Váš stylový multimediální společník v karamelově smetanovém provedení. Oficiální webové stránky VAIO Europe

Enterprise Mobility Management

Simluátor Trilobota. (projekt do předmětu ROB)

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Multimediální systém Mitsubishi - MMIS

Váš stylový multimediální společník v korálově růžovém provedení. Oficiální webové stránky VAIO Europe

Transkript:

Pokročilá témata Začátečník, který vytváří jednodušší aplikace a na nich se průběžně učí, zpočátku nepotřebuje vědět, co je na pozadí jeho aplikace. Proto jsme téma architektury ios zařadili až do této kapitoly. Dříve než začnete vyvíjet složitější projekty, je potřeba poznat aspoň základní principy vývoje pro danou platformu. Architektura operačního systému ios KAPITOLA 11 V této kapitole: Získáte přehled o architektuře operačního systému ios Stručně představíme dva nejpoužívanější frameworky Naučíte se, jak se nastavují záležitosti související s ochranou soukromí uživatele Ukážeme si možnosti nastavování parametrů pro aplikaci na úrovni operačního systému V komplexním příkladu si ukážeme možnosti využití strojového učení a umělé inteligence Naučíte se zakomponovat do aplikací rozšířenou realitu Operační systém ios vznikl jako odnož macos pro přenosná zařízení. Je postaven na bázi systému Darwin s jádrem XNU. Architektura ios je rozdělena do čtyř vrstev. Skládá se z jádra Core OS, základních služeb Core Services, multimediální vrstvy Media a Cocoa Touch, která se využívá při tvorbě uživatelského rozhraní. Na nejvyšší úrovni architektury jsou aplikace. Při vývoji aplikací se, pokud je to možné, doporučuje preferovat frameworky vyšších vrstev, jelikož vyšší vrstvy zjednodušují programování tím, že poskytují vyšší úroveň objektově orientované abstrakce. Tím redukují množství kódu, které je potřeba naprogramovat, zrychlují vývoj a aplikace je spolehlivější a bezpečnější díky přehlednému kódu, v němž se dá při ladění dobře orientovat. Samozřejmě když požadovaná funkce není k dispozici na vyšších vrstvách, musí vývojář použít funkce frameworků z nižší vrstvy. Popis začneme od nejvyšší vrstvy, která je situovaná nejdále nad hardwarem, ale nejblíže k aplikaci. 403

KAPITOLA 11 Pokročilá témata Obrázek 11.1: Základní blokové schéma architektury ios Cocoa Touch Tato vrstva je pro vývojáře velmi důležitá, jelikož obsahuje klíčové frameworky zapouzdřující stavební kameny uživatelského rozhraní, tedy třídy, které mají vizuální reprezentaci jako ovládací prvky a dokážou provádět určité akce. Cocoa Touch obsahuje frameworky, jež se nejčastěji používají při vývoji aplikací. Tato vrstva je kompletně napsaná v Objective-C, je založena na standardním systému macos Cocoa API, který byl upraven tak, aby vyhovoval potřebám mobilních platforem Apple ipad/iphone/ipod Touch s dotykovým displejem. Cocoa Touch obsahuje podporu klíčových technologií, jako například multitasking, notifikace, dotykové uživatelské rozhraní a hodně dalších systémových služeb nejvyšší úrovně. Media Tato vrstva obsahuje technologie na práci s multimédii, tj. s grafikou, zvukem a videem. Všechny zmíněné atributy jsou klíčové proto, aby byla aplikace atraktivní a uživatelsky příjemná. Na úrovni vrstvy Media najdete grafické knihovny Core Graphics (Quartz), OpenGL, Metal, Photos Library, Animation, knihovny na práci se zvukem, například Media player, OpenAL či Core Audio. Také podporu technologie AirPlay a podobně. Core Services Jak vyplývá z názvu, tato vrstva obsahuje základní systémové služby pro aplikace, například frameworky Core Foundation a Foundation, kde jsou definovány základní typy. Na úrovni této vrstvy jsou také definovaná rozhraní na používání různých technologií, jako je interakce s cloudovou službou icloud, geolokačními a mapovými službami, webovými službami, sociálními sítěmi, interní databází SQLite, vrstvou na telefonování, posílání SMS a podobně. Core OS Vrstva Core OS obsahuje nízkoúrovňové funkce určené pro vyšší vrstvy. S největší pravděpodobností funkce této vrstvy při vývoji aplikaci využívat nebudete. Výjimkou jsou různé aplikace, které řeší bezpečnost nebo komunikaci s externím hardwarem. 404

Pro migranty z Androidu Při tvorbě aplikací by měli vývojáři využívat aplikační frameworky na co nejvyšší úrovni, kde je možné využívat objektově orientované abstrakce, což výrazně zrychluje a zefektivňuje vývoj. Přestože jsou tyto vrstvy abstraktní, jejich primárním úkolem není maskovat technologie na nižších úrovních, jsou také k dispozici pro vývojáře, kteří upřednostňují vývoj na nativní úrovni například kvůli rychlosti, případně je použít musí, protože funkcionalita, kterou potřebují do aplikace implementovat, není na vyšších vrstvách zpřístupněna. Když to sumarizujeme, v projektové fázi byste měli prozkoumat, zda technologie na úrovni Cocoa Touch splňují vaše požadavky, a prioritně je využívat. Pro migranty z Androidu Situace, kdy nastane požadavek na portování úspěšné mobilní aplikace na jinou platformu, je poměrně častá, takže častá bude i situace, kdy vývojáři aplikace pro Android budou postaveni před nelehký úkol portovat aplikaci, kterou vytvořili pro Android, i na mobilní platformu ios. Stačí letmý pohled na obě architektury a zjistíte, že v ios jsou vrstvy ploch mnohem přehledněji hierarchicky uspořádané a všechny vrstvy jsou účelově přístupné. Obrázek 11.2: Blokové schéma architektury mobilní platformy Android 405

KAPITOLA 11 Pokročilá témata Obrázek 11.3: Blokové schéma architektury ios je v porovnání s Androidem mnohem transparentnější Nebudeme řešit podrobně všechny atributy vývoje pro ios, který je pro vývojáře pro Android novou platformou, o tom je přece celá tato publikace, jen stručně vyjmenujeme ios ekvivalenty základních stavebních pilířů aplikace pro Android. Activity ViewController Intenty Segue, ViewController Service Background Mode + specifické volání API Content Provider CoreData Layout Storyboard a Scene Frameworky Stručně si představíme dva nejpoužívanější frameworky. Foundation Tento framework je základní knihovnou při vývoji aplikací v jazyce Objective-C. Třídy tohoto frameworku snadno poznáte podle prefixu NS. Prefix NS v názvech některých objektů znamená, že tento objekt je odvozen od NSObject. NS znamená NEXTSTEP, což je technologie vyvinutá společností NeXT Software, kterou Apple koupil v roce 1997. Tato technologie se později stala základním pilířem macos. Základní třídy frameworku Foundation: 406

Nastavení ochrany soukromí uživatele NSObject bázová třída. Všechny objekty v Objective-C jsou odvozeny od třídy NSObject. NSString třída na manipulaci s datovými typy, do kterých se ukládají textové řetězce. NSValue třída funguje jako kontejner na objekty určené na ukládání údajů. NSNumber třída je odvozena od bázové třídy NSValue. Je určená k ukládání numerických datových typů Interger, Double a Float. NSArray třída je určena na práci s poli objektů. UIKit Zatímco je framework Foundation zaměřen více na aplikační logiku, UIKit řeší práci s objekty uživatelského rozhraní. Základní třídy: UIApplication třída řeší řízení aplikace, vývojáři aplikací ale s touto třídou málokdy potřebují pracovat. UIViewController instance této třídy jsou jednotlivé pohledy (obrazovky) uživatelského rozhraní aplikace. Na úrovni této třídy se definují layouty a propojení více pohledů. UIView každý kontrolér musí obsahovat komponentu UIView, která zapouzdřuje prvky uživatelského rozhraní. UIGestureRecognizer základní metodou interakce zařízení s ios s uživatelem jsou dotyky a gesta. Abstraktní třída UIGestureRecognizer řeší zpracování dotyků a gest. Nastavení ochrany soukromí uživatele Některé hardwarové komponenty a s nimi spojené funkce, především mikrofon na nahrávání zvuku, kamera na snímání fotografií a videa, lokalizační a další služby a také údaje z kalendářů nebo seznamu kontaktů mohou prozradit o uživateli věci, které by si určitě nepřál zveřejňovat. Proto aplikace pro ios vyžadují na takovéto akce povolení uživatele. Tato povolení se deklarují v souboru Info.plist. Aplikace musí požádat o přístup k citlivým údajům uživatele nebo zařízení, která jsou chráněna nastavením autorizace systému ios v čase, když aplikace potřebuje údaje. Musíte uvést účel, k čemu aplikace tyto údaje potřebuje. Údaje chráněné nastaveními autorizace systému ios zahrnují umístění, kontakty, události kalendáře, připomínky, fotografie, média a mnoho dalších typů údajů, které mohou potenciálně zasáhnout do soukromí uživatele. Buďte transparentní a poskytněte uživatelům informaci o tom, jak se budou jejich údaje používat. Když odešlete svou aplikaci do App Store, zadejte URL adresu stránky, kde deklarujete svou politiku ochrany osobních údajů. Popis této politiky můžete také zahrnout do popisu aplikace. Umožněte uživateli kontrolu nad citlivými údaji. Navrhněte nastavení tak, aby uživatel mohl podle potřeby zakázat přístup k určitým typům citlivých informací. V aplikaci požádejte a použijte minimální možné množství údajů uživatele nebo zařízení nezbytně potřebných ke splnění daného úkolu. Nepožadujte přístup ani shromažďování údajů jen proto, že si myslíte, že by to mohlo být užitečné později. Učiňte také přiměřené kroky na 407

KAPITOLA 11 Pokročilá témata ochranu údajů uživatelů a zařízení, které shromažďujete ve svých aplikacích. Při lokálním ukládání takovýchto informací údaje ochraňte například šifrováním. Nastavení žádosti o souhlas uživatele vyžadují frameworky: Calendar, Contact, Reminder, Photo, Bluetooth Sharing, Microphone, Camera, Location, Heath, HomeKit, Media Library, Motion, CallKit, Speech Recognition, SiriKit, TV Provider. Pro tyto frameworky se nastavují klíče. Calendar: Privacy Calendars Usage Description Reminder: Privacy Reminders Usage Description Contact: Privacy Contacts Usage Description Photo: Privacy Photo Library Usage Description Value: $(PRODUCT_NAME) photo use Bluetooth Sharing: Privacy Bluetooth Peripheral Usage Description Microphone: Privacy - Microphone Usage Description Camera: Privacy Camera Usage Description Location: Privacy Location Always Usage Description Location: Privacy Location When In Use Usage Description Heath: Privacy Health Share Usage Description Health: Privacy Health Update Usage Description HomeKit: Privacy HomeKit Usage Description Media Library: Privacy Media Library Usage Description Motion: Privacy Motion Usage Description Speech Recognition: Privacy Speech Recognition Usage Description SiriKit: Privacy Siri Usage Description TV Provider: Privacy TV Provider Usage Description Nastavení parametrů aplikace Aplikace může zobrazit nastavení a umožnit jejich změnu přímo ve svém uživatelském rozhraní nebo v nastavení zařízení. Ve svém uživatelském rozhraní může aplikace k tomuto účelu vyhradit samostatnou obrazovku (View), samostatnou kartu a podobně. Nastavení zařízení jsou soustředěna v aplikaci Nastavení (Settings), kde kromě parametrů operačního systému můžete nastavovat i parametry aplikací, které tento způsob podporují. Nastavování parametrů se realizuje ve většině aplikací a vývojáři by potom téměř v každé aplikaci museli programovat pro tento účel uživatelské rozhraní. Pro nastavování parametrů v nastavení zařízení není potřeba vytvářet ve vašich aplikacích uživatelské rozhraní, protože aplikace Nastavení poskytuje standardní rozhraní nejen na testování parametrů zařízení a jeho operačního systému, ale i na nastavování parametrů aplikací. Přispívá to ke konzistenci uživatelské zkušenosti. 408