Add implementation of redux

pull/3/head
Jonas Franz 2 years ago
parent e226a0ac98
commit a641b39c56
  1. 2
      chapters/evaluation/evaluation.tex
  2. 7
      chapters/evaluation/redux.tex

@ -40,7 +40,7 @@ Dieser Ansatz konnte nicht die Mindestanforderungen an die Beispielanwendung ums
\ac{bloc} & \cmark & \cmark & 8;4 & 82 & \xmark & \cmark & / \\
Provider & / & \cmark & 3;4 & 83 & / & \cmark & \xmark \\
Riverpod & \cmark & \cmark & 3;4 & 80 & \cmark & \cmark & \xmark \\
Redux & TBD & TBD & TBD & TBD & TBD & TBD & TBD \\
Redux & TBD & TBD & 8;10 & 82 & TBD & TBD & TBD \\
MobX & TBD & TBD & TBD & TBD & TBD & TBD & TBD \\
\bottomrule
\multicolumn{8}{c}{Legende: \cmark=vollständig erfüllt; /=teilweise erfüllt; \xmark=nicht erfüllt;}\\

@ -5,6 +5,13 @@ Riverpod stellt eine externe Bibliothek zur Zustandsverwaltung dar, welche das K
\subsection{Implementierung}
Für die Implementierung mit Redux wurden die Bibliotheken redux in der Version 5.0.0 und flutter\_redux in der Version 0.8.2 genutzt.
Anstelle von mehreren Zuständen wurde hier ein zentraler Zustand implementiert, der auch als Store bezeichnet wird. Um Änderungen an diesem Store durchzuführen wurden diverse Actions definiert wie beispielsweise eine Action für den Anmeldevorgang. Diese Actions werden von Reducern verarbeitet, welche in diesem Fall immer einen Teilzustand des zentralen Zustands verändern.
Für den Abruf der Daten für die Produktliste wurde eine Middleware implementiert. Diese erhält von der Bibliothek alle Actions, bevor diese von einem Reducer bearbeitet werden. Die Middleware führt im Falle, dass eine entsprechende Action ausgelöst wird, die Netzwerkzugriffe durch und emittiert danach entsprechende Actions, welche durch Reducer die Daten in den Store übermitteln. Middlewares sind notwendig, da Reducer keine asynchronen Operationen durchführen sollen, da diese keine Nebeneffekte haben dürfen und bei gleicher Eingabe immer das gleiche Ergebnis liefern müssen. \autocite[vgl.][Kap1.3.3]{redux}
Für die Einbindung in die Benutzeroberfläche kommen zwei verschiedene Möglichkeiten zum Einsatz. Zum einen existiert der StoreConnector, welcher einen bestimmten Teil des zentralen Zustands selektiert und diesen an ein Widget weitergibt. Zum anderen gibt es den StoreBuilder, welcher den kompletten Store an ein Widget weitergibt. Der StoreConnector wird hauptsächlich bei trivialeren Einsatzgebieten verwendet, die nur das Auslesen einer Variable aus dem Store benötigen. Der StoreConnector hingegen bei komplexeren Fällen, die beispielsweise auch Actions depeschieren müssen.
\subsection{Bewertung}

Loading…
Cancel
Save