Náplň přednášek:
* Úvod do problematiky tvorby aplikací pro mobilní zařízení, přehled používaných technologií a jejich rozšířenosti na mobilních zařízeních, vývojová prostředí. Návrh architektury mobilní platformy, cílová zařízení, vztah k dalším technologiím.
* Principy, použité při návrhu mobilní platformy. Životní cyklus mobilní aplikace.
* Architektura Over-the-Air Provisioning (OTA). Umístění, aktualizace a konfigurace aplikace na serveru. Její následné vyhledání, získání, instalace a spuštění na mobilním zařízení.
* Univerzální frameworky, zaměřené na multiplatformní vývoj aplikací, nezávislé na mobilním operačním systému.
* Platformně nezávislá komunikace mezi aplikacemi - Webové služby, AJAX, CORS.
* Technologie, použité pro tvorbu aplikací, založených na kombinaci HTML5 a JavaScriptu - HTML5, CSS3, ...
* Vícevláknový přístup a problémy s ním spojené, omezení vícevláknového přístupu.
* Práce s formuláři, grafikou a zvukem.
* Rozšiřující API rozhraní: zjištění přítomnosti API nebo jeho verze. Příklady API - práce se zprávami, multimédii, určování polohy, příklady některých dalších rozšiřujících API.
* Práce se soubory, zpracování JSON a XML.
* Komunikace s dalšími zařízeními - síťová komunikace, komunikace prostřednictvím Bluetooth.
* Principy podepisování aplikací a povolení zvolených citlivých částí API u různých technologií. Omezení, vyplývající z použití nepodepsaných aplikací v závislosti na platformě.
* Ladění aplikací, optimalizace jejich kódu a (částečná) ochrana kódu proti dekompilaci. Automatické spouštění aplikací v reakci na externí událost, časovač či při startu mobilního OS.
Cvičení jsou zaměřena na získání praktických zkušeností s tvorbou aplikací pro mobilní systémy. Studenti v rámci cvičení implementují jednoduché aplikace, které navazují na látku, probranou na přednáškách.
Náplň počítačových cvičení:
* Základy práce s vývojovým prostředím, instalace pluginů, potřebných pro vývoj pro mobilní platformy. Spouštění aplikací v emulátoru/simulátoru nebo přímo na mobilním zařízení.
* Práce se záznamy, serializace do binárního (resp. řetězcového) formátu, vnitřní úložiště a jeho použití pro uložení konfigurace pro příští spuštění.
* Práce se základními prvky GUI (high-level).
* Práce s HTTP, websokety a push zprávami.
* Nastavení parametrů aplikace, práce se styly a změna aplikace jejich prostřednictvím.
* Práce s plátnem (Canvas), reakce na stisky kláves a dotyky.
* Tvorba jednoduché 2D hry.
* Práce s multimédii a zvukem.
* Funkce, specifické pro mobilní platformy (práce s integrovaným fotoaparátem, orientace zařízení, geolokace).
* Práce se soubory.
* Komunikace se serverem prostřednictvím REST API.
Náplň projektu:
Studenti v průběhu semestru dostanou zadán rozsáhlejší projekt, který následně zpracují. Časová náročnost projektu je cca 21 hodin. Náplní projektu je implementace mobilní aplikace nebo hry (vybrané z doporučených témat nebo navržené studentem - takové téma musí být schváleno vyučujícím). Výsledná implementace musí splňovat formální požadavky a využívat alespoň 3 pokročilé technologie předvedené na přednáškách a cvičeních.
* Úvod do problematiky tvorby aplikací pro mobilní zařízení, přehled používaných technologií a jejich rozšířenosti na mobilních zařízeních, vývojová prostředí. Návrh architektury mobilní platformy, cílová zařízení, vztah k dalším technologiím.
* Principy, použité při návrhu mobilní platformy. Životní cyklus mobilní aplikace.
* Architektura Over-the-Air Provisioning (OTA). Umístění, aktualizace a konfigurace aplikace na serveru. Její následné vyhledání, získání, instalace a spuštění na mobilním zařízení.
* Univerzální frameworky, zaměřené na multiplatformní vývoj aplikací, nezávislé na mobilním operačním systému.
* Platformně nezávislá komunikace mezi aplikacemi - Webové služby, AJAX, CORS.
* Technologie, použité pro tvorbu aplikací, založených na kombinaci HTML5 a JavaScriptu - HTML5, CSS3, ...
* Vícevláknový přístup a problémy s ním spojené, omezení vícevláknového přístupu.
* Práce s formuláři, grafikou a zvukem.
* Rozšiřující API rozhraní: zjištění přítomnosti API nebo jeho verze. Příklady API - práce se zprávami, multimédii, určování polohy, příklady některých dalších rozšiřujících API.
* Práce se soubory, zpracování JSON a XML.
* Komunikace s dalšími zařízeními - síťová komunikace, komunikace prostřednictvím Bluetooth.
* Principy podepisování aplikací a povolení zvolených citlivých částí API u různých technologií. Omezení, vyplývající z použití nepodepsaných aplikací v závislosti na platformě.
* Ladění aplikací, optimalizace jejich kódu a (částečná) ochrana kódu proti dekompilaci. Automatické spouštění aplikací v reakci na externí událost, časovač či při startu mobilního OS.
Cvičení jsou zaměřena na získání praktických zkušeností s tvorbou aplikací pro mobilní systémy. Studenti v rámci cvičení implementují jednoduché aplikace, které navazují na látku, probranou na přednáškách.
Náplň počítačových cvičení:
* Základy práce s vývojovým prostředím, instalace pluginů, potřebných pro vývoj pro mobilní platformy. Spouštění aplikací v emulátoru/simulátoru nebo přímo na mobilním zařízení.
* Práce se záznamy, serializace do binárního (resp. řetězcového) formátu, vnitřní úložiště a jeho použití pro uložení konfigurace pro příští spuštění.
* Práce se základními prvky GUI (high-level).
* Práce s HTTP, websokety a push zprávami.
* Nastavení parametrů aplikace, práce se styly a změna aplikace jejich prostřednictvím.
* Práce s plátnem (Canvas), reakce na stisky kláves a dotyky.
* Tvorba jednoduché 2D hry.
* Práce s multimédii a zvukem.
* Funkce, specifické pro mobilní platformy (práce s integrovaným fotoaparátem, orientace zařízení, geolokace).
* Práce se soubory.
* Komunikace se serverem prostřednictvím REST API.
Náplň projektu:
Studenti v průběhu semestru dostanou zadán rozsáhlejší projekt, který následně zpracují. Časová náročnost projektu je cca 21 hodin. Náplní projektu je implementace mobilní aplikace nebo hry (vybrané z doporučených témat nebo navržené studentem - takové téma musí být schváleno vyučujícím). Výsledná implementace musí splňovat formální požadavky a využívat alespoň 3 pokročilé technologie předvedené na přednáškách a cvičeních.