GetX

Aus Info-Theke
Version vom 24. August 2022, 17:13 Uhr von Hamatoma (Diskussion | Beiträge) (→‎Controller)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Links[Bearbeiten]

Einleitung[Bearbeiten]

GetX ist ein Flutter-Paket https://pub.dev/packages/get, das Zustandsmanagement und unkompliziertes Routing von Flutter-Apps erlaubt.

Zustandsmanagement[Bearbeiten]

In Controllern werden Variablen als "zu überwachen" markiert. Widgets auf Seiten werden mit Werten dieser überwachten Variablen belegt.

Ändert sich der Wert einer überwachten Variablen, ändert sich automatisch jedes darauf Bezug nehmendes Widget automatisch. Dies wird intern mit Streams realisiert.

Unkompliziertes Routing[Bearbeiten]

Es kann an jeder Stelle im Programm eine andere Seite aufgerufen werden, ohne dass der "Context" bekannt ist.

Anwendung[Bearbeiten]

Controller[Bearbeiten]

  • Controller sind Klassen, die von GetxController abgeleitet sind.
  • Überwachte Variablen werden mit .obs markiert.
  • Zugriff auf Variable: myObsVar.value
  • Widgets, die überwachte Variablen verwenden: mit Obs( () => Widget(...)) kapseln.
  • Wenn Automatik nicht funktioniert: update() aufgerufen werden.
  • Eine View-Klasse, die einen Controller hat:
class FileSelectView extends GetView<FileSelectController> {
...
}
  • Sind mehrere Controller beteiligt, werden diese mit Get.put() und mit final c = Get.find() geholt.
    • Es kann ein Tag zur Unterscheidung benutzt werden.
const todoTag = 'todo';
class HomeScreen extends StatelessWidget {
  final TodoController todoController = Get.put(TodoController(), todoTag);
...
}
class AnyClass {
  final ToController todoController = Get.find(todoTag);
...
}