数分で 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()) へ移すと責務を分離できます。