<!--In der heutigen Zeit verbringen Menschen in der Regel mehr Zeit damit, über einen Bildschirm mit Maschinen zu interagieren, anstatt Maschinen mechanisch zu steuern. Dieser Trend lässt sich gut bei der Automobilindustrie oder an Haushaltsgeräten beobachten, wo immer mehr Funktionen über einen Touchscreen mit einer grafischen Benutzeroberfläche (GUI) angesteuert werden. Über die GUI können Benutzer Funktionen wie Musik, Radio, Telefon, Temperaturregelung und mehr ansteuern. Ebenso kann die Öffentlichkeit am Flughafen oder in Restaurants über einen Selbstbedienungskiosk mit Unternehmen kommunizieren. Der Kiosk führt eine GUI auf einem Anzeigegerät aus und über den Touchscreen des Kiosks können Maschinen die Kundenwünsche erfüllen.-->

<!--Zusammenfassend lässt sich sagen, dass es in der Industrie einen zunehmenden Trend gibt, dass der Endverbraucher auf bequeme und effiziente Weise mit GUIs interagiert, um Aufgaben zu erledigen.-->

# Einleitung

## Motivation

Die Entwicklung moderner und ansprechender Benutzeroberflächen (GUIs) für eingebettete
Linux-Systeme ist eine Herausforderung. Herkömmliche GUI-Toolkits stoßen häufig an
ihre Grenzen, wenn es um die Erfüllung der Anforderungen an Leistung,
plattformübergreifende Kompatibilität und Design geht. Flutter,
ein quelloffenes Benutzerschnittstellen-Entwicklungs-Kit von Google,
stellt eine vielversprechende Alternative dar. Es zeichnet sich durch eine native Kompilierung
für eine hohe Leistung und geringen Ressourcenverbrauch, einer flexiblen Architektur,
die an verschiedene Plattformen angepasst werden kann, und seinen Fokus auf moderne
und intuitive Benutzeroberflächen aus. Zudem ist Flutter durch seine BSD-Lizenz
attraktiv für sowohl kommerzielle Anwendungen als auch Hochschul- und Hobbyprojekte,
da es keine Lizenzgebühren oder Einschränkungen gibt.

## Relevanz und Zielsetzung

In dieser Arbeit wird der Einsatz von Flutter für die Entwicklung von GUIs für
eingebettete Linux-Systeme untersucht. Die Arbeit leistet einen wichtigen Beitrag
zu diesem Forschungsbereich, indem sie:

- die Leistungsmerkmale von Flutter auf eingebetteter Hardware detailliert untersucht
  und wertvolle Hinweise für die Auswahl der richtigen Toolkits liefert.
- den Entwicklungsprozess detailliert beschreibt und Herausforderungen sowie
  bewährte Praktiken bei der Verwendung von Flutter in einem eingebetteten Linux-Kontext aufzeigt.
- eine reale eingebettete GUI mit Flutter implementiert und dabei die Fähigkeiten und
  potenziellen Anwendungsfälle des Toolkits hervorhebt.

Die Ergebnisse dieser Arbeit sind relevant für Entwickler
im Bereich eingebetteter Systeme, die moderne,
performante und ansprechende GUIs für Linux-basierte Geräte entwickeln möchten.

<!-- ## Zielsetzung

Ziel der Arbeit ist es, die Potenziale und Herausforderungen von
Flutter im Bereich der GUI-Entwicklung für eingebettete Linux-Systeme
zu beleuchten und Entwicklern wertvolle Hinweise für die Auswahl des
richtigen Toolkits zu liefern. -->

## Problemstellung

Beantwortet werden soll die Frage, inwieweit sich Flutter für die Entwicklung von GUIs
für eingebettete Linux-Systeme eignet. Dazu wird in dieser Arbeit geklärt:
Wie einfach und effizient ist die Entwicklung und Wartung von GUIs mit Flutter?
Welche Auswirkungen hat Flutter auf die Leistung und den Ressourcenverbrauch im
eingebetteten Kontext? Wie hoch ist der Lernaufwand für Entwickler? Welche Community
und Support-Ressourcen stehen für Flutter-Entwickler zur Verfügung? Um diese Fragen
zu beantworten wird die folgende Methodik angewendet.

## Methodik

Um die Forschungsfrage zu beantworten, wird eine Literaturrecherche,
eine experimentelle Untersuchung und eine Auswertung der Untersuchung durchgeführt.
In der Literaturrecherche werden aktuelle Quellen zur Nutzung von Flutter außerhalb
des klassischen App-Entwicklungskontexts, insbesondere für die
Entwicklung von GUIs für eingebettete Systeme, gesucht und ausgewertet.
Die experimentelle Untersuchung umfasst die Implementierung einer
realen eingebetteten Anwendung mit Flutter und die
Bewertung der Leistung, des Ressourcenverbrauchs und der Entwicklungserfahrung.
In der Anwendung werden die Embedder "Flutter-Pi" und "Flutter-Auto" dazu
genauer untersucht, diese ermöglichen die Ausführung von Flutter im eingebetteten Linux-Kontext.
Die Ergebnisse der Untersuchung werden abschließend zusammengefasst und bewertet.
Basierend auf den Ergebnissen wird ein Leitfaden für
die Entwicklung von GUIs für eingebettete Linux-Systeme mit Flutter erstellt.

## Struktur der Arbeit

Die Arbeit ist in acht Kapitel unterteilt. Nach der Einleitung folgt
eine Einführung in die Grundlagen von Flutter und eingebetteten Linux-Systemen.
Danach wird die Literaturrecherche durchgeführt und die Ergebnisse
werden festgehalten. Anschließend wird die experimentelle Untersuchung,
im diesen Fall die Fallstudie mit der Flutter Anwendung im eingebetteten
Linux-Kontext, genauer erläutert und es wird erklärt, wie das Projekt geplant
wurde und die Entwicklungsumgebung aufgebaut ist. Danach wird die Implementierung der
Flutter Anwendung beschrieben und dann wird die Erstellung der
angepassten Linux Distribution mit Yocto für die Nutzung der entwickelten Flutter
Anwendung im eingebetteten Linux Bereich erklärt. Abschließend werden die Ergebnisse
der Arbeit festgehalten und es wird eine Schlussfolgerung gezogen.
