Add infrasturture for redux

pull/3/head
Jonas Franz 2 years ago
parent 9874c75eab
commit e226a0ac98
  1. 2
      chapters/basics/state-management.tex
  2. 1
      chapters/evaluation/evaluation.tex
  3. 26
      chapters/evaluation/redux.tex
  4. 3
      thesis.tex

@ -195,7 +195,7 @@ class ConsumingWidget extends ConsumerWidget {
Bei \texttt{flutter\_riverpod} werden die bereits eingeführten Widget-Typen \texttt{StatefulWidget} und \texttt{StatelessWidget} durch neue Typen ergänzt beziehungsweise ersetzt. Einer dieser neuen Typen ist \texttt{ConsumerWidget}. Durch das Erben von dieser Klasse, wird der \texttt{build}-Methode des Widgets eine neue Variable ergänzt, über die der Zustand von Riverpod-Providern abgefragt werden kann, wie in \autoref{lst:ConsumerWidget} zu sehen ist. Die hier verwendete \texttt{watch}-Methode bewirkt, dass das Widget neu gebaut wird, wenn sich der betreffende Provider ändert.
\subsection{Redux}
\label{sec:redux}
Redux ist eine Zustandsverwaltungssystem, welches ursprüunglich für React enwickelt worden ist. React ist ein JavaScript-Bibliothek zum Bauen von Benutzeroberflächen. Da React und Flutter ähnliche Techniken wie Widgets oder das State-Prinzip verwenden, lässt sich dieser Ansatz auf Flutter und Dart übertragen.
Redux basiert auf drei grundlegenden Prinzipien:

@ -19,6 +19,7 @@ Dieser Ansatz konnte nicht die Mindestanforderungen an die Beispielanwendung ums
\input{chapters/evaluation/bloc.tex}
\input{chapters/evaluation/provider.tex}
\input{chapters/evaluation/riverpod.tex}
\input{chapters/evaluation/redux.tex}
\newpage
\section{Übersicht}

@ -0,0 +1,26 @@
\section{Redux}
\label{eval:redux}
Riverpod stellt eine externe Bibliothek zur Zustandsverwaltung dar, welche das Konzept von Provider erweitert und laut eigenen Angaben verbessert. Die Grundlagen dazu sind im \autoref{sec:redux} nachzuvollziehen.
\subsection{Implementierung}
\subsection{Bewertung}
Im folgenden Abschnitt wird die Implementierung mit Redux \autocite[branch=redux]{repo} anhand der definierten Bewertungskriterien bewertet.
\paragraph{\nameref{sec:changeablility}}
\paragraph{\nameref{sec:testability}}
\paragraph{\nameref{sec:efficiency}} Nach der Ausführung der Teststrecke, ergaben die Zähler folgendes Ergebnis:
\lstinputlisting[caption={Anzahl der Render-Vorgänge bei Redux}]{results/redux/benchmarks.txt}
\paragraph{\nameref{sec:complexity}} Die Auswertung der Metriken (vgl. \autoref{metrics:redux}) ergab eine \ac{mi} von 82 für das gesamte Projekt.
\paragraph{\nameref{sec:readability}}
\paragraph{\nameref{sec:documentation}}
\paragraph{\nameref{sec:structure}}

@ -115,7 +115,8 @@
\input{results/inheritedwidget/metrics.tex}\newpage
\input{results/bloc/metrics.tex}\newpage
\input{results/provider/metrics.tex}\newpage
\input{results/riverpod/metrics.tex}
\input{results/riverpod/metrics.tex}\newpage
\input{results/redux/metrics.tex}
%*************************************************************************
% Other Stuff in the Back
%*************************************************************************

Loading…
Cancel
Save