notes_repository_impl

📁 الملف: notes_repository_impl.dart 🧠 أولاً: وظيفة هذا الملف (الفكرة الكبيرة) هذا الملف هو: 🎯 ماذا يعني هذا؟ 👉 هذا الملف يربط الاثنين 💡 بمعنى بسيط: 📄 الكود 🔍 الآن نشرح كل سطر بالتفصيل 🧱 1. imports 🧠 ليش؟ 👉 لأن…

notes_remote_datasource.dart

🧠 أولاً: وظيفة هذا الملف (خارج الكود) هذا الملف مسؤول عن: 🎯 يعني باختصار: 👉 هو “الساعي” اللي يروح يجيب البيانات من السيرفر ويرجعها ❗ مهم جداً: هذا الملف: 👉 يعرف فقط: 📄 الكود 🔍 الآن نشرح كل سطر بالتفصيل…

ترتيب العمل داخل 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 واحد فقط…