몇 분 만에 miniriverpod를 설치하세요.
SDK 제약을 설정하고, 패키지를 추가한 다음, ProviderScope와 WidgetRef.watch가 올바르게 연결되었는지 확인하세요.
코드 생성 없음
family형 provider, override, dependency injection은 코드 생성 없이 subclass + args + Scope로 모델링됩니다.
통합된 비동기 모델
하나의 AsyncProvider가 Future와 Stream을 모두 처리하며, rebuild, invalidate, refresh, dispose 시 엄격하게 취소됩니다.
내장 동시성
mutation 호출은 ref.invoke(provider.method())를 통해 concurrent, queue, restart, dropLatest를 지원합니다.
추천 시작 흐름
앱을 ProviderScope로 감싸고, Provider/AsyncProvider 클래스를 정의한 다음, 명시적인 concurrency와 함께 ref.invoke로 상태 업데이트를 처리하세요.
설치
flutter pub add miniriverpod
뮤테이션 + 호출
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,
);
}
// 사용자 인터페이스
await ref.invoke(userProvider.rename('Alice'));
호환성 안내
miniriverpod는 의도적으로 Provider + AsyncProvider + WidgetRef Riverpod에 가깝지만, 코드 생성이 필요한 경로를 subclass + args, Scope 기반 주입, 명시적 mutation 호출로 바꿉니다.