Counter Project By Cubit
🔍 شرح الفكرة بالكامل (ببساطة جدًا) 1. ما هو الـ State هنا؟ الـ State هو الشكل الحالي للبيانات. في مثالنا: 2. لماذا أنشأنا أكثر من كلاس؟ لدينا: 💡 الهدف:تمييز نوع التغيير وليس فقط القيمة 3. لماذا نستخدم extends؟ لأن: 👉…
🔍 شرح الفكرة بالكامل (ببساطة جدًا) 1. ما هو الـ State هنا؟ الـ State هو الشكل الحالي للبيانات. في مثالنا: 2. لماذا أنشأنا أكثر من كلاس؟ لدينا: 💡 الهدف:تمييز نوع التغيير وليس فقط القيمة 3. لماذا نستخدم extends؟ لأن: 👉…
🧩 أولًا: الفرق بين Global Cubit و Local Cubit 🟢 1. Global Cubit 🎯 التعريف: Cubit يتم إنشاؤه في مستوى عالي (عادة main.dart) ويكون متاح في كل التطبيق 🔧 مثال: MultiBlocProvider( providers: [ BlocProvider(create: (_) => CounterCubit()), ], child: MyApp(),)…
❌ لا، ما يكفي BlocProvider واحد إذا عندك أكثر من Cubit✅ تستخدم أكثر من BlocProvider (وغالبًا MultiBlocProvider) خليني أوضح لك بالتفصيل 👇 🧩 لماذا لا يكفي BlocProvider واحد؟ لأن: BlocProvider( create: (context) => CounterCubit(),) 👉 هذا يوفر Cubit واحد فقط…
✅ BlocProvider✅ BlocBuilder خليني أشرحهم لك بعمق + منطق + كود + كيف يشتغلوا مع بعض 🧩 أولًا: BlocProvider 🎯 ما وظيفته؟ 👉 هو المسؤول عن: إنشاء الـ Cubit وتوفيره (Inject) لباقي التطبيق بمعنى: يخلي أي Widget داخل الشجرة يقدر…
أنت عندك ملفين أساسيين في BLoC (Cubit): 🔹 أولًا: ملف counter_state.dart class CounterState { final int counter; CounterState(this.counter);}class IncrementCounter extends CounterState { IncrementCounter(super.counter);}class DecrementCounter extends CounterState { DecrementCounter(super.counter);} ✅ وظيفة هذا الملف هذا الملف مسؤول عن تمثيل الحالة (State) للتطبيق.…
🔥 كيف تبني Project Structure فعلي (Folders) أو 🔥 نطبق مثال كامل (Login + API) خطوة خطوة اختر 👇 🔥 كيف تبني Project Structure فعلي (Folders) lib/ features/ core/ data/ presentation/ قم بتحديد البنية المتقدمة من البداية لي لاعرف كيف…
🔵 أولاً: ما هو BLoC؟ BLoC pattern BLoC = Business Logic Component هو أسلوب لإدارة الحالة يفصل بين: 🧠 الفكرة الأساسية التطبيق يعمل مثل “نظام رسائل”: 🔄 مخطط تدفق BLoC 👆 User Action ↓📩 Event ↓🧠 BLoC (Processing) ↓📊 State…
🔹 ما هي State Management في Flutter؟ ببساطة:هي الطريقة التي تدير بها البيانات (الحالة) داخل التطبيق وكيف تتغير وتنعكس على الواجهة (UI). في Flutter، كل شيء عبارة عن Widgets، وهذه الـ Widgets تعتمد على State (الحالة).لما تتغير الحالة → الواجهة…
أنت لديك authorsSlice يجلب الكتّاب، إذن لا تحتاج slice جديد.لكن أيضًا لا نريد فلترة الكتب من booksSlice لأنك تستخدم pagination للكتب، وبالتالي قد لا تكون كل الكتب موجودة في الستور. إذن الطريقة الأفضل والأبسط في حالتك هي: استخدم authorsSlice لجلب…