460-2019/02 – Tvorba aplikací pro mobilní zařízení I (TAMZ I)
Garantující katedra | Katedra informatiky | Kredity | 6 |
Garant předmětu | Ing. Pavel Moravec, Ph.D. | Garant verze předmětu | Ing. Pavel Moravec, Ph.D. |
Úroveň studia | pregraduální nebo graduální | | |
| | Jazyk výuky | angličtina |
Rok zavedení | 2015/2016 | Rok zrušení | 2020/2021 |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Seznámit studenty se základy tvorby aplikací pro mobilní zařízení.
Po absolvování předmětu bude student schopen:
- posoudit vhodnost použité platformy pro zamýšlenou aplikaci
- analyzovat, navrhnout a implementovat aplikaci
- srovnat efektivitu aplikace s aplikací napsanou pro stolní počítač
- pochopit význam typických rozšiřujících API a jejich použití
- rozhodnout, jakým způsobem danou aplikaci distribuovat na cílové zařízení a rozlišit, zda musí být aplikace digitálně podepsána.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Experimentální práce v laboratoři
Projekt
Ostatní aktivity
Anotace
Aplikace spustitelné na nejrůznějších mobilních zařízeních jsou v dnešní době stále běžnější. V současnosti jde většinou o aplikace určené pro mobilní telefony a tablety. Nejvýznamnější skupiny technologií, které umožňují tvorbu takovýchto aplikací, jsou založena na programovacím jazyce Java nebo na kombinaci HTML, CSS a JavaScriptu.
Vzhledem k tomu, že mobilní zařízení jsou charakteristická omezenou funkčností, omezeným výpočetním výkonem a omezeným přístupem k síti, nejedná se většinou o vývoj v plné verzi programovacího jazyka, určeného pro stolní počítače, ale o jeho podmnožinu, doplněnou o specifické balíky, obsahující třídy s nižšími nároky a omezenou, či naopak novou, pro mobilní zařízení specifickou, funkcionalitou.
Povinná literatura:
Doporučená literatura:
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Podmínky udělení zápočtu:
Realizace a obhajoba projektu - implementace aplikace (aplikací)
Volitelná prezentace technologií z oblasti rozšiřujících API, dalších platforem a vývojových prostředí, souvisejících technologií, resp. specifik vývoje aplikací pro mobilní zařízení
Programování jednoduchých aplikací na počítačových laboratořích
E-learning
Další požadavky na studenta
Znalost programovacího jazyka Java, C#, C/C++ nebo JavaScript.
Základní znalost jazyka HTML.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
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.
* Prinicipy, 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 - XML-RPC, Webové služby, JSON, AJAX.
* Technologie, použité pro tvorbu aplikací, založených na kombinaci HTML a JavaScriptu - HTML5, CSS3, ...
* Vícevláknový přístup a problémy s ním spojené.
* 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í XML.
* Komunikace s dalšími zařízeními - síťová komunikace, komunikace prostřednictvím Bluetooth.
* Bezpečnostní model aplikací: Bezpečnost na úrovni virtuálního stroje, bezpečnost zpracovávaných dat zejména pomocí protokolů SSL, TLS a dalších technik vycházejících ze standardu X.509.
* 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 - NetBeans nebo Eclipse, instalace pluginů, potřebných pro vývoj pro mobilní platformy. Spouštění aplikací v emulá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 a websokety.
* Práce s (Application) Properties a styly, 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, geolokace).
* Práce se soubory.
* Komunikace se serverem prostřednictvím webových služeb a JSON.
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.
Podmínky absolvování předmětu
Podmínky absolvování jsou definovány pouze pro konkrétní verzi předmětu a formu studia
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky