diff --git a/.DS_Store b/.DS_Store index dd637e3..09ac8df 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Bachelor.bib b/Bachelor.bib index 7870472..975570c 100644 --- a/Bachelor.bib +++ b/Bachelor.bib @@ -103,6 +103,17 @@ file = {/Users/fabian/Zotero/storage/Z2MJS6AP/crops.html} } +@software{CunaristRinf2024, + title = {Cunarist/Rinf}, + date = {2024-03-21T21:50:33Z}, + origdate = {2023-02-15T14:47:18Z}, + url = {https://github.com/cunarist/rinf}, + urldate = {2024-03-22}, + abstract = {Rust for native business logic, Flutter for flexible and beautiful GUI}, + organization = {Cunarist}, + keywords = {android,app,cross-platform,dart,ffi,flutter,gui,ios,linux,macos,production-ready,restful-api,rust,web,windows} +} + @online{CustomFlutterEnginec, title = {Custom {{Flutter Engine Embedders}}}, url = {https://github.com/flutter/flutter/wiki/Custom-Flutter-Engine-Embedders}, @@ -910,6 +921,14 @@ file = {/Users/fabian/Zotero/storage/4YEIHLEH/why-gnu-linux.en.html} } +@online{Riverpod, + title = {Riverpod}, + url = {https://riverpod.dev/}, + urldate = {2024-03-22}, + langid = {english}, + file = {/Users/fabian/Zotero/storage/KM39FJQT/riverpod.dev.html} +} + @online{Roadmap, title = {Roadmap}, url = {https://github.com/flutter/flutter/wiki/Roadmap}, @@ -927,6 +946,17 @@ publisher = {Université de Liège, Liège, Belgique} } +@software{rousseletRrousselGitRiverpod2024, + title = {{{rrousselGit}}/Riverpod}, + author = {Rousselet, Remi}, + date = {2024-03-21T23:37:31Z}, + origdate = {2020-04-16T10:40:29Z}, + url = {https://github.com/rrousselGit/riverpod}, + urldate = {2024-03-22}, + abstract = {A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.}, + keywords = {dart,flutter,hacktoberfest,inheritedwidget,provider,riverpod,service-locator,state-management} +} + @online{RpifirmwareAddFirmware, title = {Rpi-Firmware: Add Firmware for Zero 2w by Classabbyamp · {{Pull Request}} \#39123 · Void-Linux/Void-Packages}, url = {https://github.com/void-linux/void-packages/pull/39123}, diff --git a/assets/mermaid/3SchichtenarchitekturderFlutterAnwendung.pdf b/assets/mermaid/3SchichtenarchitekturderFlutterAnwendung.pdf index 5a685a5..2210df5 100644 Binary files a/assets/mermaid/3SchichtenarchitekturderFlutterAnwendung.pdf and b/assets/mermaid/3SchichtenarchitekturderFlutterAnwendung.pdf differ diff --git a/assets/mermaid/NewsUMLDiagram.pdf b/assets/mermaid/NewsUMLDiagram.pdf index 7973d4f..613ea9f 100644 Binary files a/assets/mermaid/NewsUMLDiagram.pdf and b/assets/mermaid/NewsUMLDiagram.pdf differ diff --git a/chapters/01_titel/01_abstract.md b/chapters/01_titel/01_abstract.md index 18235da..97132df 100644 --- a/chapters/01_titel/01_abstract.md +++ b/chapters/01_titel/01_abstract.md @@ -2,26 +2,20 @@ \renewcommand{\headrulewidth}{0pt} -\begin{abstract} -Die Integration von Flutter's plattformübergreifenden -UI-Fähigkeiten mit der Anpassungsfähigkeit von Embedded -Linux verspricht die Rationalisierung der Entwicklung -von Benutzeroberflächen (UIs) für eingebettete Systeme. -Diese Arbeit untersucht die Eignung von Flutter in +\subsection*{Abstract} + +\noindent + +Die Nutzung des quelloffenen Benutzerschnittstellen-Entwicklungs-Kit +Flutter für eingebettete Linux-Systeme ist ein neuer Ansatz, der +die Entwicklung von Benutzeroberflächen für eingebettete Systeme +vereinfachen könnte. Diese Arbeit untersucht deswegen die Eignung von Flutter in diesem Kontext durch eine Fallstudie: die Entwicklung einer Demo Anwendung mit Flutter für einen Raspberry Pi mit einer angepassten eingebetteten Linux Distribution. -Leistungsmesswerte und der Entwicklungsprozess werden bewertet. +Leistungsmesswerte und der Entwicklungsprozess werden dokumentiert. Die Ergebnisse zeigen, dass Flutter, wenn es angepasst wird, erfolgreich zur Erstellung von attraktiven und benutzerfreundlichen eingebetteten Schnittstellen mit wenigen Kompromissen -bei der Leistung genutzt werden kann. \\ - -Die Arbeit beschäftigt sich im Wesentlichen mit der Entwicklung einer -prototypischen Anwendung mit Flutter für ein eingebettetes Linux System. -Dabei wurde ein Konzept ausgearbeitet, dass zeigt wie Flutter in -eingebetteten Linux Systemen genutzt werden kann und es wurde anhand der -prototypischen Anwendung untersucht, wie gut Flutter für diesen -Verwendungszweck geeignet ist. Es wurden dabei speziell die Embedder +bei der Leistung genutzt werden kann. Es wurden dabei speziell die Embedder Flutter-Pi und Flutter-Auto genauer untersucht. -\end{abstract} diff --git a/chapters/05_fallstudie/02_architektur.md b/chapters/05_fallstudie/02_architektur.md index 865e5cb..a9b5cd9 100644 --- a/chapters/05_fallstudie/02_architektur.md +++ b/chapters/05_fallstudie/02_architektur.md @@ -118,6 +118,28 @@ Für die Demo App ist dies besonders wichtig, da die Anwendung als Einstiegspunkt so später umstrukturiert werden kann für andere Anwendungen, die auf der Demo App aufbauen. +## Riverpod + +Riverpod ist ein einfaches, aber leistungsstarkes +State-Management-Tool für Flutter. Es wurde entwickelt, +um die Verwaltung des Zustands in Flutter-Anwendungen +zu vereinfachen [@rousseletRrousselGitRiverpod2024]. In dem Projekt wurde +Riverpod genutzt, um die Zustandsverwaltung der Anwendung +zwischen der Prästentations- und Geschäftsschicht zu +verwalten. In der Präsentationsschicht werden die +Provider genutzt, um den Zustand von diesen auszulesen und +in der Geschäftsschicht werden die Provider mithilfe des +Riverpod Generators generiert. +Der Riverpod Generator ist ein Code-Generator, der +mit Riverpod verwendet wird, um die Provider und anderen +Boilerplate-Code automatisch zu generieren. Genutzt wird +der Generator mit der Definition "@riverpod" am Anfang +einer Klasse oder Funktion. Mit dem Paket "_riverpod_annotation_" +werden dabei Hinweise im Code Editor angezeigt, die zeigen, +ob der Code für den Generator korrekt ist oder nicht. +Das Projekt ist so konfiguriert, dass "_riverpod_annotation_" +aktiviert ist. Generierte Dart Dateien enden mit "_.g.dart_". +