Posudek oponenta bakalářské práce
Studijní program:Aplikovaná informatika Studijní obor:Aplikovaná informatika Akademický rok:2020/2021
Název práce:Architektonické vzory iOS aplikací a jejich implementace v jazyce Swift Řešitel:Jan Mašek
Vedoucí práce:Ing. Tomáš Bruckner, Ph.D.
Oponent:Ing. Filip Bajaník
Hlediska Stupeň
hodnocení
1. Jasnost a srozumitelnost formulace tématu a cíle práce 1
2. Rozsah a relevance popisu současného poznání 1
3. Náročnost řešeného tématu práce 2
4. Adekvátnost metod k řešení stanoveného problému, správnost jejich výběru a použití 1
5. Rozsah, hloubka a preciznost popisu výsledku 3
6. Relevance a správnost diskuse výsledku 2
7. Věcný přínos výsledku dosaženého v práci 2
8. Relevance informačních zdrojů a korektnost jejich citování 1
9. Logická stavba práce a vzájemná konzistence jednotlivých částí 1 10. Gramatika, jazykový styl, terminologie a celková úprava práce 2
Konkrétní připomínky a dotazy k práci:
Práce se zabývá architektonickými vzory pro vývoj různě škálovatelných aplikací na platformě iOS. Tvoří rozsáhlý přehled nejpoužívanějších prezentačních architektonických vzorů na platformě. Autor se zabývá jejich teoretickými vlastnostmi, výhodami a nevýhodami. Jeho znalosti a postřehy často vycházejí z praxe a analýzy open-source aplikací a ukazují hlubší porozumění tématu.
Tato bakalářská práce pomůže vývojářům zorientovat se v problematice, a tím jim pomůže při výběru a návrhu vhodné architektury pro jejich nové iOS projekty. Výsledek může také přispět ke zlepšení kvality výsledného produktu, zlepšení testovatelnosti, urychlení nebo lepšímu rozdělení vývoje mezi členy týmu.
Vyzdvihl bych také vhodné použití a návrh architektonického vzoru pro framework SwiftUI.
Zajímavá je například historie vzoru MVC, jeho postupné formování a současná podoba na platformě.
Potenciální nevýhody, které se vzory jako MVP a MVVP snaží potlačit, jsou dobře shrnuty. Pro složitější aplikace jsou navrženy vzory VIPER a VIP, které přerozdělují své zodpovědnosti na jiné speciální objekty.
Chybí mi však méně známé architektonické vzory z třídy funkcionálního programování, jako je Redux.
Některé z uvedených nevýhod však pravděpodobně vycházejí z osobních zkušeností z praxe a mohou vzniknout nesprávnou implementací daného vzoru nebo nevhodnou kombinací jiných návrhových vzorů – nemusí se tedy vždy jednat o problém daného vzoru. Co se týče výhod, častou výhodou alternativních vzorů je proklamovaná testovatelnost, ale nikde není uveden názorný příklad netestovatelného kódu a jeho řešení v jiném vzoru. Bylo by také užitečné rozebrat zmiňované problémy na názorném příkladu.
Jazykový styl, gramatika a terminologie jsou na úrovni a celková struktura práce dává smysl. Osobně bych však vytknul zbytečné používání třetí úrovně v generovaném obsahu, neprokreslené původní grafy a diagramy (některé popisky v angličtině) a černobílé ukázky kódu. Přiložené ukázkové zdrojové kódy jsou přehledné.
Závěr: Bakalářskou práci doporučuji k obhajobě.
Navrhovaná výsledná klasifikace práce: 2
Datum: 4. 6. 2021 Ing. Filip Bajaník
oponent práce