hydrated
一個自動持久化的 BehaviorSubject,帶有 Flutter 的簡單資料還原功能。旨在與 BLoC 模式一起使用。
🚰 一個適用於 Flutter 的 BehaviorSubject,支援自動持久化與還原。
{"sdk":"flutter"}^0.27.0^2.0.1—{"sdk":"flutter"}0.0.6以下為英文專案原文快照,最新內容請造訪 GitHub。
Version Build License style: solid
Hydrated provides a Subject that automatically persists to Flutter's local storage and hydrates on creation!
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);
class HydratedBloc {
final _count$ = HydratedSubject<int>("count", seedValue: 0);
ValueObservable<int> get count$ => _count$.stream;
Sink<int> get setCount => _count$.sink;
dispose() {
_count$.close();
}
}
We support all shared_preferences types.
intdoubleboolStringList<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(),
);
Hydrated is mock tested with all supported types and is dogfooded by its creator.
Hydrated supports any key-value data storages -- just implement the KeyValueStore interface
and you will be able to use hive, flutter_secure_storage or any other persistence solution of your choice.
class MyAwesomeKeyValueStore implements KeyValueStore {
/// your implementation here...
}
final user = HydratedSubject<User>(
"user",
hydrate: (String s) => User.fromJson(s),
persist: (User user) => user.toJson(),
keyValueStore: MyAwesomeKeyValueStore()
);
hydrated was originally developed by @lukepighetti.