التصنيف Flutter

ترتيب العمل داخل datasource

👉 بعد ما خلصنا Domain، كيف نرتّب الشغل داخل Data Layer؟ هذا سؤال احترافي فعلاً 👏 🧠 الجواب المختصر ❗ ليش هذا الترتيب؟ خلّيني أربطها لك منطقياً 👇 🧱 أولاً: شو تحتوي Data Layer؟ 🔥 الآن نفهم التسلسل الحقيقي 🟠…

note_model.dart

🧠 أولاً: ليش هذا الملف موجود أصلاً؟ 🎯 المشكلة الأساسية Supabase (أو أي API) يرجّع بيانات بهذا الشكل: لكن Dart ما يفهم JSON مباشرة كـ Object. 🔥 الحل نحوّل: 🧠 إذن هذا الملف وظيفته: 📁 الملف: note_model.dart 📄 الكود: 🔍…

supabase And Clean

🧭 التسلسل اللي رح نمشي عليه 🧱 1. CORE 📁 lib 🧠 شرح الملف (خارج الكود) هذا الملف مسؤول عن: 👉 إنشاء نقطة اتصال واحدة مع Supabase لكل التطبيق ليش مهم؟ 📌 هذا يسمى: 📄 الكود: 🧱 2. DOMAIN 📁…

Claean Arch And SupaBase

🔥 🧭 أولاً: كيف يمشي التطبيق (افهم هذا قبل الكود) UI → Cubit → Repository → DataSource → Supabase ↓UI ← Cubit ← Repository ← DataSource ← Supabase 🧱 1. CORE 📁 lib 📄 الكود: import ‘package:supabase_flutter’;/// هذا الكلاس مسؤول…

Counter Project By Cubit

🔍 شرح الفكرة بالكامل (ببساطة جدًا) 1. ما هو الـ State هنا؟ الـ State هو الشكل الحالي للبيانات. في مثالنا: 2. لماذا أنشأنا أكثر من كلاس؟ لدينا: 💡 الهدف:تمييز نوع التغيير وليس فقط القيمة 3. لماذا نستخدم extends؟ لأن: 👉…

أولًا: الفرق بين Global Cubit و Local Cubit

🧩 أولًا: الفرق بين Global Cubit و Local Cubit 🟢 1. Global Cubit 🎯 التعريف: Cubit يتم إنشاؤه في مستوى عالي (عادة main.dart) ويكون متاح في كل التطبيق 🔧 مثال: MultiBlocProvider( providers: [ BlocProvider(create: (_) => CounterCubit()), ], child: MyApp(),)…

BlocProvider

❌ لا، ما يكفي BlocProvider واحد إذا عندك أكثر من Cubit✅ تستخدم أكثر من BlocProvider (وغالبًا MultiBlocProvider) خليني أوضح لك بالتفصيل 👇 🧩 لماذا لا يكفي BlocProvider واحد؟ لأن: BlocProvider( create: (context) => CounterCubit(),) 👉 هذا يوفر Cubit واحد فقط…

BlocProvider BlocBuilder

✅ BlocProvider✅ BlocBuilder خليني أشرحهم لك بعمق + منطق + كود + كيف يشتغلوا مع بعض 🧩 أولًا: BlocProvider 🎯 ما وظيفته؟ 👉 هو المسؤول عن: إنشاء الـ Cubit وتوفيره (Inject) لباقي التطبيق بمعنى: يخلي أي Widget داخل الشجرة يقدر…

Bloc Counter Project

أنت عندك ملفين أساسيين في 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) للتطبيق.…