Aus öffentlichen Paketdaten erstellte Orientierung.
Minimal MVN ist eine leichte Zustandsverwaltungslösung für Flutter, die das Model-View-Notifier-(MVN)-Muster implementiert. Sie bietet eine einfache, reaktive Möglichkeit, die App-Zustände mit minimalem Boilerplate zu verwalten. Durch die Trennung von Daten (Modell), Benutzeroberfläche (Ansicht) und Zustandsänderungen (Notifikator) fördert sie eine saubere Architektur und einfache Testbarkeit. Das Paket ist für Entwickler konzipiert, die eine einfache Alternative zu aufwändigeren Zustandsverwaltungslösungen suchen, ohne Leistung oder Skalierbarkeit einzubüßen.
Anwendungsfälle
Einfache App-Zustandsverwaltung
Reaktive UI-Updates
Leichte Alternativen zu Providern
Testbare Geschäftslogik
Kleine bis mittlere Flutter-Anwendungen
Hauptmerkmale
Minimales Boilerplate
Modell-Ansicht-Notifier-Muster
Reaktive Zustandsupdates
Einfache Integration in bestehenden Code
Unterstützt alle Flutter-Plattformen
Geeignet für
Entwickler, die Einfachheit suchen
Projekte, die komplexe Zustandsbibliotheken vermeiden
Teams, die Wartbarkeit priorisieren
Grundlagen der Zustandsverwaltung lernen
Apps mit moderater Zustandskomplexität
Hinweise
Nicht ideal für sehr große Anwendungen
Begrenzte integrierte Debugging-Tools
Keine integrierte Persistenz
Erfordert manuelle Einrichtung für erweiterte Funktionen
Am besten geeignet für Apps mit grundlegenden bis mittleren Zustandsanforderungen
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
Minimal MVN
A minimal state management package for Flutter. Part of a minimalistic architecture based on the MVN (Model-View-Notifier) pattern.
This package aims for the simplest possible architecture, making it easier to understand and use, while offering an alternative to the growing complexity found in many other state management solutions, in an attempt to minimize side effects.
The classical Flutter counter app demonstrates basic state management. The counter on the top is a non disposable notifier, so it keeps memory when re-entering the page. The one on the bottom is a disposable notifier, so it resets when re-entering the page.
Chroma Counter
A more advanced counter widget, which increases the counter, and randomly changes color and shape. The reveal button shows a second widget using the same notifier. Thanks to the autodispose feature, the notifier is disposed only when both the widgets are not visible anymore. The string on top of the choma counter updates every 10 counts, thanks to the select feature, which is used to avoid unnecessary rebuilds.
In tests, you can override the notifier with a mock notifier through the minimal manager:
testWidgets('should update UI when state changes', (tester) async {
// Use the minimal manager to override the notifier
chromaCounterManager.override(MockCounterNotifier.new);
await tester.pumpWidget(constMaterialApp(home: ChromaCounter()));
// Change state through the mock notifier
chromaCounterManager.notifier.nextMetamorph();
await tester.pump();
final newColor = _getContainerColor(tester);
// Test the exact color instead of a random oneexpect(newColor, equals(Colors.red));
});