PV292 Multiplatformní vývoj Flutter aplikací

Fakulta informatiky
podzim 2023
Rozsah
2/1/1. 4 kr. (plus ukončení). Ukončení: k.
Vyučující
doc. Ing. RNDr. Barbora Bühnová, Ph.D. (přednášející)
Mgr. Rastislav Mirek (přednášející)
Bc. Pavel Jakubec (cvičící)
Mgr. Jakub Bateľ (cvičící)
Bc. Alžbeta Hajná (pomocník)
Bc. Matěj Gorgol (pomocník)
Poskytovatelé Specifické podpory výuky
Zbyněk Cincibus (přepisovatel)
Garance
doc. Ing. RNDr. Barbora Bühnová, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
St 18:00–19:50 A217
  • Rozvrh seminárních/paralelních skupin:
PV292/01: St 16:00–17:50 A318, J. Bateľ
PV292/02: Út 18:00–19:50 A319, P. Jakubec
PV292/03: Čt 18:00–19:50 A320, P. Jakubec
PV292/04: Út 16:00–17:50 A319, J. Bateľ
Předpoklady
PB162 Programování Java || PV168 Seminář programování Java || PA165 Java Enterprise Applications || PV178 Úvod do vývoje v C#/.NET || PV256 Úvod do vývoje pro Android || PB138 Moderní značkovací jazyky || SOUHLAS
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 80 stud.
Momentální stav registrace a zápisu: zapsáno: 56/80, pouze zareg.: 0/80, pouze zareg. s předností (mateřské obory): 0/80
Mateřské obory/plány
Cíle předmětu
Kurz se zaměřuje na koncepty a moderní trendy ve vývoji frontendových aplikací jako je declarative UI a multiplatformní vývoj. Představuje framework Flutter podporující kompilaci jednoho zdrojového kódu UI pro platformy Android, iOS, Windows, Linux, MacOS i webové prohlížeče. V rámci kurzu je kladen důraz na architekturu, objektový návrh a best-practices vývoje deklarativního UI, s ohledem na konvence a principy vývoje ve frameworku Flutter. Diskutována budou i specifika mobilních, desktopových a webových uživatelských rozhraní a přizpůsobení Flutter aplikace na ně. Ve druhé polovině kurzu studenti vypracují týmový projekt, na kterém si vyzkouší návrh a vývoj aplikace pomocí technologie Flutter. Cílem kurzu je také prodat studentům praktické znalosti a zkušenosti s vývojem aplikací (nejen) pomocí této technologie.
Výstupy z učení
Po absolvování tohoto kurzu student bude: - znát principy, nástroje, vzory a techniky doprovázející vývoj Flutter aplikací - schopen/na samostatně nebo v týmu navrhnout a naprogramovat komplexní Flutter aplikaci spustitelnou na platformě podporované frameworkem, případně na všech těchto platformách - rozumět specifikům vývoje deklarativních uživatelských rozhraní - znát konvence, best-practices a nejběžnější řešení správy globálního stavu Flutter aplikací - ovládat prostředí Android Studio nebo Visual Studio Code (podle volby studenta) v jeho aspektech podstatných pro vývoj Flutter aplikací - znát specifika mobilních, desktopových a webových platforem a multiplatformních responzivních uživatelských rozhraní
Osnova
  • Úvod do jazyka Dart a SDK frameworku Flutter, widget jako stavební prvek UI, StatelessWidget, zaklady layotu widgetů na obrazovce, motivace a porovnání s vybranými frontend frameworky StatefullWidget, postupy dekompozice UI na widgety, znovupoužitelnost widgetů, konvenence jazyka Dart a základy architektury Flutter aplikací Navigace, pokročilý layout widgetů, principy Flutter layoutu, postup vývoje multiplatformního UI, responzivní UI, základy asynchronního programování v Dartu Ekosystém Flutter balíčků, správa stavu aplikace v declarative UI frameworcích, koncept a možnosti správy (globálního) stavu ve frameworku Flutter, správa stavu aplikace pomocí techniky ChangeNotifier with Provider Dependency injection ve Flutteru, pokročilá architektura a správa stavu Flutter aplikací, Stream, StreamBuilder, RxDart, koncept UI jako funkce stavu InheritedWidget, správa stavu aplikace pomocí vzoru Bloc, tématování Flutter aplikací Vybrané aspekty architektury a vývoje moderních, komerčních Flutter aplikací, BaaS koncept, Firebase a Flutter Firestore SDK, vztah widget tree k element tree Týmový projekt
Výukové metody
seminární forma, povinná docházka, týmový projekt
Metody hodnocení
Kurz je založen na aktivní participaci studentů. Jako výstup studenti vypracují v samostatných týmech o 2-3 lidech závěrečný projekt a připraví jeho prezentaci (v rozsahu 5 minut) pro ostatní účastníky kurzu. Pro úspěšné absolvování je třeba aktivní particiapace na přednáškách a seminářích, vypracování tří domácích úloh, úspěšné vypracování a odprezentování projektu a splnění případných náležitostí uvedených cvičícím.
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2024.