diff --git a/chapters/basics/flutter.tex b/chapters/basics/flutter.tex index 246e3d3..d9b8478 100644 --- a/chapters/basics/flutter.tex +++ b/chapters/basics/flutter.tex @@ -56,6 +56,24 @@ 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. + + +\begin{lstlisting}[caption={StatefulWidget}, label={lst:stateful}] + UI Widget(state) TODO +\end{lstlisting} + +\begin{wrapfigure}{r}{0.33\textwidth} + \centering + \includegraphics[width=0.98\linewidth]{chapters/basics/flutter_tree.png} + \caption{Flutter Widget Tree} + \label{fig:flutterTree} +\end{wrapfigure} + +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? diff --git a/chapters/basics/flutter_tree.png b/chapters/basics/flutter_tree.png new file mode 100644 index 0000000..a38ab04 Binary files /dev/null and b/chapters/basics/flutter_tree.png differ diff --git a/classicthesis-config.tex b/classicthesis-config.tex index adac107..062e2c2 100644 --- a/classicthesis-config.tex +++ b/classicthesis-config.tex @@ -189,6 +189,7 @@ %\PassOptionsToPackage{pdftex}{graphicx} %%%IVO: driver will be chosen automatically \usepackage{graphicx} +\usepackage{wrapfig} % ******************************************************************** % Hyperreferences