Add riverpod infrastructure

pull/3/head
Jonas Franz 2 years ago
parent e11859b4e8
commit d7f38ffe60
  1. 1
      chapters/basics/state-management.tex
  2. 1
      chapters/evaluation/evaluation.tex
  3. 27
      chapters/evaluation/riverpod.tex
  4. 3
      thesis.tex

@ -156,6 +156,7 @@ Um eine \texttt{ChangeNotifier} als Zustandsverwaltungslösung mit Provider zu n
Die nachgelagerten Widgets können dabei, die Zustands-Klasse durch eine einfachen, generischen Methodenaufruf der Provider-Bibliothek abrufen. Durch die Verwendung von \texttt{InheritedWidget} innerhalb der Bibliothek wird damit sichergestellt, dass wenn sich Daten in den Zustands-Klassen ändern, referenzierende Widgets über diese Änderung informiert werden und gegebenenfalls neu gebaut werden.
\subsection{Riverpod}
\label{sec:riverpod}
Riverpod baut auf dem bereits vorgestellten Provider-Konzept auf, ergänzt es aber mit weiteren Funktionalitäten. Ein großer Unterschied liegt auch darin, dass hier Provider nicht in den Widget-Baum integriert werden müssen. Zudem ist es hier anders als bei der Provider-Bibliothek möglich, mehrere Provider vom gleichen Klassentyp zu unterscheiden. Hier wird nämlich nicht der Klassentyp zum Abruf der Zustands-Klasse im Widget verwendet, sondern eine Variable. Wie diese im Widget abgerufen wird, ist dabei von den Entwickelenden zu entscheiden. Denkbar sind hier beispielsweise das Verwenden einer globalen Variable oder einer Dependency-Injection-Lösung wie \texttt{get\_it}. Damit wird auch ermöglicht, dass Riverpod im Vergleich zu Provider keine Abhängigkeit zum Flutter-Framework hat und somit eine reine Dart-Bibliothek ist. \autocite[S.8]{riverpodArticle}

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

@ -0,0 +1,27 @@
\section{Riverpod}
\label{eval:riverpod}
Provider 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:riverpod} nachzuvollziehen.
\subsection{Implementierung}
\subsection{Bewertung}
Im folgenden Abschnitt wird die Implementierung mit Riverpod \autocite[branch=riverpod]{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 Riverpod}]{results/riverpod/benchmarks.txt}
\paragraph{\nameref{sec:complexity}} Die Auswertung der Metriken (vgl. \autoref{metrics:riverpod}) ergab eine \ac{mi} von xx für das gesamte Projekt.
\paragraph{\nameref{sec:readability}}
\paragraph{\nameref{sec:documentation}}
\paragraph{\nameref{sec:structure}}

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

Loading…
Cancel
Save