انتقل إلى المحتوى الرئيسي

الشروع في العمل مع Riverpod

جَرِب Riverpod مباشرةً

لتجربة Riverpod، جربها عبر الإنترنت على Dartpad أو عبر Zapp:

تنصيب الحزم المطلوبة

يأتي Riverpod كحزمة "riverpod" رئيسية مكتفية ذاتيًا, بالإضافة إلى حزم اختيارية لاستخدام توليد التعليمات البرمجية (About code generation) و hooks (About hooks).

بمجرد معرفة الحزمة (الحزم) التي تريد تثبيتها، تابع لإضافة الحزم إلى تطبيقك في سطر واحد كما يلي:

flutter pub add flutter_riverpod

بدلاً من ذلك، يمكنك إضافة الحزم إلى تطبيقك بشكل يدوي من داخل ملف pubspec.yaml كما يلي:

pubspec.yaml
name: my_app_name
environment:
sdk: ^3.7.0
flutter: ">=3.0.0"

dependencies:
flutter:
sdk: flutter
flutter_riverpod: ^3.3.2-dev.1

بعد ذلك ، قم بتنزيل الحزم من خلال تنفيذ flutter pub get داخل منفذ الأوامر.

معلومات

في حال استخدام خاصية توليد الكود، يمكنك الآن تشغيل مولد الكود باستخدام الأمر التالي:

dart run build_runner watch -d

هذا كل شيء. لقد أضفت Riverpod إلى تطبيقك!

تفعيل riverpod_lint

يأتي Riverpod مزودًا بحزمة اختيارية riverpod_lint توفر قواعد التدقيق البرمجي لمساعدتك في كتابة كود أفضل، و توفر خيارات إعادة هيكلة مخصصة.

تم تنفيذ Riverpod_lint باستخدام analysis_server_plugin. ولذلك، يتم تثبيته من خلال analysis_options.yaml. باختصار، أنشئ ملف analysis_options.yaml بجوار ملف pubspec.yaml الخاص بك وأضف ما يلي:

analysis_options.yaml
plugins:
riverpod_lint: <الاصدار الاخير من خلال https://pub.dev/packages/riverpod_lint>

ستظهر لك الآن تحذيرات في بيئة التطوير المتكاملة (IDE) إذا ارتكبت أخطاءً عند استخدام Riverpod في قاعدة التعليمات البرمجية الخاصة بك.

للاطلاع على القائمة الكاملة للتحذيرات وعمليات إعادة البناء، انتقل إلى صفحة riverpod_lint.

مثال على الاستخدام: مرحباً بالعالم!

بعد تثبيت Riverpod، يمكننا البدء باستخدامه.

توضح المقاطع البرمجية التالية كيفية استخدام هذه المكتبة الجديدة لإنشاء برنامج "مرحباً بالعالم!" .:

lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

// نقوم بإنشاء "Provider"، والذي سيخزن قيمة ("مرحبا بالعالم").
// نستخدم Provider
// يسمح لنا ذلك بمحاكاة/تغيير القيمة المعروضة.
final helloWorldProvider = Provider((_) => 'مرحبا بالعالم!');

void main() {
runApp(
// لكي تتمكن الأدوات (Widgets) من قراءة بيانات الموفرين،
// نحتاج إلى تغليف التطبيق بأكمله في أداة "ProviderScope".
// هنا سيتم تخزين حالة جميع الموفرين (Providers).
ProviderScope(child: MyApp()),
);
}

// قم بالتوريث (Extend) من ConsumerWidget بدلا من StatelessWidget, والذي يتم توفيره بواسطة Riverpod
class MyApp extends ConsumerWidget {

Widget build(BuildContext context, WidgetRef ref) {
final String value = ref.watch(helloWorldProvider);

return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('مثال')),
body: Center(child: Text(value)),
),
);
}
}

ثم ابدأ تشغيل التطبيق باستخدام الأمر flutter run.
سيؤدي هذا إلى عرض عبارة "مرحبا بالعالم!" على جهازك.

المضي بمعرفتك لابعد من ذلك: تحميل إضافة Riverpod

إذا كنت تستخدم Flutter وVS Code، ففكر في استخدام إضافة Flutter Riverpod

إذا كنت تستخدم Flutter وAndroid Studio أو IntelliJ، ففكر في استخدام إضافة Flutter Riverpod

img