Fakulta informačních technologií VUT v Brně

Detail předmětu

Programování zařízení Apple

IZA Ak. rok 2019/2020 letní semestr 5 kreditů

Software firmy Apple představuje ucelený systém tradičních knihoven, aplikačních paradigmat a širokého pole schopností. Jeho základy zůstávají dlouhodobě bez větších změn. V předmětu budou postupně rozebírány hlavní prvky architektury aplikačního software firmy Apple, bude probírán důkladně smysl a použití jednotlivých prvků, případně budou srovnávány s jejich alternativami v jiných systémech. V úvodní části přednášek budou představeny jazyky Objective-C a Swift v kontextu současných i historických programovacích jazyků. Se znalostí těchto jazyků se dále naváže konceptem architektury aplikace založené na paradigmatech Model-View-Controller a Key-Value Observing. Vývoj aplikací bude demonstrován primárně na platformě iOS. Jádrem přednášek budou kapitoly o návrhu vícevláknových aplikací (GCD) a jejich propojení na interní (Sqlite3, CoreData) a externí databázové systémy (CloudKit, DropBox). V závěrečných přednáškách se proberou specifika aplikací pro osobní počítače (MacOS) a spotřební elektroniku (tvOS, watchOS). Předmět je doprovázen sadou praktických democvičení. Ukázky programových konstrukcí budou vedeny především v jazyce Swift. 

Garant předmětu

Zástupce garanta předmětu

Jazyk výuky

česky

Zakončení

zkouška (kombinovaná)

Rozsah

26 hod. přednášky, 12 hod. cvičení, 14 hod. projekty

Bodové hodnocení

70 zkouška, 30 projekty

Zajišťuje ústav

Přednášející

Cvičící

Získané dovednosti, znalosti a kompetence z předmětu

Pochopení principů programování aplikací pro MacOS, iOS, tvOS a watchOS. Princip konstrukce vícevláknových aplikací. Programování v jazyce Swift. Propojení aplikačního řízení a databáze.

Dovednosti, znalosti a kompetence obecné

Studenti poznají koncepci knihoven a aplikací jazyka Swift. Tyto koncepty mohou aplikovat ve své odborné praxi.

Cíle předmětu

Cílem předmětu je poskytnout studentům hlubší vhled do konceptů programování zařízení Apple, což jsou osobní počítače s operačním systémem MacOS a mobilní zařízení (telefony, tablety, hodinky) s operačním systémem iOS. Předmět klade důraz na pochopení vnitřních mechanismů v aplikacích na těchto platformách. Přeneseným cílem předmětu je studium systému knihoven a programovacích konceptů, ze kterých lze převzít inspiraci pro programátorské návyky v celkové odborné praxi bez ohledu na platformu, operační systém nebo programovací jazyk. Předmět je také výukou programovacího jazyka Swift (OpenSource), který je alternativou pro vývoj přenositelných aplikací.

Proč je předmět vyučován

Počítače a programy firmy Apple tvoří významnou část současné IT scény. Předmět dává důraz na programování aplikací pro iOS, ale přehledově uvádí i desktopový macOS a spotřebitelsky zaměřené tvOS/watchOS. 

Literatura referenční

  • Hillegass, A.: Cocoa Programming for Mac OS X. Addison-Wesley, 2004.
  • Trent, M., McCormack, D.: Mac OS X Programming. Wiley Publishing, 2005.
  • Neuburg, M.: Programming iOS 9: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media, 2015.
  • Mathias, M., Gallagher, J.: Swift Programming: The Big Nerd Ranch Guide (2nd Edition). Big Nerd Ranch Guides, 2016.
  • Zarra, M. S.: Core Data: Data Storage and Management for iOS, OS X, and iCloud. Pragmatic Bookshelf, 2013.

Osnova přednášek

  1. Úvod do předmětu. Historické souvislosti Apple a ostatních výrobců počítačů a operačních systémů. 
  2. Návaznost jazyka Objective-C na jazyky C/C++ a Smalltalk. Dynamické přidělování paměti, referencování objektů a mechanismus garbage collecting.
  3. Úvod do jazyka Swift. Základní knihovny kolekcí a algoritmů (Foundation). 
  4. Koncept Model-View-Controller (MVC) ve tvorbě událostmi řízených aplikací. Základní řídicí prvky (Controllers) v aplikacích (Table, TabBar, Master-Detail). 
  5. Tvorba uživatelských aplikací pro mobilní zařízení. Základní prvky uživatelského rozhraní (knihovna Cocoa Touch).
  6. Programování vícevláknových aplikací. Koncept mechanismu správy vláken (Grand Central Dispatch, GCD) a řízení běhu programu (RunLoop). Asynchronní volání. Modelování stavu vícevláknové aplikace.
  7. Kódování dat v aplikacích. Kódování dokumentů. Synchronizace dokumentů. Mechanismy zasílání zpráv v aplikacích (Key-Value Observing, KVO).
  8. Architektura objektové databáze (CoreData). Synchronní propojení databáze a aplikace prostřednictvím KVO. 
  9. Víceuživatelské aplikace se sdílenou centrální databází (CloudKit). Asynchronní propojení databáze a aplikace prostřednictvím GCD.
  10. Životní cyklus aplikace v kontextu operačního systému. Uživatelská nastavení. Dynamická optimalizace využití operační paměti zařízení.
  11. Simulační jádro pro programování her (SpriteKit, SceneKit). Modelování fyzikálního prostředí a mechaniky těles.
  12. Architektura aplikací pro MacOS. Funkční propojování aplikace pracující souběžně na mobilním zařízení a stolním počítači.
  13. Architektura aplikací pro tvOS a watchOS.

Osnova numerických cvičení

  1. Základy programování v jazyce Swift. Použití vývojového prostředí XCode.
  2. Knihovna Foundation v příkladech. Kolekce a základní algoritmy.
  3. Implementace aplikace pro iOS. Implementace objektů typu DataSource a Delegate.
  4. Vícevláknové aplikace. Rozesílání zpráv v aplikaci. Key-Value Observing. Programování strukturovaných dokumentů.
  5. Aplikace s databází CoreData.
  6. Aplikace s databází CloudKit.

Osnova ostatní - projekty, práce

  1. Návrh a implementace aplikace se zadanými prvky.

Kontrolovaná výuka

Kontrolovanou výukou jsou projekt a závěrečná zkouška. Závěrečná zkouška má dva náhradní termíny. Pro získání bodů ze zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 25 body. V opačném případě bude zkouška hodnocena 0 body.

Podmínky zápočtu

Vypracování individuálního projektu a získání alespoň poloviny bodů (15 ze 30).

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Stpřednáškavýuky G202 10:0011:50 2BIA 2BIB 3BIT xx
Čtcvičenívýuky D0207 12:0013:50 2BIA 2BIB 3BIT xx

Zařazení předmětu ve studijních plánech

  • Program BIT, 2. ročník, volitelný
  • Program IT-BC-3, obor BIT, 2. ročník, volitelný
Nahoru