2024-03-22 01:37:32 +01:00

4.5 KiB

In diesem Kapitel wird die Fallstudie vorgestellt, welche in dieser Bachelorarbeit umgesetzt wurde.

Anforderungen

Um die Nutzbarkeit von Flutter für die Entwicklung von Anwendungen für eingebettete Linux Systeme zu testen, sollte eine Demo Anwendung entwickelt werden, welche möglichst alle wichtigen Aspekte solcher Anwendungen abdeckt. Zur Planung wurden kurz vor der Einreichung der Arbeit einfache Skizzen der Anwendung entwickelt, welche in Abbildung \ref{fig:skizzen} zu sehen sind, jede Skizze stellt eine Seite der Anwendung dar. Die Seiten sind nummeriert und werden im folgenden genauer erläutert.

\begin{figure}[H] \caption{Skizzen der Anwendung} \label{fig:skizzen} \centering \includegraphics[width=5in]{./assets/skizzen/alle.pdf} \end{figure}

Die Startseite der Anwendung (1) ist freigelassen und soll nur ein Platzhalter sein von welchem aus die verschiedenen Funktionalitäten der Anwendung mithilfe eines Menüs erreicht werden können. In der Skizze wird dieses Menü durch den Hamburger Button oben links in den Fenstern dargestellt, dieser soll beim Klicken ein Auswahlmenü für die anderen Fenster öffnen.

Die folgende Tabelle \ref{skizzenTabelle} erläutert die Funktionen, die in den anderen Fenstern der Anwendung getestet werden sollen:

\begin{table}[H] \caption{Funktionen der Skizzen} \label{skizzenTabelle} \resizebox{\textwidth}{!}{% \begin{tabular}{|l|l|} \hline Fenster mit Nummerierung & Funktionen, die hier getestet werden sollen \ \hline Material 3 Widgets (2) & \begin{tabular}[c]{@{}l@{}}Anzeige von einer Auswahl von verschiedenen Material Widgets\ zur Demonstration\end{tabular} \ \hline Open API Tagesschau (3) & \begin{tabular}[c]{@{}l@{}}Anzeige einer endlos scrollbaren Liste, welche Nachrichten von\ der öffentlich zugänglichen Tagesschau API anzeigt.\end{tabular} \ \hline Video-Playback (4) & Test des Video-Playbacks. \ \hline Morse Code (5) & \begin{tabular}[c]{@{}l@{}}In einer Texteingabe soll ein Text geschrieben werden können, \ welcher dann auf einer am Raspberry Pi angeschlossen Led\ als Morsecode abgespielt werden soll. Die Ansteuerung der Led\ \ Dient als Demo für GPIO Geräte, in diesem Fall ein Output.\ Zusätzlich soll auch eine Möglichkeit zur Eingabe des Textes\ implementiert werden, da Flutter im eingebetteten Linux Bereich\ nicht automatisch eine Tastatur bereitstellt.\end{tabular} \ \hline Pixel Matrix (6) & \begin{tabular}[c]{@{}l@{}}Auf einer 8x8 Pixel Matrix soll mit einer Farbauswahl durch\ den Touch Input gemalt werden können. Das gemalte Bild soll\ gleichzeitig auf eine RGB Matrix live übertragen werden,\ welche über den SPI (Serial Peripheral Interface) angesprochen\ wird.\end{tabular} \ \hline System Informationen (7) & \begin{tabular}[c]{@{}l@{}}Zwei Graphen sollen jeweils die CPU-Auslast und den\ RAM-Verbrauch des Raspberry Pis anzeigen. Die Auslesung\ dieser Daten soll über Linux Terminal Befehle geschehen \ und dies demonstrieren.\end{tabular} \ \hline Einstellungen (8) & \begin{tabular}[c]{@{}l@{}}In den Einstellungen soll ein Nachtmodus aktiviert und\ deaktiviert werden können, welcher das Design der kompletten\ Anwendung live entsprechend verändert. Es soll auch das\ WLAN des Raspberry Pis angesteuert werden können. Man soll\ den Netzwerk Manager von Linux ansprechen und eine neue\ Verbindung einrichten können.\end{tabular} \ \hline OpenStreetMap (9) & \begin{tabular}[c]{@{}l@{}}Eine Weltkarte soll live als Raster-Karte geladen werden als\ interaktiven Leistungstest mit Multi-Touch-Gesten. Man soll rein- und\ rauszoomen können.\end{tabular} \ \hline Videospiel (10) & \begin{tabular}[c]{@{}l@{}}Als Leistungstest soll ein Open Source Demo Spiel angezeigt \ werden welches in Flutter implementiert wurde und die\ Leistung der Render Engine von Flutter auf dem Gerät austestet. \ Dieses soll nicht selber implementiert werden, \ sondern es soll eines der Beispiele von Google genutzt werden.\end{tabular} \ \hline \end{tabular}% } \end{table}

In der Implementierung der Anwendung wurden manche Inhalte der Seiten leicht abgeändert. Die größte Änderung ist die Untertrennung mehrerer Seiten auf eine "Benchmark" Seite in der sowohl das Videospiel, die OpenStreetMap und auch der Video-Player getestet werden können. Zusätzlich wurde ein VSync Test und ein weiterer Spiel-Benchmark hinzugefügt. Die fertige Anwendung ähnelt dem Plan jedoch noch stark und alle fertigen Seiten mit ihren implementierten Funktionen werden im Kapitel \ref{features} genauer erläutert.

Verwendete Komponenten