Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.0.0

simple_observable

Observe as mudanças de valor usando um Future, Stream e/ou um callback.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
199 mil
Curtidas
6
Pontos Pub
160

Instalar pacote

flutter pub add simple_observable

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

simple_observable é um pacote leve do Dart que permite observar facilmente mudanças de valor por meio de Futures, Streams ou callbacks. Ele simplifica a programação reativa fornecendo uma interface clara para reagir às atualizações de dados sem código boilerplate. Ideal para gerenciamento de estado em aplicativos Flutter, suporta múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. O pacote aumenta a produtividade dos desenvolvedores ao reduzir a complexidade ao rastrear fluxos de dados assíncronos.

Casos de uso

  • Atualizações de dados em tempo real
  • Gerenciamento de estado em aplicativos Flutter
  • Atualizações de UI baseadas em eventos
  • Manipulação de fluxos de dados assíncronos
  • Simplificando a lógica de retorno

Principais recursos

  • Suporta Futures e Streams
  • Observação baseada em retorno de chamada
  • Boilerplate mínimo
  • Compatibilidade multiplataforma
  • Integração fácil com código existente

Indicado para

  • Desenvolvedores procurando atualizações simples de estado
  • Aplicativos Flutter com IU reativa precisam de
  • Projetos evitando soluções pesadas de gerenciamento de estado
  • Equipes que priorizam a simplicidade do código
  • Aplicativos que exigem observabilidade leve

Considerações

  • Não adequado para árvores de estado complexas
  • Limitado a padrões básicos de observação
  • Sem funcionalidade de persistência ou desfazer embutida
  • Melhor para aplicativos de pequeno a médio porte
  • Requer manipulação manual de assinaturas

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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;
}

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote