واضح runtime برتاؤ کے ساتھ Riverpod طرز کی ergonomics۔

miniriverpod، Provider اور AsyncProvider کو مانوس رکھتا ہے، مگر برتاؤ کو واضح APIs تک محدود کرتا ہے: family-like identity کے لیے subclass + args، updates کے لیے mutation tokens، اور متوقع lifecycle disposal۔

کوئی code generation نہیں

family-like providers، overrides، اور dependency injection کو subclass + args + Scope کے ذریعے model کیا جاتا ہے، بغیر code generation کے۔

یکساں async ماڈل

ایک ہی AsyncProvider Future اور Stream دونوں کو سنبھالتا ہے، اور rebuild، invalidate، refresh، اور dispose پر سخت cancellation دیتا ہے۔

Built-in Concurrency

Mutation calls concurrent، queue، restart، اور dropLatest کو ref.invoke(provider.method()) کے ذریعے سپورٹ کرتی ہیں۔

تجویز کردہ آغازی بہاؤ

اپنی app کو ProviderScope کے ساتھ wrap کریں، Provider/AsyncProvider classes define کریں، اور ref.invoke کے ذریعے state updates کو واضح concurrency کے ساتھ چلائیں۔

انسٹال

flutter pub add miniriverpod

Mutation + Invoke

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,
  );
}

// UI
await ref.invoke(userProvider.rename('Alice'));
Compatibility Note

miniriverpod جان بوجھ کر Provider + AsyncProvider + WidgetRef کو Riverpod کے قریب رکھتا ہے، مگر codegen-heavy راستوں کو subclass + args، Scope-based injection، اور واضح mutation calls سے بدل دیتا ہے۔

پچھلا

Open Source

اگلا

تنصیب