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