数分で miniriverpod を導入。

SDK制約を揃えたうえでパッケージを追加し、ProviderScope + WidgetRef.watch の動作を確認します。

要件

パッケージと同じSDK制約を使うことで、解析エラーや実行時差異を防ぎます。

Dart SDK

>=3.10.0 <4.0.0

Flutter

>=3.38.0

ヒント

既存アプリの制約が古い場合は、先に SDK 制約を更新してから flutter pub get を実行してください。

インストール

CLI で追加したあと、バージョンを changelog と合わせて管理します。

CLI

flutter pub add miniriverpod

pubspec.yaml

# dependencies に追加
dependencies:
  miniriverpod: ^0.0.2

最初のステップ

ProviderScope でアプリを包み、Provider を定義して ConsumerWidget から描画します。

main.dart
import 'package:flutter/widgets.dart';
import 'package:miniriverpod/miniriverpod.dart';

final counterProvider = Provider<int>((ref) => 0);

void main() {
  runApp(const ProviderScope(child: CounterApp()));
}

class CounterApp extends ConsumerWidget {
  const CounterApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final count = ref.watch(counterProvider);
    return Directionality(
      textDirection: TextDirection.ltr,
      child: Center(child: Text('$count')),
    );
  }
}
同期値は Provider((ref) => ...) を使います。
Future は AsyncProvider<T>((ref) async => ...)、Stream は ref.emit(stream) で扱います。
更新処理は ref.invoke(provider.method()) へ移すと責務を分離できます。

次のステップ

コアコンセプト

args による同一性、Scope 注入、codegen不要の設計を理解します。

コアコンセプトを開く

Providerと読み取り

watch/read/listen の使い分けと AsyncProvider の refresh パターンを確認します。

Providersを開く

APIリファレンス

invalidate、refreshValue、keepAlive、invoke を素早く引けます。

APIリファレンスを開く