PAZOUR, D. Multiplatformní aplikace pro vzdálené monitorování a ovládání mobilního robotu ve frameworku Compose Multiplatform [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2025.

Posudky

Posudek vedoucího

Svědiroh, Stanislav

Student David Pazour pracoval pod mým vedením na zadání práce, které reflektovalo potřeby skupiny robotiky prozkoumat možnosti multiplatformního vývoje aplikací pro vzdálené řízení mobilních robotů. Zadání práce bych hodnotil jako středně obtížné a to z důvodu nutnosti získat alespoň základní pochopení pro několik softwarových frameworků najednou. Cílem práce bylo vytvořit multiplatformní aplikaci pro několik operačních systémů, díky které budeme schopni sdílet většinu logiky bez nutnosti jejího zrcadlení pro každou ze zvolených platforem. Jako hlavní platformy jsme identifikovali Desktop a Android. Student po celé dva semestry pracoval vzorně, často konzultoval buď formou e-mailu, či osobně. Ve své práci se mu povedlo seznámit se s programovacím jazykem Kotlin, jeho rozšířením „Multiplatform“ a frameworky Compose Multiplatform a GStreamer. Práce tak poskytuje vcelku přehledný vhled do zmíněné problematiky s důrazem na věcný popis jednotlivých konceptů. Celý studentem navržený program ctil návrhový vzor MVVM, který je oficiálně doporučovaný společností Google, která Kotlin Multiplatform spravuje. Po jazykové stránce hodnotím práci jako dobrou a vhodně členěnou. Svým rozsahem se od úvodu po závěr pohybuje na samé hranici 30 stran, což nevidím nutně jako nedostatek, jelikož sama práce z podstaty neobsahuje nutnost výsledky zdlouhavě testovat a prezentovat je s měřenými hodnotami v objemných tabulkách. Naopak mám pocit, že věcnost a stručnost práci jen prospěla. Co se týká funkčnosti samotné aplikace, pro její testování si student nejprve vyvinul skript, který nahrazoval komunikaci se samotným fyzickým robotem. Na něm ověřil, že řídící data, která robotu odesílá, jsou za všech okolností validní a nepředstavují tak riziko pro cenný hardware. Koncem letního semestru tak mohl proběhnout test na reálném zařízení, kde student demonstroval, až na malé bugy v mobilní verzi, funkční a velice responzivní aplikaci. V rámci testování byl robot ovládán skrze WiFi až na samotnou hranici dosahu jejího signálu. Osobně výsledek práce hodnotím jako zdařilý a na jejích základech bude dále stavěno. Zadání práce bylo splněno.

Navrhovaná známka
B
Body
85

Posudek oponenta

Ligocki, Adam

Bakalářská práce se zabývá návrhem a implementací multiplatformní aplikace pro vzdálené ovládání mobilního robota s využitím frameworku Kotlin Multiplatform a Compose Multiplatform. Zadání odpovídá současným trendům v oblasti softwarového vývoje a práce tematicky dobře zapadá do rámce oboru automatizace a měřicí techniky. Autor věnuje značnou část textu teoretickému úvodu do použitých technologií. Tento přístup má své klady – student prokazuje snahu porozumět moderním nástrojům a pečlivě vysvětluje jejich principy, zejména v kapitolách o Kotlinu, MVVM a přenosu dat přes síť. Pochopení architektonického vzoru MVVM hodnotím jako dostatečné. Vysvětlení korutin je sice spíše povrchní, ale v jádru věcné. Na druhou stranu je třeba upozornit, že student občas zabíhá až příliš do detailů technologických nástrojů – místy působí práce spíše jako učebnice nebo osobní průzkum nových technologií (například rozsáhlé pasáže o bytekódu, deklaracích expected/actual či o vnitřnostech GStreameru). Naproti tomu se vlastní návrh aplikace objevuje až ve druhé polovině práce, konkrétně od strany 33, a samotná diskuse o návrhu UI/UX zabírá jen několik stránek. To považuji za nevyvážené – více prostoru by si zasloužil samotný návrh interakce s uživatelem, použití na konkrétním robotu a hlubší analýza přínosu navrženého řešení. Rovněž postrádám analýzu existujících řešení – průzkum trhu, inspiraci v jiných aplikacích, srovnání přístupů a zhodnocení, proč byl zvolen právě Kotlin/Compose Multiplatform. V práci není dostatečně vysvětleno, proč nebyly zvoleny alternativy jako Flutter (nabízející rovněž multiplatformní vývoj). Není ani zmíněno WebAssembly jako možná platforma, přestože se část práce zabývá multiplatformními technologiemi obecně. Jazyková a stylistická stránka je na dobré úrovni. Dokumentace rozhodnutí je srozumitelná, byť někdy autor vkládá části zdrojového kódu formou obrázku (např. obr. 2.7), což je nevhodné. Kapitola o GStreameru je technicky přesná, avšak složitě podaná – pro čtenáře bez předchozí znalosti této knihovny může být obtížně srozumitelná. Z hlediska realizace oceňuji, že byla vyvinuta funkční aplikace a byla reálně testována s robotem. Komunikační rozhraní (přes UDP) je správně navrženo s ohledem na požadavky na latenci. Práce vykazuje dobrou technickou úroveň, ale působí spíše jako výsledek učení nové technologie než jako projekt s jasně definovaným cílem a evaluací přínosů. Závěrem: práce ukazuje, že student zvládl použité technologie, nicméně struktura práce, absence kritické analýzy alternativ a mělký návrh UX snižují její aplikační hodnotu. Přes tyto výtky považuji práci za technicky kvalitní a doporučuji ji k obhajobě.

Navrhovaná známka
C
Body
79

eVSKP id 168024