Práce se zaměřuje na porovnání implementace návrhového vzoru Model-View-View- Model (MVVM) ve vývoji mobilních aplikací pro nativní vývoj pro platformy iOS a Android, a pro multiplatformní vývoj v technologii Xamarin.Forms. Motivací pro tento výzkum byl fakt, že v reálném pracovním prostředí se každý tým nebo firma potýká s problémem jak správně tento návrhový vzor implementovat a jaký způsob (nativní nebo multiplatformní) vybrat pro vývoj každé nové aplikace. Rešerše proběhla tak, že pro každou platformu byl proveden výzkum platformních zásad, dokumentací a možností, jak tento návrhový vzor implementovat, a pak byl vybrán nejčistší a ne- jvíce doporučený způsob pro vývoj ukázkové aplikace. Pro tuto aplikaci byla zvolena množina klíčových komponent a dat, která tvoří jejich obsah, a byly implementovány tři aplikace - nativní iOS aplikace v programovacím jazyku Swift, nativní Android aplikace v jazyku Kotlin a multiplatformní aplikace pro obě platformy v jazyku C# v technologii Xamarin.Forms. Vývoj těchto tří aplikací byl následně detailně popsán s hlavním zaměřením na popis implementace návrhového vzoru (MVVM). V závěru jsou všechny tyto způsoby implementace vyhodnoceny a porovnány.
Anotace v angličtině
Thesis focuses on comparison how the Model-View-ViewModel (MVVM) architecture pattern is implemented for mobile applications in native iOS and Android development, and in multiplatform development using Xamarin.Forms. Motivation for this research was a fact that in real working environment, every team or company deals with this problem how to correctly implement this architecture or which approach (native or multiplatform) to choose for each new application. The research was conducted in such way that guidelines, documentation and possibilities how this architecture can be implemented were researched for each platform and then the most clean and recom- mended way was chosen for development of an example application. For this example application were set key components and example data to fill its content, and then three applications were developed - native iOS in Swift programming language, native Android in Kotlin, and multiplatform application for both iOS and Android in C# using Xamarin.Forms. Development of these three applications was described in detail with focus on MVVM architecture implementation. In the end all these implementation approaches are evaluated and compared.
Práce se zaměřuje na porovnání implementace návrhového vzoru Model-View-View- Model (MVVM) ve vývoji mobilních aplikací pro nativní vývoj pro platformy iOS a Android, a pro multiplatformní vývoj v technologii Xamarin.Forms. Motivací pro tento výzkum byl fakt, že v reálném pracovním prostředí se každý tým nebo firma potýká s problémem jak správně tento návrhový vzor implementovat a jaký způsob (nativní nebo multiplatformní) vybrat pro vývoj každé nové aplikace. Rešerše proběhla tak, že pro každou platformu byl proveden výzkum platformních zásad, dokumentací a možností, jak tento návrhový vzor implementovat, a pak byl vybrán nejčistší a ne- jvíce doporučený způsob pro vývoj ukázkové aplikace. Pro tuto aplikaci byla zvolena množina klíčových komponent a dat, která tvoří jejich obsah, a byly implementovány tři aplikace - nativní iOS aplikace v programovacím jazyku Swift, nativní Android aplikace v jazyku Kotlin a multiplatformní aplikace pro obě platformy v jazyku C# v technologii Xamarin.Forms. Vývoj těchto tří aplikací byl následně detailně popsán s hlavním zaměřením na popis implementace návrhového vzoru (MVVM). V závěru jsou všechny tyto způsoby implementace vyhodnoceny a porovnány.
Anotace v angličtině
Thesis focuses on comparison how the Model-View-ViewModel (MVVM) architecture pattern is implemented for mobile applications in native iOS and Android development, and in multiplatform development using Xamarin.Forms. Motivation for this research was a fact that in real working environment, every team or company deals with this problem how to correctly implement this architecture or which approach (native or multiplatform) to choose for each new application. The research was conducted in such way that guidelines, documentation and possibilities how this architecture can be implemented were researched for each platform and then the most clean and recom- mended way was chosen for development of an example application. For this example application were set key components and example data to fill its content, and then three applications were developed - native iOS in Swift programming language, native Android in Kotlin, and multiplatform application for both iOS and Android in C# using Xamarin.Forms. Development of these three applications was described in detail with focus on MVVM architecture implementation. In the end all these implementation approaches are evaluated and compared.
Popište současný stav technologií mobilního vývoje.
Zaměřte se na framework Xamarin.Forms, MVVM-Cross a nativní vývoj pro platformy Android a iOS.
Porovnejte implementaci architektury MVVM v různých frameworcích.
Navrhněte a popište ukázkovou aplikaci.
Vytvořte vzorová řešení demonstrující klíčové prvky navržené aplikace na různých platformách.
Zhodnoťte výhody a nevýhody jednotlivých řešení.
Zásady pro vypracování
Popište současný stav technologií mobilního vývoje.
Zaměřte se na framework Xamarin.Forms, MVVM-Cross a nativní vývoj pro platformy Android a iOS.
Porovnejte implementaci architektury MVVM v různých frameworcích.
Navrhněte a popište ukázkovou aplikaci.
Vytvořte vzorová řešení demonstrující klíčové prvky navržené aplikace na různých platformách.
Zhodnoťte výhody a nevýhody jednotlivých řešení.
Seznam doporučené literatury
MARTIN, Robert C. Clean Code: A Handbook of Agile Software Craftsmanship. Upper Saddle River, NJ: Prentice Hall PTR, 2008. ISBN 978-0-13-235088-4.
HERMES, Dan. Building Xamarin.Forms mobile apps using XAML: Mobile cross-platform XAML and Xamarin.Forms fundamentals. New York, NY: Springer Science Business Media, 2019. ISBN 978-148-4240-298.
VERSLUIS, Gerald. Xamarin.Forms Essentials: First Steps Toward Cross-Platform Mobile Apps. New York, NY: Springer Science Business Media, 2017. ISBN 978-148-4232-392.
Human Interface Guidelines | Apple Inc. [online]. Dostupné z: https://developer.apple.com/design/human-interface-guidelines
Apple Developer Documentation | Apple Inc. [online]. Dostupné z: https://developer.apple.com/documentation
Seznam doporučené literatury
MARTIN, Robert C. Clean Code: A Handbook of Agile Software Craftsmanship. Upper Saddle River, NJ: Prentice Hall PTR, 2008. ISBN 978-0-13-235088-4.
HERMES, Dan. Building Xamarin.Forms mobile apps using XAML: Mobile cross-platform XAML and Xamarin.Forms fundamentals. New York, NY: Springer Science Business Media, 2019. ISBN 978-148-4240-298.
VERSLUIS, Gerald. Xamarin.Forms Essentials: First Steps Toward Cross-Platform Mobile Apps. New York, NY: Springer Science Business Media, 2017. ISBN 978-148-4232-392.
Human Interface Guidelines | Apple Inc. [online]. Dostupné z: https://developer.apple.com/design/human-interface-guidelines
Apple Developer Documentation | Apple Inc. [online]. Dostupné z: https://developer.apple.com/documentation
Přílohy volně vložené
Source code of iOS application,
Source code of Android application,
Source code of Xamarin.Forms application,
Screenshots of iOS application,
Screenshots of Android application,
Screenshots of Xamarin.Forms applications,
Screen record of running iOS application,
Screen record of running Android application,
Screen record of running Xamarin.Forms applications
Přílohy vázané v práci
ilustrace, grafy, schémata
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Diplomantka seznámila komisi s výsledky své diplomové práce. Poté byly prezentovány posudky vedoucího a oponenta diplomové práce. Poté byla vedena rozprava během které byly položeny následující dotazy:
Přínosem práce je, že představuje zajímavé srovnání implementace vzoru MVVM v různorodých frameworcích pro tvorbu uživatelského rozhraní. (dr. Král)
Diplomantka si vybrala poměrně náročný úkol multiplatformního přístupu k programování mobilních aplikací, s možností nasazení jak na platformách iOS, Androidu, ale i klasickém webovém rozhraní. Úroveň práce je vynikající. Jednak co se týká popisu a obsahu teoretické části, ale také výsledků, které vyplývají z části praktické. Prokázala skvělé programátorské schopnosti a velmi dobrou orientaci v popisovaných vývojových platformách.
1. Porovnejte prosím, vámi popisovaný návrhový vzor MVVM s architekturou návrhového vzoru MVC (Model-View-Controller).
2. Porovnejte vývojová prostředí a přenositelnosti projektů v iOS a Android z hlediska velmi rychlého (marketingově patrně nezbytného, avšak technicky mnohdy zbytečného) uvolňování nových verzí operačních systémů. (dr. Lukašík)
Jaké máte zkušenosti s prací v daném prostředí? (prof. Jašek)
Pro kterou banku vyvíjíte aplikaci? (dr. Matýsek)
V čem píšete aplikaci? Máte srovnání vývojových přístupů? Co je lepší použít: nativní nebo multiplatformní framework z hlediska udržitelnosti? Když budu mít multiplatformní framework, nezkrátí se vývoj? A je to výhodou? (dr. Bližňák)
Diplomantka pohotově reagovala a všechny otázky správně zodpověděla.