اليوم 187 من رحلتي في تعلم البرمجة:
تعرفنا اليوم على الـ Middleware في GetX، وهي طبقة تفحص حالة المستخدم قبل الانتقال بين الصفحات.
مثال:
لو فتحت تطبيق مثل X أو فيسبوك لأول مرة، راح تظهر لك صفحة تسجيل الدخول.
لكن إذا سجلت دخولك وقفلت التطبيق وفتحته مرة ثانية، راح يقوم الـ Middleware بفحص حالتك، وإذا كنت مسجل دخول يحولك مباشرة للصفحة الرئيسية بدل صفحة تسجيل الدخول.
أبرز فوائده:
- تنظيم الصلاحيات
- توجيه المستخدم للصفحة المناسبة
- التحكم بالتنقل بين الصفحات
صورة من تعلمنا 👇🏼.
اليوم 186 من رحلتي في تعلم البرمجة:
اليوم تعلمت مفهوم دورة حياة الكنترولر (Controller Lifecycle) في GetX، وكيف تنفذ أكواد معينة في الوقت المناسب:
1/ دالة onInit:
تشتغل أول ما يُنشأ الكنترولر، وغالبا تُستخدم لتهيئة البيانات أو جلبها من الـ API.
2/ دالة onReady:
تشتغل بعد بناء الواجهة لأول مرة، وتناسب العمليات اللي تحتاج تكون الشاشة جاهزة فيها.
وأخيرا 3/ دالة onClose:
تشتغل عند حذف الكنترولر من الذاكرة، وتُستخدم لتنظيف الموارد وإغلاق الاتصالات أو الـ Streams.
باختصار:
دورة الحياة في GetX تساعدك على تنظيم الكود وتنفيذ كل مهمة في الوقت المناسب.
من تعلمنا لهذا اليوم👇🏼👌🏼.
@asd_aldeen0@altmemy199 ما شاء الله تبارك الله
قول وفعل يا أسد الدين،
أسال الله لك التوفيق والعون في هذي الرحلة، وسعيد بإني كنت أحد الملهمين لك وبإذن الله أنها تكون بداية لشيء عظييم🤍
أيشش شعورك لما تجلس مدة طويلة تحل في Error وتكتشف في النهاية إن المشكلة كانت فاصلة منقوطة ناقصة (;) أو مسافة غلط؟
شاركونا أقوى المواقف الشائعة مع الـ الأخطاء إللي تواجهكم بالتعليقات👇🏼
اليوم 185 من رحلتي في تعلم البرمجة:
تعلمت كيف تدير حزمة GetX تحديث واجهة التطبيق بطريقتين:
1/ الـ GetBuilder:
تحديث يدوي؛ بعد تغيير البيانات نستخدم ()update لتحديث الواجهة. مناسب للحالات التي لا تحتاج تحديثاً متكرراً.
2/الـ .obs مع Obx / GetX:
تحديث تلقائي؛ بمجرد تغير البيانات تتحدث الواجهة مباشرة.
الـ obs: تجعل المتغير قابلاً للمراقبة.
أما الـ Obx أو GetX: تراقب المتغير وتحدث الواجهة تلقائياً عند تغيره.
باختصار:
الـ GetBuilder يعطيك تحكماً يدوياً بالتحديث، أما .obs فيوفر تحديثاً تلقائياً للبيانات المتغيرة.
صورة من التعلم اليوم👇🏼.
اليوم 184 من رحلتي في تعلم البرمجة:
في الصورة هذي شرحت نمط الـ MVC لتنظيم الكود، وعشان نفهمه ببساطة، تخيل تطبيقك عبارة عن "مطعم":
الـ View: هي واجهة التطبيق والأزرار اللي تظهر للمستخدم (مثل الطاولة وقائمة الطعام).
الـ Controller: هو العقل المدبر وحلقة الوصل؛ ياخذ طلب المستخدم من الواجهة، ويتعامل مع الـ Model لجلب البيانات ثم يحدّث الواجهة (مثل العامل اللي ياخذ طلبك ويوصله للطباخ).
آخر شيء الـ Model: ويمثل البيانات وطريقة التعامل معها (مثل الطباخ اللي يجهز الطلبات).
وباختصار، فائدة MVC هي فصل المسؤوليات بين الواجهة والبيانات والمنطق البرمجي، وهذا يجعل كودنا أسهل في التنظيم والصيانة واكتشاف الأخطاء مستقبلاً.
أتمنى إنّ الشرح 👍🏼
وهذي صورة توضح نمط الـ MVC👇🏼.
من أقوى ما ستسمعـه هـو حديث النبي ﷺ ألذي يقول :
"وإنَّ أبغضَ الكلامِ إلى اللَّهِ أن يقولَ الرَّجلُ للرَّجلِ: اتَّقِ اللَّهَ، فيقولُ: عليكَ نفسَكَ".
(وَإِذَا قِيلَ لَهُ اتَّقِ اللَّهَ أَخَذَتْهُ الْعِزَّةُ بِالْإِثْمِ)
نعوذ بالله أن تأخذنا العزة بالإثم، واللهم اجعلنا ممن يتقبّل النصيحة بـ حُب ولين.
@EngineerHMS ما شاء الله تبارك الله تشرفنا بخبرتك يا مهندس،
واختلاف الآراء يثري المجتمع التقني دائماً.
العبرة دائما بالحقائق والأرقام في السوق وليست بالأخطاء الإملائية. جلّ من لا يخطئ.. أتمنى لك التوفيق!
دخل رجلٌ على الخليفة المأمون يُريد استعراض مهارته، فرمى بإبرةٍ في الهواء ثم تبعها بأخرى فدخلت في ثَقب الأولى، وكررها مئة مرة!
وعوضاً عن تكريمه، أمر الخليفة بجَلده! ولمّا سُئل عن السبب قال: "نَجلده تاديباً له على تضييع الوقت في أمرٍ لا ينفع الناس".
نسنتج من هذي القصة شيء مهم وهو:
المهارة بدون قيمة أو منفعة لا تساوي شيئاً.
وهذا الكلام حرفياً قاعد يتطبق في عالم البرمجة وما يحصل بين مطورين الـ (Native) و الـ (Cross-Platform).
بما أنك قادر على بناء تطبيق بكود واحد يعمل على جميع الأنظمة، فلماذا بالمنطق والعقل أني أُفضل النيتف على الكروس بلاتفورم؟
وبكل صدق إذا أتتك الفرصة و خيروك لبناء تطبيق ضخم لشركة عالمية هل ستختار الـ Native أم الـ Cross-Platform 🤔.
عطونـا رأيكـم فـي التعليقـات👇🏼.