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

Filozofická fakulta
podzim 2019
Rozsah
0/2/0. 5 kr. Ukončení: z.
Vyučující
RNDr. Zuzana Nevěřilová, Ph.D. (přednášející)
Mgr. Richard Holaj, Ph.D. (pomocník)
Garance
RNDr. Zuzana Nevěřilová, Ph.D.
Ústav českého jazyka – Filozofická fakulta
Kontaktní osoba: doc. PhDr. Zdeňka Hladká, Dr.
Dodavatelské pracoviště: Ústav českého jazyka – Filozofická fakulta
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
  • 1. 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, ...).
  • 2. Návrh architektury aplikace (backend, frontend, 3rd party služby), návrh API a reprezentace datových struktur (Firebase, JSON).
  • 3. Prezentace konceptu a API.
  • 4. Syntaktické základy jazyka JavaScript – proměnné, řízení průchodu programem (podmínky, cykly), funkce, prototypy, closures.
  • 5. Základní principy frameworku AngularJS – direktivy, modely, controllery, služby, filtry, two-way binding, scoping, komponenty, routing (ui-router), šablony, built-in direktivy.
  • 6. Návrh fullstack aplikace ve frameworku AngularJS – složková struktura, dependency management (npm, bower), buildování aplikace (gulp), good practise patterns.
  • 7. Napojení klientské aplikace na Firebase API – využití js-data, Restangular, $resource; uživatelský vstup.
  • 8. Práce s multimédii – RecordRTC, Videogular; Fileupload – ng-drop; autentizace a autorizace (Firebase auth, jwt).
  • 9. Prezentace prototypu aplikace.
  • 10. EDD (Event Driven Development) – websockets, EventHandling, $rootscope eventing; Generování mobilní aplikace – Cordova, PhoneGap, Ionic framework; Generování desktopové aplikace – Electron Framework.
  • 11. Zajímavé knihovny – lodash, websockets, ...; konzultace k projektům.
  • 12. Závěrečná prezentace projektů.
Literatura
    doporučená literatura
  • ŠOCHOVÁ, Zuzana a Eduard KUNCE. Agilní metody řízení projektů. 1. vyd. Brno: Computer Press, 2014, 175 s. ISBN 9788025141946. info
  • ZAKAS, Nicholas C. Javascript pro webové vývojáře : programujeme profesionálně. 1. vyd. Brno: Computer Press, 2009, 832 s. ISBN 9788025125090. 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
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích podzim 2016, podzim 2017, podzim 2018, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.