التصنيف Flutter

clean weather2

File: weather.dart Path ملاحظة احترافية: في مشروع Production لا أحب وضع List<Forecast> داخل Weather لأن ذلك يخلط بين Current Weather و Forecast في كيان واحد. الأفضل هو إنشاء كيان ثالث مثل WeatherResponse أو WeatherData يحتوي: لكن في مشروعنا التعليمي سنبقيهما…

Weather1

File: app_colors.dart Path File: app_text_theme.dart Path File: app_theme.dart Path File: app_constants.dart Path File: api_constants.dart Path File: api_constants.dart Path File: api_client.dart Path File: network_info.dart Path File: exceptions.dart Path File: failures.dart Path File: error_messages.dart Path ملاحظة معمارية: في هذه المرحلة أصبح لدينا…

Weather App

إذا أردنا بناء التطبيق بطريقة احترافية وقابلة للتوسع، فهذه هي الخطة فقط بدون تفاصيل إضافية. 1. المتطلبات الوظيفية (Functional Requirements) الصفحة الرئيسية توقعات الأسبوع عرض 7 أيام تحتوي على: البحث الإعدادات 2. المتطلبات 3. التقنيات 4. مزود بيانات الطقس أفضل…

Delete Post

ما هو DELETE فعلياً؟ في POST كنا نقول: في PUT كنا نقول: أما DELETE فنقول: ماذا نرسل للسيرفر؟ لاحظ أننا في DELETE غالباً لا نرسل Body. في POST: في PUT: أما DELETE: فقط. لماذا لا نرسل Body؟ لأن السيرفر لا…

لماذا نستخدم كلمة widget

titleController.text = widget.post.title; لماذا نستخدم كلمة widget هنا هذه من أكثر النقاط التي تسبب حيرة للمبتدئين في Flutter. لننظر أولاً إلى الكود: هنا المتغير: موجود داخل: وليس داخل: ماذا يحدث عند فتح الصفحة؟ عندما نكتب: يتم إنشاء Widget جديدة. هذه…

تحديث البوست

قبل أي كود يجب أن نفهم ماذا يعني Update فعلياً. ماذا يعني تعديل Post؟ لدينا منشور موجود مسبقاً: المستخدم ضغط: ثم غيّر العنوان إلى: والنص إلى: نريد إرسال هذه البيانات الجديدة للسيرفر. ماذا يحدث فعلياً؟ في POST كنا نقول: أما…

Api Dio 1

الآن ندخل إلى واحدة من أهم المراحل في فهم الـ API و Dio. معظم المبتدئيين يتعلمون: ثم ينتقلون مباشرة إلى Models دون أن يفهموا: وهنا يبدأ التخبط لاحقاً. المرحلة الثانية: تشريح Response بالكامل لنبدأ من هذا الكود: ما الذي يحدث…

البحث عم الملاحظة داخل SupaBase

الآن سنبني بحث احترافي كامل متوافق مع آخر نسخة من مشروعك: ✅ Clean Architecture✅ Cubit✅ Supabase Search✅ Debounce✅ SearchBar احترافي✅ Loading✅ إعادة النتائج✅ البحث بالعنوان والمحتوى✅ شرح كل ملف بالتفصيل 🧭 الفلو الكامل 🧱 1) DataSource 📁 notes_remote_datasource.dart 📄 الكود…

البحث عن الملاحظات

✅ البحث محلياً (الأفضل حالياً) 🧠 لماذا اخترنا البحث المحلي؟ 🧱 التعديل سيكون فقط في: ❌ لا نعدل DataSource❌ لا نعدل Repository❌ لا نعدل UseCase 🧱 1) State 📁 notes_state.dart ✏️ نضيف: 🧠 لماذا لا نضيف State جديد؟ 🧱 2)…