Features

Widgets

  • FluentListView<T>
  • AsyncBuilder<T>
  • InitBuilder<T>

Tools

  • IndexingCollection<T>
  • ObservableTimer
  • CacheManager
  • Lazy<T>

Streams

  • DistinctSubject<T>
  • DistinctValueStream<T>
  • DistinctConnectableStream<T>
  • DistinctStreamCompleter<T>
  • ValueStreamCompleter<T>

Implementation of numeric types

  • Float
  • Byte
  • SByte
  • Short
  • UShort
  • UInt
  • ULong

Extensions

  • on Stream:

    • publishDistinctValue
    • publishDistinctValueSeeded
    • shareDistinctValue
    • shareDistinctValueSeeded
    • mapDistinctValue<R>
    • takeUntilFuture
    • firstWhereType<R>
  • on Future<bool?>

    • onSuccess
    • onFailure
  • on Iterable:

    • parseList<T>
    • parseIterable<T>
  • on Function:

    • apply

Getting started

Add package import:

import 'package:comprehensive_utils/comprehensive_utils.dart';

Usage


final DistinctSubject<String> _userNameSubject = DistinctSubject<String>();

DistinctValueStream<String> get userNameStream => _userNameSubject.stream;

void changeUserName(String userName) {
  // the value will be added to Stream if it differs from the previous one
  _userNameSubject.add(userName);
}

Libraries

comprehensive_utils
A collection of classes and functions containing simple and complex performance-oriented tools