A simple state management & service container solution for Flutter.


import 'package:hydro/hydro.dart';
// inherit Hydro
class SomeClass extends Hydro {
  String _name = "inital value";
  // getter
  String get name => _name;
  // setter
  void setName(String newName) {
    _name = newName;
    update(); // NOTE: `update()` is important to refresh the UI.
// Adding to the service container
// If already been added, nothing will change.

// OR

// force replace an existing service, set `forceReplace: true`
Hydro.set(SomeClass(), forceReplace: true);
class _SomePageState extends State<SomePage> {
 // ...   
SomeClass? some_class = Hydro.get<SomeClass>(this);
// OR
SomeClass some_class = Hydro.mustGet<SomeClass>(this);

// NOTE: `get` & `mustGet` methods accept an argument of type `State`,
// it is required to refresh the UI when changes occur;
// You may as well leave it empty if UI updates are NOT needed.
// SomeClass? some_class = Hydro.get<SomeClass>();


Contains package's main functionality