Detail předmětu
Programování zařízení Apple
FIT-IZAAk. rok: 2020/2021
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.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Studenti poznají koncepci knihoven a aplikací jazyka Swift. Tyto koncepty mohou aplikovat ve své odborné praxi.
Způsob a kritéria hodnocení
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Doporučená literatura
Mathias, M., Gallagher, J.: Swift Programming: The Big Nerd Ranch Guide (2nd Edition). Big Nerd Ranch Guides, 2016.
Mathias, M., Gallagher, J.: Swift Programming: The Big Nerd Ranch Guide (2nd Edition). Big Nerd Ranch Guides, 2016.
Neuburg, M.: Programming iOS 9: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media, 2015.
Neuburg, M.: Programming iOS 9: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media, 2015.
Trent, M., McCormack, D.: Mac OS X Programming. Wiley Publishing, 2005.
Zarra, M. S.: Core Data: Data Storage and Management for iOS, OS X, and iCloud. Pragmatic Bookshelf, 2013.
Zarra, M. S.: Core Data: Data Storage and Management for iOS, OS X, and iCloud. Pragmatic Bookshelf, 2013.
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Ú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.
Cvičení odborného základu
Vyučující / Lektor
Osnova
- 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.
Projekt
Vyučující / Lektor
Osnova
- Návrh a implementace aplikace se zadanými prvky.