hydrated 1.2.5+2
hydrated: ^1.2.5+2

Flutter Android iOS web

An automatically persisted BehaviorSubject with simple hydration for Flutter. Intended to be used with the BLoC pattern.

Hydrated #

Version Build License

Hydrated provides a Subject that automatically persists to Flutter's local storage and hydrates on creation!

Easy to consume #

All values are persisted with shared_preferences and restored with automatic hydration.

final count$ = HydratedSubject<int>("count", seedValue: 0);

/// count$ will automagically be hydrated with 42 next time it is created
count$.add(42);

Ready for BLoC #

class HydratedBloc {
  final _count$ = HydratedSubject<int>("count", seedValue: 0);

  ValueObservable<int> get count$ => _count$.stream;
  Sink<int> get setCount => _count$.sink;

  dispose() {
    _count$.close();
  }
}

Supports simple types and serialized classes #

We support all shared_preferences types.

  • int
  • double
  • bool
  • String
  • List<String>
final count$ = HydratedSubject<int>("count");

We also support serialized classes with hydrate and persist arguments.

final user$ = HydratedSubject<User>(
  "user",
  hydrate: (String s) => User.fromJSON(s),
  persist: (User user) => user.toJSON(),
);

Reliable #

Hydrated is mock tested with all supported types and is dogfooded by its creator.

demo of Hydrated tests completing successfully

Demo #

demo of Hydrated BehaviorSubject between app restarts

Contributing #

The goal of Hydrated is to make persistence of BLoC classes as simple as possible for Flutter projects. PRs are welcome, but be warned that I am committed to simplicity.

12
likes
100
pub points
73%
popularity

An automatically persisted BehaviorSubject with simple hydration for Flutter. Intended to be used with the BLoC pattern.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploaders

lukepighetti@gmail.com
hello@solid.software

License

MIT (LICENSE)

Dependencies

flutter, rxdart, shared_preferences

More

Packages that depend on hydrated