몇 분 만에 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 호출로 바꿉니다.