Легковесное управление состоянием для Flutter.

Сила реактивной архитектуры Riverpod без сложной генерации кода и тяжелых зависимостей.

Без codegen

Пишите обычные классы и провайдеры Dart. build_runner не нужен.

Легковесность

Менее 50KB. Идеально для производительных приложений.

Built-in Concurrency

Вдохновлен элегантным синтаксисом чтения состояния Riverpod.

Первые шаги

Интеграция miniriverpod в Flutter-проект за считанные минуты.

Установка

flutter pub add miniriverpod

Mutation + Invoke

lib/main.dart
class UserProvider extends AsyncProvider<User?> {
  UserProvider() : super.args(null);

  late final renameMut = mutation<void>(#rename);

  Call<void, AsyncValue<User?>> rename(String name) => mutate(
    renameMut,
    (ref) async {
      final api = ref.watch(apiProvider);
      await api.rename(name);
      ref.state = AsyncData(await api.me());
    },
    concurrency: Concurrency.restart,
  );
}

// UI
await ref.invoke(userProvider.rename('Alice'));
Compatibility Note

В отличие от оригинального Riverpod Provider + AsyncProvider + WidgetRef нацелен на Flutter и не поддерживает standalone Dart проекты. Это позволило убрать около 70% внутренней логики для лучшей производительности.

Предыдущая

Open Source

Следующая

Installation