miniriverpod를 몇 분 만에 설치하세요.

SDK 제약을 설정하고, 패키지를 추가한 뒤, ProviderScope + WidgetRef.watch가 올바르게 연결되었는지 확인하세요.

요구 사항

분석기와 런타임 불일치를 피하려면 패키지와 같은 제약을 사용하세요.

Dart SDK

>=3.10.0 <4.0.0

Flutter

앱이 Dart 3.10보다 낮게 고정되어 있다면, 먼저 SDK 제약을 올린 다음 flutter pub get을 실행하세요.

설치

CLI 설치를 권장하며, 이후 버전을 패키지 변경 로그와 맞추세요.

CLI

pubspec.yaml

# 의존성에 추가
dependencies:
  miniriverpod: ^0.0.2

첫 단계

앱을 ProviderScope로 감싸고, Provider를 정의한 뒤, ConsumerWidget에서 상태를 렌더링하세요.

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)을 사용하세요.
mutations를 구현할 때는 ref.invoke(provider.method())로 전환하세요.

다음 단계

핵심 개념

args 기반 provider 식별, Scope 주입, 코드 생성 없는 설계 선택을 이해하세요.

핵심 개념 열기

프로바이더와 읽기

watch/read/listen 동작과 AsyncProvider 새로고침 패턴을 알아보세요.

프로바이더 보기

API 참고

invalidate, refreshValue, keepAlive, invoke 같은 메서드를 빠르게 찾아보세요.

API 참고 보기