Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.0.0

simple_observable

Beobachten Sie Wertänderungen mithilfe eines Future, Stream und/oder eines Callbacks.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
199.000
Likes
6
Pub-Punkte
160

Paket installieren

flutter pub add simple_observable

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

simple_observable ist ein leichtgewichtiges Dart-Paket, das die einfache Beobachtung von Wertänderungen über Futures, Streams oder Callbacks ermöglicht. Es vereinfacht die reaktive Programmierung, indem es eine saubere Schnittstelle zum Reagieren auf Datenupdates ohne Boilerplate-Code bereitstellt. Ideal für den Zustandsmanagement in Flutter-Anwendungen, unterstützt es mehrere Plattformen wie Android, iOS, Web, macOS, Windows und Linux. Das Paket erhöht die Produktivität der Entwickler, indem es die Komplexität beim Verfolgen asynchroner Datenflüsse verringert.

Anwendungsfälle

  • Echtzeit-Datenaktualisierungen
  • Zustandsverwaltung in Flutter-Anwendungen
  • ereignisbasierte UI-Aktualisierungen
  • Behandlung asynchroner Datenströme
  • Vereinfachung der Rückruffunktion

Hauptmerkmale

  • Unterstützt Futures und Streams
  • Callback-basierte Beobachtung
  • Minimales Boilerplate
  • Plattformübergreifende Kompatibilität
  • Einfache Integration in bestehenden Code

Geeignet für

  • Entwickler, die einfache Zustandsaktualisierungen suchen
  • Flutter-Anwendungen mit reaktiver Benutzeroberfläche benötigen
  • Projekte, die umfangreiche State-Management-Lösungen vermeiden
  • Teams, die Code-Einfachheit priorisieren
  • Anwendungen mit geringem Observability-Bedarf

Hinweise

  • Nicht geeignet für komplexe Zustandsbäume
  • Beschränkt auf grundlegende Beobachtungsmuster
  • Keine integrierte Persistenz- oder Rückgängig-Funktion
  • Am besten geeignet für kleine bis mittelgroße Anwendungen
  • Benötigt manuelle Behandlung von Abonnements

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

pub.dev

simple_observable

Observe value changes using a Future, Stream, and/or a callback.

Source

class Observable<T> {
  Observable({T initialValue, this.onChanged, this.checkEquality = true})
      : _value = initialValue;

  /// If true, setting the [value] will only notifiy if the new value is different
  /// than the current value.
  final bool checkEquality;
  final void Function(T value) onChanged;

  var _completer = Completer<T>();

  bool _canceled = false;
  bool get canceled => _canceled;

  T _value;

  /// The current value of this observable.
  T get value => _value;
  set value(T val) {
    if (!canceled && (!checkEquality || _value != val)) {
      _value = val;
      // Delaying notify() allows the Future and Stream to update correctly.
      Future.delayed(Duration(microseconds: 1), () => notify(val));
    }
  }

  /// Alias for [value] setter. Good for passing to a Future or Stream.
  void setValue(T val) => value = val;

  @protected
  @mustCallSuper
  void notify(T val) {
    if (onChanged != null) onChanged(val);
    // Completing with a microtask allows a new completer to be constructed
    // before listeners of [nextValue] are called, allowing them to listen to
    // nextValue again if desired.
    _completer.complete(Future.microtask(() => val));
    _completer = Completer<T>();
  }

  Future<T> get nextValue => _completer.future;
  Stream<T> get values async* {
    while (!canceled) {
      yield await nextValue;
    }
  }

  /// Permanently disables this observable. Further changes to [value] will be
  /// ignored, the outputs [onChanged], [nextValue], and [values] will not be
  /// called again.
  @mustCallSuper
  void cancel() => _canceled = true;
}

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden