From 747034a340a6eb9997aaaee4dc1d7f8b1eb04f05 Mon Sep 17 00:00:00 2001
From: Jonas Franz <jonas.franz@incloud.de>
Date: Sun, 23 Jan 2022 11:47:06 +0100
Subject: [PATCH] Add statemenegment

---
 chapters/basics/basics.tex           |   3 +-
 chapters/basics/flutter.tex          |  41 +++++++++++++++++-------
 chapters/basics/setState_tree.png    | Bin 0 -> 21559 bytes
 chapters/basics/state-management.tex |  45 +++++++++++++++++++++++++++
 4 files changed, 77 insertions(+), 12 deletions(-)
 create mode 100644 chapters/basics/setState_tree.png
 create mode 100644 chapters/basics/state-management.tex

diff --git a/chapters/basics/basics.tex b/chapters/basics/basics.tex
index f755cc6..a03b657 100644
--- a/chapters/basics/basics.tex
+++ b/chapters/basics/basics.tex
@@ -2,4 +2,5 @@
 
 In diesem Kapitel werden für die weitere Evaluation benötigte Grundlagen vermittelt. Dabei wird sowohl auf bestehende Literatur eingegangen als auch an Hand von Beispielen Konzepte erläutert.
 
-\input{chapters/basics/flutter.tex}
\ No newline at end of file
+\input{chapters/basics/flutter.tex}
+\input{chapters/basics/state-management.tex}
\ No newline at end of file
diff --git a/chapters/basics/flutter.tex b/chapters/basics/flutter.tex
index d9b8478..254d4f6 100644
--- a/chapters/basics/flutter.tex
+++ b/chapters/basics/flutter.tex
@@ -56,11 +56,37 @@ In Flutter wird bei Widgets grundsätzlich zwischen \texttt{StatelessWidget} und
 
 Ein \texttt{StatelessWidget} hat grundsätzlich keinen veränderbaren Zustand. Dies heißt, dass alle Klassenvariablen unveränderlich sein sollen. In Dart wird dies mit dem Modifikator \texttt{final} gekennzeichnet. Daraus wird impliziert, dass alle Informationen zum Zustand des Widgets aus den im Konstruktor übergebenen werten stammen müssen. Somit wird das Widget nur neu gebaut, wenn sich Änderungen an den Werten des Konstruktors durch Änderungen in der Hierarchie darüber liegenden Widgets ergeben. 
 
-Ein \texttt{StatefulWidget} auf der anderen Hand besteht aus zwei Klassen. Zum einen dem \texttt{StatefulWidget} zum anderen dem \texttt{State} dieses Widgets. Diese Widgets vereinen die Möglichkeiten eines \texttt{StatelessWidget} mit der Möglichkeit, den Zustand des Widgets selbstständig zu verändern. Dies wäre beispielsweise bei einem Textfeld relevant, wenn der Text geändert wird. Zustandsänderungen werden dabei über die, wie in \autoref{lst:stateful} gezeigte, \texttt{setState} Methode vorgenommen, damit auch die Änderung an das Framework kommuniziert wird.
+Ein \texttt{StatefulWidget} auf der anderen Hand besteht aus zwei Klassen. Zum einen dem \texttt{StatefulWidget} zum anderen dem \texttt{State} dieses Widgets. Diese Widgets vereinen die Möglichkeiten eines \texttt{StatelessWidget} mit der Möglichkeit, den Zustand des Widgets selbstständig zu verändern. Dies wäre beispielsweise bei einem Zähler relevant, wenn der Zähler erhöhrt werden soll. Zustandsänderungen werden dabei über die, wie in \autoref{lst:stateful} gezeigte, \texttt{setState} Methode vorgenommen, damit auch die Änderung an das Framework kommuniziert wird. Intern wird dabei das Widget als \texttt{dirty} markiert, welches dazu führt, dass die Build-Methode des States erneut aufgerufen wird durch das Framework. Entscheidend ist dabei, dass der State persistent bleibt, auch wenn sich beispielsweise Konstruktor-Parameter der \texttt{StatefulWidget}-Klasse ändern.
 
 
 \begin{lstlisting}[caption={StatefulWidget}, label={lst:stateful}]
-    UI Widget(state) TODO
+class Counter extends StatefulWidget {
+    const Counter({Key? key}) : super(key: key);
+    
+    @override
+    State<Counter> createState() => _CounterState();
+}
+    
+class _CounterState extends State<Counter> {
+    int _counter = 0;
+    
+    void _incrementCounter() {
+        setState(() {
+            _counter++;
+        });
+    }
+    
+    @override
+    Widget build(BuildContext context) {
+        return Column(
+            children: [
+                Text("Count: $_counter"),
+                IconButton(icon: Icon(Icons.add), 
+                  onPressed: _incrementCounter),
+            ],
+        );
+    }
+}
 \end{lstlisting}
 
 \begin{wrapfigure}{r}{0.33\textwidth}
@@ -72,13 +98,6 @@ Ein \texttt{StatefulWidget} auf der anderen Hand besteht aus zwei Klassen. Zum e
 
 Durch die Kombination von diversen Widgets entsteht so ein Widget-Baum, wie in \autoref{fig:flutterTree} zu sehen ist. Dieser Baum lässt sich auch mittels Hilfswerkzeugen traversieren, ist aber von der Grundstruktur für einen unidirektionalen Datenfluss ausgelegt. Dies bedeutete, dass Widgets nur untergeordnete Widgets durch Änderung derer Zustände verändern können sollen. Übergeordnete Widgets können somit - jedenfalls nicht direkt - verändert werden.
 
-Zusammenfassend wird festgehalten, dass der Zustand und die Verwaltung des Zustands von Widgets einen wichtigen Teil im Lebenszyklus einer Flutter-Anwendung ist.
-
-Was ist Flutter?
-
-Wie funktioniert Flutter?
-
-Wie ist die Architektur eine Flutter Anwendung?
-
-Wie funktioniert Testing unter Flutter?
+Anders als bei der nativen Entwicklung, wird hier also die Benutzeroberfläche deklarativ programmiert. Bei der Entwicklung wird also festgelegt, wie welches Element bei welchem Zustands auszusehen hat, ohne dabei den Kontrollfluss beschreiben zu müssen.
 
+Zusammenfassend wird festgehalten, dass der Zustand und die Verwaltung des Zustands von Widgets einen wichtigen Teil im Lebenszyklus einer Flutter-Anwendung ist. Dies gibt schon einen Vorgriff darauf, dass  hier eine Lösung gefunden werden muss, welche auf diverse Szenarien anwendbar sein muss.
diff --git a/chapters/basics/setState_tree.png b/chapters/basics/setState_tree.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7952a61f9a8b881d3e546ae1160ba74d503360b
GIT binary patch
literal 21559
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
XT2!TPzo4zP00000NkvXXu0mjf#>}$7

literal 0
HcmV?d00001

diff --git a/chapters/basics/state-management.tex b/chapters/basics/state-management.tex
new file mode 100644
index 0000000..24910da
--- /dev/null
+++ b/chapters/basics/state-management.tex
@@ -0,0 +1,45 @@
+\pagebreak
+\section{Zustandsverwaltung}
+
+Nachdem nun die Grundlagen des Flutter-Frameworks und die Details der Zustandsverwaltung der Widgets im letzten Kapitel erläutert wurden, kann jetzt betrachtet werden, was überhaupt die Zustandsverwaltung umfasst.
+
+\citeauthor{flutterinaction} fasst den Komplex der Zustandsverwaltung in Flutter in seinem Standardwerk \textit{\citetitle{flutterinaction}} wie folgt zusammen:
+
+\begin{displayquote}[{\cite[Kap.8.1.2]{flutterinaction}}]
+    State management is a combination of passing data around the app, but also re-rendering pieces of your app at the right time. All the re-rendering in Flutter is dependent on the State object and its lifecycle. 
+\end{displayquote}
+
+Daraus ergibt sich, dass die State-Klasse in der Zustandsverwaltung von Flutter eine wichtige Rolle spielt, und alle Ansätze dieses Konzept benutzen müssen, um in das Flutter-Framework integrierbar zu sein. \citeauthor{flutterinaction} beschreibt dabei die Aufgabe der Zustandsverwaltung eher auf einer Ebene des Datenflusses und des Ablaufs der Neu-Erstellung der Benutzeroberfläche.
+
+\citeauthor{managingstateinflutter} sieht die Zustandsverwaltung dabei eher auf einer eher ablaufszentrierten Sichtweise indem er die Aufgabe der Zustandsverwaltung wie folgt analysiert:
+
+\begin{displayquote}[{\cite[Kap.1]{managingstateinflutter}}]
+    State management is simply a technique, or multiple techniques, used to take care of the changes that occur in your application. 
+\end{displayquote}
+
+Als Beispiele nennt er dabei, das Reagieren auf Interaktionen mit der Anwendung oder die Beibehaltung des Datenflusses über mehrere Screens hinweg.
+
+Beide Sichtweisen haben gemein, dass die Grundaufgabe der Zustandsverwaltung die Sicherstellung eines korrekten Zustands der Anwendung, einzelner Screens oder einzelner Widgets sein muss, sowie die mögliche Überführung dieses Zustands in einen neuen Zustand als Reaktion auf Veränderungen. 
+
+Nachdem nun eingeführt wurde, was unter einer Zustandsverwaltung in Flutter zu verstehen ist, werden nun mögliche bestehende Ansätze für eine Zustandsverwaltung skizziert, um im weiteren Verlauf der Ausarbeitung im Analyse- und Evaluationskapitel diese eingehender zu untersuchen.
+
+\subsection{Mitgelieferte Werkzeuge}
+
+Die erste Kategorie der Zustandsverwaltungssysteme umfasst jene, welche ohne eine zusätzliche Bibliothek auskommen und somit de facto im Flutter Framework mitgeliefert werden. Hierbei wird mit den einfacheren Konzepten und Werkzeugen begonnen und anschließend die komplexeren Konzepte und Werkzeuge vorgestellt.
+
+\subsubsection{setState}
+
+Die wohl grundlegendeste Möglichkeit, den Zustand in einer Flutter Anwendung zu verwalten stellt das ausschließliche Benutzen der \texttt{setState}-Methode dar. Ein Beispiel zur Verwendung wurde bereits in \autoref{lst:stateful} in der \texttt{incrementCounter}-Methode eingeführt. Hier findet die Speicherung des Zustands also durch die direkte Manipulation des States von StatefulWidgets statt. 
+
+\begin{wrapfigure}{l}{0.33\textwidth}
+    \centering
+    \includegraphics[width=0.98\linewidth]{chapters/basics/setState_tree.png}
+    \caption{Flutter Widget Tree bei setState}
+    \label{fig:flutterTreeSetState}
+\end{wrapfigure}
+
+Wie vorausgehend beschrieben, muss ein Zustandsverwaltungssystem aber nicht nur den Zustand einzelner Widgets verwalten können, sondern auch von größeren Ordnungen wie beispielsweise von Screens oder der ganzen Anwendung. Um dies bei diesem Ansatz erreichen zu können, wir der Zustand oder Teile des Zustands über die Konstruktor innerhalb des Widget-Trees weiter nach unten gegeben. 
+
+Anschaulich lässt sich dies durch das Beispiel \autoref{fig:flutterTreeSetState} darstellen, welches eine Anwendung, die global speichern muss, welche Person aktuell angemeldet ist, zeigt. Da diese Information in diesem Beispiel an diversen Stellen innerhalb der Anwendung benötigt wird, macht es Sinn, diese Information weit oben im Baum in Form eines \texttt{StatefulWidget} namens \texttt{LoginStateWidget} zu speichern, da der Datenfluss innerhalb des Baums ausschließlich unidirektional von oben nach unten stattfindet. Um diese Information nun an die Widgets zu kommunizieren, die es benötigen - in diesem Fall \texttt{InformationConsumer} - muss \texttt{LoginStateWidget} die Information per Konstruktor an das nachgelagerte Widget weitergeben. Diese nachgelagerten Widgets (\texttt{A, B, C}) müssen dies ebenfalls tun, bis die Information am Ziel \texttt{InformationConsumer} angekommen ist. Diese Anwendungsmuster wird in der Literatur als \blockquote[{\cite[Kap.8.2]{flutterinaction}}]{lifting state up} bezeichnet.
+
+ \subsubsection{InheritedWidget}
\ No newline at end of file