MALOUŠEK, J. Návrhové vzory architektury OS Android s využitím jazyka Kotlin [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2020.

Posudky

Posudek vedoucího

Zeman, Kryštof

Diplomová práce studenta Jana Malouška se v teoretické části podrobně věnuje problematice návrhových vzorů. Nejdříve jsou popsány návrhové vzory tvořivé, strukturální a behaviorální. Následně jsou detailně rozebrány a popsány nejrozšířenější architektonické návrhové vzory společně s novějšími přístupy v podobě Repository a Clean architecture. Dále navazuje popis programovacího jazyka Kotlin, u kterého je kladen důraz na jeho nejzajímavější vlastnosti, podrobný popis dependency injection a reaktivního programování. V poslední kapitole se student zaobírá metodami pro testování aplikací, které by měly být nedílnou součástí každého vývoje. V praktické části práce student nejdříve provedl rešerši aktuálně dostupných aplikací pro jím zvolené téma, na jejímž základě navrhl téma a strukturu jeho vlastní aplikace. Programová struktura je velmi pečlivě popsána a rozdělena do několika částí, tak aby reflektovala významné části celého řešení (UI a UX, Struktura dat). Následně student celou aplikaci naprogramoval, přičemž kladl důraz na dodržování výše popsaných návrhových vzorů a programátorských praktik. Student po celý rok pilně pracoval, pravidelně konzultoval stav své práce a vytvořil velmi kvalitní práci jak z hlediska teoretické části, tak z hlediska praktické implementace. Rád bych zde vyzvedl jeho aktivitu nad rámec zadání, kdy aplikaci rozšířil o komplexní databázi středoškolské matematiky. Student následně aplikaci publikoval do obchodu Google Play a postaral se i o její propagaci v médiích. Dokázal také samostatně řešit problémy a výsledky jeho práce splňují všechny body zadání. Na základě výše uvedených důvodu hodnotím práci známkou A / 100 bodů.

Navrhovaná známka
A
Body
100

Posudek oponenta

Ilgner, Petr

Předložená diplomová práce se zaobírá problematikou, jejíž kvalitní a soudobé zpracování vyžaduje důkladné pochopení, a značný přehled včetně znalosti moderních trendů a doporučených přístupů. Lze konstatovat, že zadání bylo splněno bez výhrad. Teoretická část velmi čtivě a srozumitelně popisuje popsanou problematiku návrhových vzorů a dalších aspektů vývoje. Předložená teorie je aktuální a je podepřena množstvím komentovaných ukázek zdrojových kódů a UML diagramů. Lze vyzdvihnout popis motivace pro použití jednotlivých vzorů a metod. Praktickou částí je aplikace, která má za cíl demonstrovat co nejvíce z popsaných technik. Student se pro tuto demonstraci rozhodl zpracovat aplikaci pro podporu výuky Mathman. Její zpracování je na vynikající úrovni, má velice povedené uživatelské rozhraní a vizuální styl. Součástí je rozsáhlá báze matematické teorie v oblasti aritmetiky, algebraických výrazů, rovnicí a komplexních čísel. Součástí aplikace jsou interaktivní testy pro ověření nabytých znalostí. Uživatele motivuje povedený systém získávání zkušeností a průběžných ocenění. Je umožněno uložit získaný postup v cloudové službě a následnou synchronizaci na více zařízení uživatele. Zdrojový kód aplikace je přehledný a dobře komentovaný. Dekompozice na dílčí části je příkladná a respektuje popsané principy. Bohužel nejsou zahrnuty žádné jednotkové ani integrační testy popsané v šesté kapitole. Aplikace však byla testována manuálními a robotizovanými testy uživatelského rozhraní. Je nutné zmínit, že velká část praktické části byla zpracována nad rámec zadání. Aplikace byla publikována na Google Play a autor se spolu se členy své rodiny postaral také o popularizaci aplikace, například vytvořením Facebookové stránky nebo propagací v médiích. Aplikace byla zmíněna mj. na univerzitním portálu zvut.cz nebo portálu mobilmania.cz. Po formální stránce je práce zpracována velmi dobře. Práci nadstandardního rozsahu tvoří celkem deset kapitol, které na sebe dobře navazují. Její formální však snižují typografické nedostatky – například opakovaná záměna spojovníku a pomlčky, nejednotné formátování klíčových slov programovacího jazyku. Některé anglické výrazy by bylo vhodné přeložit (např. „observovat“, „parsovat“). Je také zahrnuto několik zbytečných prázdných stran. Práce využívá 63 informačních zdrojů různých typů a práce s nimi je v pořádku. Drobnou výtkou je neuvedení zdroje tvrzení o aplikaci Khan Academy v kap. 7.3.1. Práci považuji i přes mírné formální nedostatky za vynikající, a tedy doporučuji k obhajobě s hodnocením A/98 bodů.

Navrhovaná známka
A
Body
98

Otázky

eVSKP id 126053