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
Zakončení
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
- Úvod do předmětu. Historické souvislosti Apple a ostatních výrobců počítačů a operačních systémů.
- 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.
- Úvod do jazyka Swift. Základní knihovny kolekcí a algoritmů (Foundation).
- Koncept Model-View-Controller (MVC) ve tvorbě událostmi řízených aplikací. Základní řídicí prvky (Controllers) v aplikacích (Table, TabBar, Master-Detail).
- Tvorba uživatelských aplikací pro mobilní zařízení. Základní prvky uživatelského rozhraní (knihovna Cocoa Touch).
- 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.
- 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).
- Architektura objektové databáze (CoreData). Synchronní propojení databáze a aplikace prostřednictvím KVO.
- Víceuživatelské aplikace se sdílenou centrální databází (CloudKit). Asynchronní propojení databáze a aplikace prostřednictvím GCD.
- Životní cyklus aplikace v kontextu operačního systému. Uživatelská nastavení. Dynamická optimalizace využití operační paměti zařízení.
- Simulační jádro pro programování her (SpriteKit, SceneKit). Modelování fyzikálního prostředí a mechaniky těles.
- Architektura aplikací pro MacOS. Funkční propojování aplikace pracující souběžně na mobilním zařízení a stolním počítači.
- Architektura aplikací pro tvOS a watchOS.
Osnova seminářů
- Základy programování v jazyce Swift. Použití vývojového prostředí XCode.
- Knihovna Foundation v příkladech. Kolekce a základní algoritmy.
- Implementace aplikace pro iOS. Implementace objektů typu DataSource a Delegate.
- Vícevláknové aplikace. Rozesílání zpráv v aplikaci. Key-Value Observing. Programování strukturovaných dokumentů.
- Aplikace s databází CoreData.
- Aplikace s databází CloudKit.
Osnova ostatní - projekty, práce
- 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
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
St | přednáška | 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. výuky | G202 | 14:00 | 15:50 | 80 | 2BIA 2BIB 3BIT | xx | Hrubý |
St | přednáška | 2025-05-07 | G202 | 14:00 | 15:50 | 80 | 2BIA 2BIB 3BIT | xx | |
St | seminář | výuky | G202 | 16:00 | 17:50 | 80 | 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ý