Název:

Programování zařízení Apple

Zkratka:IZA
Ak.rok:2018/2019
Semestr:letní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
BIT-2.volitelný
IT-BC-3BIT2.volitelný
Vyučovací jazyk:čeština
Kredity:5 kreditů
Ukončení:zkouška (kombinovaná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:26120014
 zkouškatestycvičenílaboratořeostatní
Body:7000030
Garant:Hrubý Martin, Ing., Ph.D. (UITS)
Zástupce garanta:Smrčka Aleš, Ing., Ph.D. (UITS)
Přednášející:Hrubý Martin, Ing., Ph.D. (UITS)
Cvičící:Hrubý Martin, Ing., Ph.D. (UITS)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav inteligentních systémů FIT VUT v Brně
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
Pozkouška - 2. oprava2019-06-03E104 15:0016:502BIA 2BIB 3BIT
Stzkouška - 1. oprava2019-05-29E105 10:0011:502BIA 2BIB 3BIT
Čtzkouška - řádná2019-05-09E105 10:0011:502BIA 2BIB 3BIT
 
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í.
Anotace:
  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. 
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.
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. 
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.
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.
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).
 

Vaše IPv4 adresa: 54.234.227.202
Přepnout na https