Detail předmětu

Programování zařízení Apple

IZA Ak. rok 2024/2025 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

Koordinátor předmětu

Jazyk výuky

česky, anglicky

Zakončení

zkouška (písemná)

Rozsah

  • 26 hod. přednášky
  • 12 hod. seminář
  • 14 hod. projekty

Bodové hodnocení

  • 70 bodů závěrečná zkouška
  • 30 bodů projekty

Zajišťuje ústav

Přednášející

Cvičící

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í.
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. Studenti poznají koncepci knihoven a aplikací jazyka Swift. Tyto koncepty mohou aplikovat ve své odborné praxi.

Literatura studijní

  • 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.

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 seminářů

  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.

Průběžná kontrola studia

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

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. 

Rozvrh

DenTypTýdnyMístn.OdDoKapacitaPSKSkupInfo
St přednáška 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. výuky G202 14:0015:5080 2BIA 2BIB 3BIT xx Hrubý
St přednáška 2025-05-07 G202 14:0015:5080 2BIA 2BIB 3BIT xx
St seminář výuky G202 16:0017:5080 2BIA 2BIB 3BIT xx Hrubý

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

  • Program BIT, 2. ročník, volitelný
  • Program BIT (anglicky), 2. ročník, volitelný
Nahoru