PLIN045 Základy vývoje multiplatformních aplikací

Filozofická fakulta
podzim 2017
Rozsah
0/2/0. 5 kr. Ukončení: z.
Vyučující
Mgr. Richard Holaj, Ph.D. (přednášející), doc. PhDr. Zdeňka Hladká, Dr. (zástupce)
Garance
doc. PhDr. Zdeňka Hladká, Dr.
Ústav českého jazyka – Filozofická fakulta
Kontaktní osoba: doc. PhDr. Zdeňka Hladká, Dr.
Dodavatelské pracoviště: Ústav českého jazyka – Filozofická fakulta
Rozvrh
St 9:10–10:45 G13
Předpoklady
Základní znalost HTML, CSS výhodou. Předchozí zkušenosti s programováním nejsou nezbytné. Zápis předmětu se nedoporučuje studentům prvního ročníku bakalářského studia.
Omezení zápisu do předmětu
Předmět je určen pouze studentům mateřských oborů.

Předmět si smí zapsat nejvýše 20 stud.
Momentální stav registrace a zápisu: zapsáno: 0/20, pouze zareg.: 0/20
Mateřské obory/plány
Cíle předmětu
Cílem předmětu je naučit studenty praktickým dovednostem nezbytným pro vývoj moderní multiplatformní (WP, iOS, Android, desktop) aplikace ve frameworku AngularJS. Předmět pokrývá celý proces vývoje od prvotní ideje a konceptuálního návrhu přes inkrementální vývoj prototypu až po samotné nasazení aplikace pro jednotlivá zařízení. Studenti budou během celého semestru pracovat v 3-4členných týmech na aplikaci, jejíž koncept během prvních týdnů semestru sami vymyslí. Důraz bude kladen na využívání nástrojů týmové spolupráce používaných při vývoji reálných aplikací a na agilní přístup k vývoji. Během semestru bude každý tým prezentovat ideu a koncept své aplikace, prototyp aplikace a na závěr semestru pak výslednou aplikaci.
Výstupy z učení
Po absolvování předmětu bude student schopen: - orientovat se v problematice a technologiích v oblasti programování multiplatformních aplikací - využívat online zdroje k dalšímu rozvíjení znalostí v této oblasti a případnému uplatnění v praxi - navrhnout, implementovat a zkompilovat multiplatformní aplikaci dle daného zadání - využít získané znalosti a dovednosti v dalším studiu i v praxi.
Osnova
  • Zpracování ideového a grafického konceptu aplikace (funkční a nefunkční požadavky, wireframe); agilní vývoj a nástroje týmové spolupráce – verzování (Github, Stash, Bitbucket, SourceTree, ...), komunikace (HipChat, Slack, ...), issue tracking (Redmine, JIRA, Trello, Habitica, ...), IDE (WebStorm, Brackets, Sublime, Code, ...)
  • Návrh architektury aplikace (backend, frontend, 3rd party služby), návrh API a reprezentace datových struktur (Firebase, JSON)
  • Prezentace konceptu a API
  • Syntaktické základy jazyka JavaScript – proměnné, řízení průchodu programem (podmínky, cykly), funkce, prototypy, closures
  • Základní principy frameworku AngularJS – direktivy, modely, controllery, služby, filtry, two-way binding, scoping, komponenty, routing (ui-router), šablony, built-in direktivy
  • Návrh fullstack aplikace ve frameworku AngularJS – složková struktura, dependency management (npm, bower), buildování aplikace (gulp), good practise patterns
  • Napojení klientské aplikace na Firebase API – využití js-data, Restangular, $resource; uživatelský vstup
  • Práce s multimédii – RecordRTC, Videogular; Fileupload – ng-drop; autentizace a autorizace (Firebase auth, jwt)
  • Prezentace prototypu aplikace
  • EDD (Event Driven Development) – websockets, EventHandling, $rootscope eventing; Generování mobilní aplikace – Cordova, PhoneGap, Ionic framework; Generování desktopové aplikace – Electron Framework
  • Zajímavé knihovny – lodash, websockets, ...; konzultace k projektům
  • Závěrečná prezentace projektů
Literatura
    doporučená literatura
  • ŠOCHOVÁ, Zuzana a Eduard KUNCE. Agilní metody řízení projektů. 1. vyd. Brno: Computer Press. 175 s. ISBN 9788025141946. 2014. info
  • ZAKAS, Nicholas C. Javascript pro webové vývojáře : programujeme profesionálně. 1. vyd. Brno: Computer Press. 832 s. ISBN 9788025125090. 2009. info
Výukové metody
Cvičení na počítači
Metody hodnocení
Za docházku, vypracování skupinového projektu a průběžné prezentace projektu
Informace učitele
http://scarted.net/vzdelani/vyuka/plin045/
Dokumentace a zdroje k použitým nástrojům a technologiím:
https://firebase.google.com
http://www.w3schools.com/js/
https://developer.mozilla.org/cs/docs/Web/JavaScript
https://angularjs.org/
https://www.codeschool.com/courses/shaping-up-with-angular-js
https://github.com/johnpapa/angular-styleguide
http://gulpjs.com/
https://www.npmjs.com/
http://bower.io/
https://github.com/js-data/js-data-angular
https://github.com/angular-ui/ui-router
http://www.videogular.com/
https://github.com/AngularClass/angular-websocket
https://lodash.com/
https://cordova.apache.org/
http://phonegap.com/
http://ionicframework.com/
http://electron.atom.io/
Další komentáře
Studijní materiály
Předmět je zařazen také v obdobích podzim 2016, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.