Arabic flag
Arabic
Select a Language
Arabic flag
Arabic
English flag
English
$
USD
Select a Currency
United States Dollar
$
Egypt Pound
ج.م.
Saudi Arabia Riyal
ر.س.
United Arab Emirates dirham
د.إ.
Oman Rial
.ر.ع
0
دورة Dart: من الصفر إلى OOP

دورة Dart: من الصفر إلى OOP

ابنِ أساسًا قويًا في Dart وتعرَّف على أهم مفاهيم البرمجة الكائنية قبل الانتقال إلى Flutter.
0 طلاب
58 Lectures
Ammar Ahmed
Ammar Ahmed

Instructor

ماذا ستتعلم؟

فهم أساسيات لغة Dart وأنواع البيانات المختلفة وطريقة التعامل معها.
استخدام العمليات الحسابية والمنطقية وعمليات المقارنة داخل البرامج.
التحكم في سير تنفيذ التطبيق باستخدام if و switch و Ternary Operator.
التعامل مع هياكل البيانات الأساسية مثل List و Map وإدارة البيانات داخلها.
استخدام الحلقات التكرارية (Loops) لتنفيذ المهام المتكررة بكفاءة.
إنشاء الدوال (Functions) وإعادة استخدام الكود بطريقة احترافية.
تطبيق مفاهيم حل المشكلات وتحويل المعادلات والأفكار إلى أكواد عملية.
فهم مفهوم Null Safety والتعامل الصحيح مع القيم الاختيارية في Dart.
إتقان مبادئ البرمجة الكائنية (OOP) وبناء Classes و Objects.
استخدام Constructors و Initializer Lists و Static و Final و Const.
فهم مبادئ Encapsulation و Inheritance و Polymorphism و Abstraction عمليًا.
استخدام Mixin و Enum و Extensions لتنظيم الكود وإعادة استخدامه.
التعرف على Sealed Class وأهميتها في المشروعات الحديثة.
بناء أساس قوي يؤهلك للانتقال إلى تعلم Flutter وتطوير التطبيقات.

About This Course

كثير من المبتدئين يبدؤون رحلة تعلم Flutter مباشرة، ثم يكتشفون أن المشكلة الحقيقية ليست في Flutter نفسها، بل في ضعف فهم لغة Dart التي تُبنى عليها التطبيقات.

ومع كثرة المصادر المتفرقة والمحتوى الذي ينتقل بسرعة إلى المفاهيم المتقدمة، يصبح من الصعب تكوين أساس برمجي متين يساعد على فهم الكود وكتابة البرامج باحترافية؛ لذلك جاءت هذه الدورة لتقديم مسار واضح ومنظم يبدأ من الصفر تمامًا.

دورة شاملة لتعلُّم لغة Dart من الصفر، تغطي المتغيرات والشروط والحلقات والدوال وهياكل البيانات والبرمجة الكائنية (OOP)، وميزات Dart الحديثة مثل Mixin وEnum وExtensions، لتكوين أساس قوي قبل تعلم Flutter.

تضم الدورة 58 حلقة تبدأ بأساسيات اللغة وأنواع البيانات والعمليات المختلفة، ثم تنتقل إلى الشروط والحلقات التكرارية والدوال وهياكل البيانات مثل List وMap، قبل التعمق في البرمجة الكائنية ومفاهيمها الأساسية.

هذه الدورة ملائمة للمبتدئين الذين يريدون تعلم Dart تعلمًا صحيحًا من البداية، ولمن يخطط لدخول عالم Flutter ويحتاج إلى أساس قوي قبل البدء في تطوير التطبيقات.

بنهاية الدورة ستكون قادرًا على فهم وكتابة أكواد Dart والتعامل مع المشروعات البرمجية بصورة منظمة، والانتقال إلى تعلُّم Flutter وأنت تمتلك الأساس الذي تعتمد عليه معظم التطبيقات الحديثة.

المتطلبات

القدرة على استخدام الحاسوب بصورة أساسية والتعامل مع الملفات والمجلدات.
تثبيت البرامج واستخدام بيئة تطوير مثل VS Code أو أي محرر أكواد مشابه.
معرفة بسيطة باللغة الإنجليزية تساعد على قراءة أسماء الدوال والمتغيرات والمصطلحات البرمجية الشائعة.
المتطلبات

التعليمات

Check the frequently asked questions about this course.

هل الدورة ملائمة لشخص لا يملك أي خبرة سابقة في البرمجة؟
نعم، تبدأ الدورة من المفاهيم الأساسية جدًا مثل المتغيرات وأنواع البيانات والعمليات المختلفة، ثم تنتقل تدريجيًا إلى الشروط والحلقات والدوال، قبل الوصول إلى البرمجة الكائنية؛ لذلك لا تحتاج إلى أي معرفة مسبقة بل يكفي امتلاك مهارات استخدام الحاسوب الأساسية.
هل تركز الدورة على حفظ أوامر Dart أم على فهم طريقة التفكير البرمجية؟
تركز الدورة على الجانبين، لكنها تولي اهتمامًا كبيرًا لفهم طريقة التفكير البرمجية وتحليل المشكلات قبل كتابة الكود. ستتعلم كيف تحول فكرة أو معادلة أو مشكلة حقيقية إلى خطوات منطقية ثم إلى برنامج يعمل بصورة صحيحة.
هل تكفي الدورة للانتقال إلى تعلم Flutter؟
نعم، صمم محتوى الدورة ليغطي الأساس الذي يحتاج إليه أي متعلم قبل الدخول إلى Flutter. وبعد إنهاء الدورة ستكون قد تعلمت معظم مفاهيم Dart الأساسية ومبادئ البرمجة الكائنية التي يعتمد عليها تطوير تطبيقات Flutter يوميًّا.
هل يتم شرح البرمجة الكائنية (OOP) بشكل عملي أم نظري فقط؟
يتم شرح المفاهيم من خلال أمثلة ومشكلات واقعية قبل الانتقال إلى الحل البرمجي، بحيث تفهم سبب وجود مفاهيم مثل Encapsulation وInheritance وPolymorphism وAbstraction، ثم تتعلم كيفية تطبيقها داخل المشاريع البرمجية.
ما الفرق بين هذه الدورة ومشاهدة شروحات Dart المتفرقة على الإنترنت؟
المشكلة في المحتوى المتفرق أنه غالبًا يشرح المواضيع بشكل منفصل دون بناء تسلسل تعليمي واضح. أما هذه الدورة فتم ترتيب الموضوعات بحيث ينتقل المتعلم من مفهوم إلى آخر بصورة تدريجية، مما يساعد على تكوين فهم متماسك للغة بدلًا من امتلاك معلومات متفرقة يصعب ربطها ببعضها.
هل تشرح الدورة الأدوات الحديثة في Dart أم تكتفي بالمفاهيم التقليدية؟
لا تقتصر الدورة على الأساسيات فقط، بل تتناول أيضًا موضوعات حديثة ومستخدمة في المشاريع الفعلية مثل Mixin وEnum وExtensions وSealed Class، مع توضيح دور كل منها وأسباب استخدامها.
هل سأتعلم كيفية تنظيم الكود وكتابته بطريقة احترافية؟
نعم، فالدورة لا تركز على كتابة الأكواد فقط، بل تشرح أيضًا مفاهيم إعادة استخدام الكود، وتقليل التكرار، وتنظيم الملفات، واختيار الأدوات المناسبة لحل المشكلات، وهي مهارات أساسية في أي مشروع حقيقي.
هل الدورة ملائمة لمن لديه خبرة صغيرة في البرمجة بلغة أخرى؟
بالتأكيد، فإذا كنت تعرف أساسيات البرمجة بلغة أخرى وترغب في تعلم Dart، فستساعدك الدورة على فهم خصائص اللغة وأسلوبها فهمًا سريعًا ومنظمًا، مع التركيز على الفروق والمفاهيم المستخدمة بكثرة في بيئة Dart وFlutter.
ماذا سأكون قادرًا على فعله بعد إنهاء الدورة؟
ستتمكن من قراءة وكتابة أكواد Dart، والتعامل مع المتغيرات والدوال وهياكل البيانات والحلقات التكرارية والشروط، وفهم البرمجة الكائنية بصورة عملية، وستكون مستعدًا للانتقال إلى تعلم Flutter أو دراسة الموضوعات المتقدمة في Dart.
Ammar Ahmed
Ammar Ahmed
4 الدورات
0 طلاب
عمار أحمد عجيزة مطور تطبيقات Flutter ومدرب تقني حاصل على بكالوريوس علوم الحاسب والذكاء الاصطناعي من جامعة بنها. يمتلك خبرة عملية في تطوير التطبيقات متعددة المنصات باستخدام Flutter وDart، وعمل مع عدة شركات تقنية على تصميم وتطوير تطبيقات احترافية قابلة للتوسع والصيانة. شارك في تنفيذ مشاريع حقيقية في مجالات التعليم والتجارة الإلكترونية والخدمات الرقمية، كما يمتلك خبرة في Firebase وREST APIs وإدارة الحالة ...
Ammar Ahmed
Curriculum Overview

This course includes 8 modules, 58 lessons, and 0 hours of materials.

أساسيات Dart
14 أقسام
1. ما هي البرمجة؟ وكيف يفهم الكمبيوتر أوامرك؟
مجانًا

في هذه الحلقة سأصحبك في بداية رحلتنا مع لغة Dart، وسنتعرف معًا على مفهوم البرمجة بطريقة سهلة وعملية بعيدًا عن التعقيد.
وسأوضح لك كيف تعتمد البرامج التي نستخدمها يوميًا على مجموعة من الأوامر والتعليمات، ولماذا تُعد البرمجة وسيلة لحل المشكلات وبناء التطبيقات التي تخدم المستخدمين.
وسنتعرف معا إلى معنى الـ Code ودوره في تنفيذ المهام المختلفة، لتكوّن تصورًا واضحًا عن الأساس الذي سنبني عليه كل ما سنتعلمه خلال الدورة.

مقدار -
2. لماذا نحتاج إلى البرمجة؟ وكيف تنفِّذ الأجهزة أوامرنا؟
مجانًا

في هذه الحلقة سأوضح لك لماذا أصبحت البرمجة جزءًا أساسًا من حياتنا اليومية، وكيف تُستخدم في مجالات وتطبيقات مختلفة من حولنا.
وسنتعرف بصورة سهلة على الطريقة التي تتعامل بها الأجهزة مع الأوامر والتعليمات، وكيف تتحول المدخلات إلى نتائج يمكننا الاستفادة منها في البرامج والتطبيقات التي نستخدمها كل يوم.

مقدار -
3. كيف تتواصل لغات البرمجة مع الكمبيوتر؟
مجانًا

في هذه الحلقة سأشرح لك كيف يفهم الكمبيوتر التعليمات التي نكتبها، ولماذا نستخدم لغات البرمجة بدلًا من التعامل المباشر مع لغة الآلة.
وسنتعرف إلى المراحل التي مرت بها لغات البرمجة حتى وصلت إلى صورتها الحالية، والدور الذي تقوم به الأدوات المسؤولة عن تحويل الكود إلى لغة يفهمها الجهاز.
وفي النهاية سأوضح لك لماذا يُعد إتقان لغة واحدة مثل Dart خطوة مهمة للانطلاق في عالم البرمجة.

مقدار -
4. ماذا ستتعلم في دورة Dart؟ وما الطريق إلى Flutter؟
مجانًا

في هذه الحلقة سأعرِّفك على المسار الكامل الذي سنسير فيه خلال الدورة، بدايةً من المفاهيم الأساسية في البرمجة حتى الموضوعات الأكثر تقدّمًا في لغة Dart.
وستتعرف إلى المهارات التي ستكتسبها خلال الرحلة، وكيف تساعدك هذه الأساسيات على الاستعداد للانتقال إلى Flutter والبدء في تطوير تطبيقات الهواتف المحمولة.

مقدار -
5. نصائح مهمة لتحقيق أقصى استفادة من هذه الدورة

في هذه الحلقة سأشارك معك مجموعة من النصائح والتجارب العملية التي ستساعدك على الاستفادة من الدورة استفادة أفضل.
سنتحدث عن أفضل طريقة لمشاهدة الدروس والتطبيق عليها، وكيفية التعامل مع التمارين والمشكلات البرمجية، وأهمية تدوين الملاحظات وتنظيم المعلومات في أثناء التعلم.
وسأوضح لك الطريقة الصحيحة للاستفادة من أدوات الذكاء الاصطناعي والمصادر الإضافية دون التأثير على عملية التعلم، حتى تبني أساسًا قويًّا وتحقق أكبر استفادة ممكنة خلال رحلتك مع الدورة.

مقدار -
6. إنشاء أول مشروع Dart وكتابة أول سطر برمجي

في هذه الحلقة سنبدأ العمل عمليًّا داخل بيئة التطوير، سأرشدك إلى خطوات إنشاء أول مشروع بلغة Dart والتعرف على أهم الملفات التي سنستخدمها خلال الدورة.
وسنكتب أول كود برمجي ونشغله أول مرة، وسنتعرف إلى نقطة بداية تنفيذ البرنامج، إضافة إلى استخدام التعليقات البرمجية ودورها في تنظيم الكود وتوثيقه في أثناء العمل.

مقدار -
7. المتغيرات وأنواع البيانات في Dart

في هذه الحلقة سنبدأ التعرف إلى أحد أهم المفاهيم الأساسية في البرمجة، وهو المتغيرات وكيفية استخدامها لتخزين البيانات والتعامل معها داخل البرامج.
وسأشرح لك طريقة إنشاء المتغيرات، وأشهر أنواع البيانات التي ستستخدمها باستمرار في Dart، إضافة إلى قواعد التسمية الصحيحة وأهم الملاحظات التي تساعدك على تجنب الأخطاء الشائعة.
وسنتعرف على كيفية عرض البيانات واستخدامها داخل النصوص بطريقة أكثر مرونة في أثناء كتابة الكود.

مقدار -
8. التعامل مع الأرقام العشرية وعمليات التقريب في Dart

في هذه الحلقة سنتعرف إلى مجموعة من الأدوات المهمة التي تساعدنا على التعامل مع الأرقام العشرية وعرضها بالطريقة الملائمة داخل التطبيقات.
وسأوضح لك أشهر الطرق المستخدمة للتحكم في طريقة ظهور الأرقام، والفرق بين أساليب التقريب المختلفة، ومتى يُفضَّل استخدام كل منها.
وسنتعلم كيفية تنفيذ هذه العمليات وعرض نتائجها بصورة منظمة في أثناء كتابة الكود.

مقدار -
9. إجراء العمليات الحسابية باستخدام المتغيرات

في هذه الحلقة سنبدأ التعرف على العمليات الحسابية الأساسية التي يمكن تنفيذها على المتغيرات داخل Dart.
وسأوضح لك كيفية التعامل مع عمليات مثل الجمع والطرح والضرب والقسمة، وكيفية تخزين النتائج واستخدامها داخل البرنامج.
وسنتعرف إلى بعض الملاحظات المهمة المتعلقة بأنواع البيانات عند إجراء العمليات الحسابية، والفرق بين القسمة العادية والقسمة الصحيحة، حتى تتمكن من اختيار الأسلوب المناسب حسب طبيعة البيانات التي تتعامل معها.

مقدار -
10. كتابة كود أقل وإنجاز المزيد باستخدام الاختصارات

في هذه الحلقة سنتعرف إلى مجموعة من الاختصارات التي تساعدنا على كتابة الكود بصورة أبسط وأكثر تنظيمًا عند التعامل مع المتغيرات.
وسأوضح لك كيفية تنفيذ العمليات الشائعة بطريقة مختصرة بدلًا من تكرار التعليمات نفسها في كل مرة.
كما سنتعرف إلى أسلوب زيادة القيم وتقليلها، والفرق بين بعض الصيغ المتشابهة التي قد تعطي نتائج مختلفة في أثناء التنفيذ. فهم
هذه الاختصارات سيجعل قراءة الكود وكتابته أسهل مع تقدِّمك في تعلم Dart.

مقدار -
11. فهم الشروط يبدأ من عمليات المقارنة

في هذه الحلقة سنتعرف إلى عمليات المقارنة في Dart، وهي من الأدوات الأساسية التي تساعدنا على التحقق من القيم واتخاذ القرارات داخل البرامج.
وسأوضح لك أشهر علامات المقارنة وكيفية استخدامها لمعرفة العلاقة بين القيم المختلفة.
وسنتعرف إلى نوع النتائج التي تعيدها هذه العمليات، ودورها في بناء الشروط والتحقق من صحة البيانات قبل تنفيذ الأوامر المختلفة داخل التطبيق.

مقدار -
12. ربط الشروط باستخدام العمليات المنطقية

في هذه الحلقة سنتعرف على العمليات المنطقية التي تتيح لنا التعامل مع أكثر من شرط في الوقت نفسه داخل البرنامج.
وسأوضح لك الفرق بين الحالات التي تتطلب تحقق جميع الشروط، والحالات التي يكفي فيها تحقق شرط واحد فقط، وكيف يمكن استخدام هذه العمليات للتحقق من صحة البيانات واتخاذ القرارات بطريقة أكثر دقة.
ويُعد فهم هذه المفاهيم خطوة أساسية قبل الانتقال إلى بناء الشروط والمنطق البرمجي في التطبيقات.

مقدار -
13. التعامل مع النصوص وأهم الدوال

في هذه الحلقة سنتعمق أكثر في التعامل مع النصوص باستخدام String، وسنتعرف إلى مجموعة من الدوال والخصائص التي تساعدنا على قراءة النصوص ومعالجتها بطرق مختلفة.
وسأوضح لك كيفية استخراج معلومات من النص، والبحث داخله، والتعامل مع أجزائه المختلفة، إضافة إلى تنفيذ بعض العمليات الشائعة التي ستحتاج إليها كثيرًا في أثناء تطوير التطبيقات والتعامل مع بيانات المستخدمين.

مقدار -
14. أول تطبيق عملي في Dart

في هذه الحلقة سنبدأ أول تطبيق عملي يجمع بين المفاهيم التي تعلمناها حتى الآن. سأوضح لك طريقة التفكير الصحيحة في حل المشكلات البرمجية، بدايةً من تحديد المعطيات المطلوبة، مرورًا بكتابة المنطق الملائم للحل، وصولًا إلى استخراج النتيجة وعرضها للمستخدم عرضًا واضحًا.
وبهذا المثال ستتعرف على كيفية توظيف المتغيرات والعمليات الحسابية معًا لبناء حل برمجي متكامل.

مقدار -
التحكم في سير البرنامج
6 أقسام
15. تطبيق على المتغيرات والعمليات الحسابية

في هذه الحلقة أريدك أن تعتمد على نفسك في تطبيق ما تعلمته حتى الآن من مفاهيم وأساسيات.
سنعمل على مسألة عملية تتطلب استخدام المتغيرات والعمليات الحسابية للوصول إلى النتيجة المطلوبة، مع التركيز على تحليل المشكلة وتحويلها إلى خطوات برمجية واضحة.
وستتدرب على عرض النتائج بصورة ملائمة والتعامل مع القيم العشرية في أثناء تنفيذ الحل.

مقدار -
16. التحكم في سير البرنامج

في هذه الحلقة سنتعرف إلى واحدة من أهم الأدوات التي تمنح البرامج القدرة على اتخاذ القرارات والتعامل مع الحالات المختلفة.
وسأشرح لك كيفية تنفيذ أو تجاهل أجزاء من الكود بناءً على شروط معينة، ومتى نستخدم كل أسلوب من أساليب التحكم الشرطي حسب طبيعة المشكلة التي نريد حلها.
كما سنتعرف إلى بعض الطرق المختصرة التي تساعد على كتابة الشروط بصورة أكثر تنظيمًا ووضوحًا.

مقدار -
17. تطبيق عملي على Switch

في هذه الحلقة سنطبِّق عمليًّا ما تعلمناه عن التحكم في سير البرنامج واتخاذ القرارات داخل التطبيقات.
وسأوضح لك متى يكون استخدام switch هو الخيار الأفضل؟
وكيف يمكن الاستفادة منه لتنظيم التعامل مع مجموعة من الحالات الثابتة بطريقة واضحة وسهلة القراءة؟
وسنتعرف إلى بعض العناصر المهمة التي تساعد على بناء منطق أكثر تنظيمًا عند التعامل مع القيم والاختيارات المختلفة داخل البرنامج.

مقدار -
18. تطبيق عملي على الجمل الشرطية

في هذه الحلقة سنطبِّق عمليًّا ما تعلمناه عن الجمل الشرطية بواسطة حل تمرين سهل يعتمد على المقارنة بين القيم واتخاذ القرار الملائم بناءً على النتيجة.
وسأوضح لك طريقة تحليل المشكلة واختيار الأسلوب الأفضل لكتابتها.
وسنتعرف على الفرق بين أكثر من طريقة لتنفيذ المنطق نفسه، ومتى يكون استخدام كل منها هو الخيار الأفضل.

مقدار -
19. بناء آلة حاسبة بسيطة

في هذه الحلقة سنواجه تحديًا عمليًا يجمع بين عدد من المفاهيم التي تعلمناها سابقًا.
وسنركز على اختيار الأداة الملائمة لحل المشكلة وليس الوصول إلى نتيجة صحيحة فحسب.
وسأوضح لك كيفية التعامل مع حالات عدة مختلفة داخل البرنامج، وطريقة تنظيم الكود بصورة أكثر وضوحًا، إضافة إلى أهمية التفكير في الأخطاء المحتملة والتعامل معها قبل أن تؤثر في عمل التطبيق.

مقدار -
20. التعرف على الـ List

في هذه الحلقة سننتقل من التعامل مع قيمة واحدة إلى التعامل مع مجموعة من القيم داخل متغير واحد.
وسأشرح لك مفهوم الـList ولماذا تُعد من أهم هياكل البيانات التي ستستخدمها باستمرار في أثناء البرمجة.
وسنتعرف إلى طريقة إنشاء القوائم والتعامل مع عناصرها، وكيفية الوصول إلى البيانات وتعديلها وتنظيمها بطريقة أكثر مرونة وكفاءة.

مقدار -
هياكل البيانات (Collections)
6 أقسام
21. إضافة العناصر وحذفها من الـ List

في هذه الحلقة سنتعرف إلى أهم العمليات التي سنستخدمها يوميًا عند التعامل مع الـ List.
وسأوضح لك كيفية إضافة عناصر جديدة، وحذف العناصر الموجودة، والتعديل على البيانات المخزنة داخل القائمة، إضافة إلى بعض الأدوات التي تساعدنا على معرفة حالة القائمة وعدد العناصر الموجودة بداخلها.
هذه المهارات تُعد أساسية عند التعامل مع البيانات المتغيرة في التطبيقات الحقيقية.

مقدار -
22. عمليات CRUD على الـ List

في هذه الحلقة سنتعرف إلى مفهوم CRUD، وهو مجموعة العمليات الأساسية التي تُستخدم للتعامل مع البيانات في معظم التطبيقات.
وسأوضح لك كيف ترتبط هذه العمليات بما تعلمناه سابقًا عن الـ List، وكيف يمكن إضافة البيانات وقراءتها وتعديلها بطريقة منظمة.
وسنتعرف إلى بعض الأساليب التي تمنحنا مرونة أكبر في أثناء التعامل مع العناصر داخل القوائم وتحديثها حسب الحاجة.

مقدار -
23. حذف العناصر من الـ List

في هذه الحلقة سنتعرف إلى الطرق المختلفة لحذف العناصر من الـ List حسب طبيعة الموقف الذي نتعامل معه.
وسأوضح لك متى يكون الحذف بناءً على القيمة هو الخيار الملائم؟ ومتى نلجأ إلى الحذف باستخدام الـ Index أو وفق شروط محددة؟
وسنتعرف إلى بعض الملاحظات المهمة التي تساعد على تجنب الأخطاء في أثناء التعامل مع عناصر القوائم وتعديلها.

مقدار -
24. دمج القوائم والتحقق من محتواها

في هذه الحلقة سنتعرف إلى بعض الأدوات المفيدة التي تجعل التعامل مع الـ List أكثر مرونة وتنظيمًا.
وسأوضح لك كيفية دمج القوائم ونقل عناصرها بطرائق مختلفة، والفرق بين التعامل مع العناصر نفسها والتعامل مع القائمة ككيان واحد.
وسنكتشف أساليب سهلة تساعدنا على التحقق من وجود بيانات داخل القائمة قبل تنفيذ العمليات المختلفة عليها.

مقدار -
25. التعرف على الـ Map

في هذه الحلقة سنتعرف على بنية بيانات مهمة تُستخدم كثيرًا عند التعامل مع البيانات المرتبطة ببعضها داخل التطبيقات.
وسأوضح لك الفرق بين الـ List والـ Map، ومتى يكون استخدام كل منهما هو الخيار الأفضل؟
وسنتعلم كيفية تخزين البيانات والوصول إليها وتعديلها وإدارتها باستخدام المفاتيح، ما يجعل التعامل مع المعلومات أكثر وضوحًا وتنظيمًا في المشروعات الحقيقية.

مقدار -
26. التعرف على الـ Loops

في هذه الحلقة سنتعرف إلى مفهوم الحلقات التكرارية، وهي من الأدوات الأساسية التي تساعدنا على تنفيذ الأوامر المتكررة بطريقة أكثر كفاءة وتنظيمًا.
وسأشرح لك فكرة التكرار وكيفية التحكم في عدد مرات تنفيذ الكود، والعناصر الأساسية التي تعتمد عليها الحلقات التكرارية في أثناء العمل.
كما سنتعرف إلى أشهر أنواع الـ Loops في Dart، ولماذا تُعد من أكثر الأدوات استخدامًا عند التعامل مع البيانات والقوائم داخل التطبيقات؟

مقدار -
الحلقات التكرارية (Loops)
9 أقسام
27. الفرق بين for و while و do-while

في هذه الحلقة سنكتشف الفروق الأساسية بين أشهر أنواع الحلقات التكرارية في Dart، ومتى يكون استخدام كل نوع هو الخيار الأفضل؟
سأوضح لك كيف تعمل هذه الحلقات في أثناء التنفيذ، وما الذي يميز كل واحدة منها عن الأخرى، إضافة إلى بعض الملاحظات المهمة التي تساعدك على تجنب الأخطاء الشائعة عند التعامل مع شروط التكرار وتحديث القيم داخل الحلقات.

مقدار -
28. كيف تعمل الـ for Loop؟

في هذه الحلقة سنركز على فهم آلية عمل الـ for loop خطوة خطوة، وكيف تنتقل بين مراحل البداية والشرط والتكرار حتى تصل إلى التوقف؟
وسأشرح لك ما يحدث في أثناء كل دورة من دورات الحلقة، وبعض التفاصيل المهمة التي تساعدك على فهم طريقة التنفيذ فهمًا أعمق، حتى تتمكن من استخدام الـ for loop بثقة في مختلف السيناريوهات البرمجية.

مقدار -
29. استخدام break و continue

في هذه الحلقة سنكتشف أداتين مهمتين جدًا للتحكم في سلوك الحلقات التكرارية في أثناء التنفيذ.
وسأوضح لك كيف يمكن تجاوز حالات معينة داخل الحلقة دون إيقافها؟ وكيف يمكن إنهاء الحلقة بالكامل عند تحقق شرط محدد؟
وسنتعرف إلى تأثير ترتيب الأوامر داخل الحلقة، ومتى يكون استخدام كل من break و continue هو الخيار الملائم.

مقدار -
30. التكرار على عناصر الـ List

في هذه الحلقة سنتعلم كيفية التعامل مع عناصر الـ List عمليًّا باستخدام الحلقات التكرارية.
وسأوضح لك كيف يمكن المرور على جميع العناصر دون الحاجة إلى الوصول لكل عنصر يدويًا.
كما سنتعلم أكثر من أسلوب للتعامل مع القوائم، والفرق بين الحالات التي نحتاج فيها إلى معرفة موقع العنصر، والحالات التي يكفي فيها التعامل مع العنصر نفسه فقط.
هذه المهارة تُعد من أكثر الأمور استخدامًا عند العمل مع البيانات داخل التطبيقات.

مقدار -
31. استخدام forEach

في هذه الحلقة سنتعلم أسلوبًا آخر للتعامل مع عناصر الـ List بطريقة مختصرة ومنظمة.
وسأوضح لك كيف يمكن تنفيذ أوامر معينة على جميع عناصر القائمة دون الحاجة إلى كتابة حلقة تقليدية.
وسنتعرف إلى الحالات التي يُفضّل فيها استخدام forEach، والفرق بينها وبين الأساليب الأخرى التي تعلمناها سابقًا للتكرار على عناصر القوائم.

مقدار -
32. العد التنازلي باستخدام الـ Loops

في هذه الحلقة سنطبِّق مفهوم الحلقات التكرارية بطريقة مختلفة بتنفيذ العد التنازلي بدلًا من العد التصاعدي.
وسأوضح لك كيف يمكن تعديل بداية الحلقة وشرطها وخطوة التكرار لتعمل في الاتجاه العكسي، حتى تتمكن من التحكم في سير التكرار بالأسلوب الملائم حسب متطلبات المشكلة التي تعمل عليها.

مقدار -
33. تطبيق عملي على الـ While Loop

في هذه الحلقة سنستخدم الـ While Loop لحل مسألة عملية تعتمد على التكرار وتجميع النتائج خطوة خطوة.
وسأوضح لك كيفية الاستفادة من الحلقات التكرارية في تنفيذ العمليات الحسابية المتتابعة، وطريقة تتبع القيم في أثناء التنفيذ للوصول إلى النتيجة النهائية.
وستتدرب على تحليل المشكلة وتحويلها إلى خطوات برمجية يمكنك تطبيقها بنفسك على أمثلة مشابهة.

مقدار -
34. طباعة الأعداد الزوجية

في هذه الحلقة سنطبِّق ما تعلمناه عن الحلقات التكرارية والشروط لحل مسألة عملية تعتمد على التمييز بين الأعداد الزوجية والفردية.
وسأوضح لك أكثر من طريقة للوصول إلى النتيجة نفسها، وكيف يمكن اختيار الأسلوب الأفضل لتقليل عدد العمليات وتحسين طريقة التفكير في أثناء كتابة الحلول البرمجية.

مقدار -
35. إنشاء أرقام عشوائية باستخدام Loops

في هذه الحلقة سنطبِّق أكثر من مفهوم تعلمناه سابقًا في مثال عملي يجمع بين القوائم والحلقات التكرارية.
وسأوضح لك كيفية إنشاء مجموعة من القيم تلقائيًّا وإضافتها إلى الـ List دون تكرار الكود يدويًا.
وسنتعلم استخدام الأرقام العشوائية في Dart، وكيف يمكن الاستفادة منها في بناء تطبيقات وسيناريوهات عملية مختلفة؟

مقدار -
الدوال (Functions)
4 أقسام
36. فهم Nullable و Null Safety

في هذه الحلقة سنتعلم أحد المفاهيم المهمة في Dart، وهو التعامل مع القيم الفارغة وآلية Null Safety.
وسأوضح لك الفرق بين المتغيرات التي يجب أن تحتوي قيمة دائمًا، والمتغيرات التي يمكن أن تكون فارغة عند الحاجة، ومتى يكون استخدام كل نوع هو الخيار الأفضل.
وسنتعلم أيضًا بعض المصطلحات الأساسية المرتبطة بتعريف المتغيرات وإسناد القيم إليها في أثناء كتابة الكود.

مقدار -
37. مقدمة إلى الـ Functions

في هذه الحلقة سنتعرف إلى الدوال (Functions) وأهميتها في تنظيم الكود وتقليل التكرار في أثناء البرمجة.
وسأوضح لك كيف يمكن تجميع مجموعة من الأوامر داخل وحدة قابلة لإعادة الاستخدام، وكيفية استدعائها عند الحاجة بدلًا من إعادة كتابة الكود في كل مرة.
وسنتعلم فكرة تمرير البيانات إلى الدوال، والفرق بين المعاملات والقيم المرسلة، حتى تتمكن من بناء دوال أكثر مرونة وقابلية لإعادة الاستخدام.

مقدار -
38. استخدام return في الدوال

في هذه الحلقة سنتعلم نوعًا مهمًّا من الـ Functions، وهو الدوال التي تُرجع قيمة يمكن استخدامها في أجزاء مختلفة من البرنامج.
وسأوضح لك الفرق بين الدوال التي تنفذ مهمة مباشرة والدوال التي تعيد نتيجة للاستفادة منها لاحقًا، وكيفية استخدام return الاستخدام الصحيح.
إضافة إلى أهمية اختيار نوع البيانات الملائم والقيمة التي تعيدها الدالة في أثناء التنفيذ.

مقدار -
39. أنواع الـ Parameters في الدوال

في هذه الحلقة سنتعلم الطرائق المختلفة التي تستقبل بها الدوال البيانات، والفرق بين القيم التي نعرِّفها داخل الدالة والقيم التي نرسلها عند استخدامها.
وسأوضح لك متى نعتمد على ترتيب القيم؟ ومتى يكون استخدام الأسماء أكثر وضوحًا؟ وكيف يمكن جعل بعض البيانات اختيارية لتسهيل استخدام الدوال وكتابة كود أكثر مرونة وتنظيمًا؟

مقدار -
البرمجة الكائنية (OOP Foundations)
7 أقسام
40. استخدام Arrow Functions

في هذه الحلقة سنتعلم أسلوبًا مختصرًا لكتابة الدوال في Dart يُستخدم كثيرًا عند التعامل مع العمليات السهلة.
وسأوضح لك متى يكون هذا الأسلوب ملائمًا؟ وما الفرق بينه وبين النمط التقليدي للدوال؟
وكيف يمكن أن يساعد على جعل الكود أكثر اختصارًا وسهولة في القراءة دون تغيير طريقة عمل البرنامج؟

مقدار -
41. مقدمة إلى البرمجة الكائنية (OOP)

في هذه الحلقة سننتقل إلى مرحلة جديدة في تعلم البرمجة، ونتعرف على أسلوب مختلف لتنظيم التطبيقات الكبيرة وإدارة مكوناتها بطريقة أكثر احترافية.
وسأشرح لك الفكرة العامة للبرمجة الكائنية ولماذا ظهرت، وكيف تساعد على تقسيم البرامج إلى أجزاء منظمة يسهل تطويرها وصيانتها مع زيادة حجم المشروع.
وسنمهد للمفاهيم الأساسية التي سنبني عليها بقية رحلتنا في OOP خلال الحلقات القادمة.

مقدار -
42. لماذا نحتاج إلى OOP؟

في هذه الحلقة سأوضح لك المشكلة التي جاءت البرمجة الكائنية لحلها، ولماذا تصبح الطرائق التقليدية أقل كفاءة كلما كبر حجم المشروع؟
سنتعرف إلى التحديات التي تظهر عند إدارة كميات كبيرة من البيانات والوظائف داخل التطبيقات، وكيف يساعد أسلوب OOP على تنظيم الكود وتقليل التكرار وربط البيانات بالسلوك الخاص بها بطريقة أكثر وضوحًا وقابلية للتطوير؟

مقدار -
43. التعرف على Class و Object

في هذه الحلقة سننتقل من الجانب النظري إلى التطبيق العملي لمفاهيم البرمجة الكائنية.
وسأوضح لك الفرق بين الـ Class والـ Object، وكيف يمكن استخدام الـ Class كقالب لإنشاء كائنات متعددة تمتلك بيانات ووظائف خاصة بها؟
وسنتعلم كيفية تجميع الخصائص والسلوكيات داخل مكان واحد، ولماذا يساعد هذا الأسلوب على تنظيم الكود وتقليل التكرار عند بناء التطبيقات الكبيرة.

مقدار -
44. استخدام Constructor و this

في هذه الحلقة سنتعرف على أحد أهم مكونات الـ Class، وهو الـ Constructor، ودوره في تجهيز الـ Object منذ لحظة إنشائه.
وسأوضح لك كيف يمكن تمرير البيانات مباشرة في أثناء إنشاء الكائنات، ولماذا يُستخدم الـ Constructor بكثرة في البرمجة الكائنية؟
وسنتعرف إلى كلمة this وفائدتها في التعامل مع خصائص الـ Object وربط البيانات المستقبلة بالقيم الخاصة بكل نسخة يتم إنشاؤها.

مقدار -
45. استخدام Named Constructors

في هذه الحلقة سنتعلم أسلوبًا مهمًّا يتيح لنا إنشاء الـ Objects بأكثر من طريقة داخل الكلاس نفسه.
وسأوضح لك متى نحتاج إلى Named Constructors؟ وكيف تساعدنا على التعامل مع البيانات القادمة من مصادر مختلفة مثل الـ Map أو الـ JSON بطريقة أكثر تنظيمًا؟
وسنتعلم أشهر الاستخدامات العملية لهذا الأسلوب، ولماذا يُستخدم بكثرة في مشروعات Dart وFlutter الحديثة؟

مقدار -
46. استخدام Initializer List

في هذه الحلقة سنتعرف إلى الـ Initializer List، وهي من الأدوات المهمة التي تساعد على تهيئة البيانات في أثناء إنشاء الـ Objects بطريقة أكثر تنظيمًا.
وسأوضح لك متى يمكن تنفيذها مقارنة بالـ Constructor؟ وكيف يمكن استخدامها لإسناد القيم وتجهيز الخصائص قبل بدء تنفيذ الكود الرئيسي؟
وسنتعلم بعض الاستخدامات العملية التي تجعل الكود أوضح وأسهل في الصيانة داخل مشروعات Dart وFlutter.

مقدار -
مبادئ OOP الأساسية
8 أقسام
47. استخدام Static في الـ Classes

في هذه الحلقة سنتعرف إلى مفهوم Static وأهميته داخل البرمجة الكائنية، ومتى يكون من الأفضل ربط البيانات أو الدوال بالـ Class نفسه بدلًا من ربطها بكل Object على حدة؟
وسأوضح لك الحالات التي يُستخدم فيها Static لتقليل التكرار وتنظيم الكود، وكيفية الوصول إلى هذه العناصر مباشرة دون الحاجة إلى إنشاء كائنات جديدة.

مقدار -
48. الفرق بين const و final

في هذه الحلقة سنتعلم طريقتين مهمتين للتعامل مع القيم الثابتة في Dart، ومتى نستخدم كلًا منهما داخل مشروعاتنا؟
وسأوضح لك الفرق بين const وfinal، وكيف يؤثر توقيت تحديد القيمة في اختيار الأداة الملائمة، حتى تتمكن من كتابة كود أكثر وضوحًا وحماية البيانات التي لا يجب تغييرها في أثناء تشغيل البرنامج.

مقدار -
49. مفهوم Encapsulation في OOP

في هذه الحلقة سنتعلم أول مبادئ البرمجة الكائنية الأساسية، وهو Encapsulation أو التغليف.
وسأوضح لك كيف يساعد هذا المفهوم على حماية البيانات ومنع التعديل عليها بطرق غير صحيحة، وكيف يمكن التحكم في آلية الوصول إلى القيم والتحقق منها قبل استخدامها.
وسنتعرف إلى أهمية تجميع البيانات المرتبطة ببعضها داخل كيان واحد منظم، ما يجعل الكود أكثر أمانًا وأسهل في الإدارة والتطوير.

مقدار -
50. مفهوم Inheritance في OOP

في هذه الحلقة سنتعلم مبدأ Inheritance أو الوراثة، وهو أحد أهم مفاهيم البرمجة الكائنية وأكثرها استخدامًا في المشروعات الحقيقية.
وسأوضح لك كيف يمكن تجميع الخصائص المشتركة بين عدة كائنات داخل كيان واحد، ثم إعادة استخدامها دون تكرار، ما يجعل الكود أكثر تنظيمًا وأسهل في التطوير والصيانة.
كما سنتعرف إلى الحالات التي يكون فيها استخدام الوراثة ملائمًا، وكيف تساعد على بناء علاقات منطقية بين مكونات البرنامج المختلفة.

مقدار -
51. مفهوم Method Overriding

في هذه الحلقة سنتعرف إلى Method Overriding، وهي من أهم المفاهيم المرتبطة بالوراثة في البرمجة الكائنية.
وسأوضح لك كيف يمكن للكلاسات الموروثة أن تعيد تنفيذ الدوال الموجودة في الكلاس الأب بما يلائم احتياجاتها الخاصة، مع الاحتفاظ بإمكانية الاستفادة من السلوك الأصلي عند الحاجة.
وسنكتشف الحالات التي نستخدم فيها إعادة التعريف، وكيف تساعد على بناء كود أكثر مرونة وتنظيمًا عند التعامل مع أنواع مختلفة من الكائنات؟

مقدار -
52. مفهوم Abstraction في OOP

في هذه الحلقة سنتعرف إلى مفهوم Abstraction أو التجريد، ولماذا يُعد أحد أهم مبادئ البرمجة الكائنية.
وسأوضح لك كيف يساعد على تنظيم الكود وتقليل التكرار، وكيف يمكن فرض مجموعة من القواعد والوظائف المشتركة على الكلاسات المختلفة دون الحاجة إلى إعادة تعريفها في كل مرة؟
وسنكتشف دور الـ Abstract Class في بناء أنظمة أكثر وضوحًا وتنظيمًا، وكيف يضمن التزام الكلاسات الموروثة بتنفيذ الوظائف الأساسية المطلوبة؟

مقدار -
53. مفهوم Polymorphism في OOP

في هذه الحلقة سنتعلم آخر المبادئ الأساسية في البرمجة الكائنية، وهو Polymorphism أو تعدد الأشكال.
وسأوضح لك كيف يمكن التعامل مع كائنات مختلفة من طريق واجهة أو نوع أساس واحد، مع احتفاظ كل كائن بسلوكه الخاص.
وسنكتشف الفوائد العملية لهذا المفهوم، وكيف يساعد على بناء تطبيقات أكثر مرونة وقابلية للتوسعة، ويقلل الحاجة إلى الشروط المتكررة عند إضافة أنواع جديدة أو تطوير النظام مستقبلًا؟

مقدار -
54. التعرّف على Interface

في هذه الحلقة سنتعلم الـ Interface، وهي طريقة أخرى لتطبيق مفهوم الـ Abstraction.
وتعتمد الـ Interface على فكرة العقد (Contract)، لأنها تُجبر أي Class يطبقها باستخدام implements على تنفيذ جميع الدوال الموجودة بداخلها.



والفرق الأساسي بينها وبين الـ Abstract Class هو أن الـ Abstract Class يمكن أن يحتوي Implementations محضرة يمكن إعادة استخدامها، في حين تُلزم الـ Interface جميع الـ Classes بتنفيذ الدوال بنفسها.



باختصار، إذا كنت تريد فرض مجموعة من السلوكيات على عدة Classes فاستخدم Interface، أما إذا كنت تريد توفير سلوك مشترك يمكن إعادة استخدامه فغالبًا ستستخدم Abstract Class.

مقدار -
أدوات Dart المتقدمة
4 أقسام
55. ميزة Sealed Class
مقدار -
56. مفهوم Mixin وإعادة استخدام الكود

في هذه الحلقة سنتعلم Mixin في Dart، ولماذا نحتاج إليه عند التعامل مع الوظائف المشتركة بين عدة Classes.
وسنفهم مشكلة الوراثة المتعددة التي لا تدعمها Dart دعمًا مباشرًا، وكيف يسمح لنا Mixin بإضافة سلوكيات وخصائص مشتركة إلى أكثر من Class دون تكرار الكود؟
وسنكتشف دوره في تطبيق مبدأ DRY وإعادة استخدام الوظائف المشتركة بطريقة منظمة وسهلة الصيانة.

مقدار -
57. استخدام Enum

في هذه الحلقة سنتعرف إلى Enum في Dart، ومتى يكون استخدامه أفضل من الاعتماد على النصوص والقيم العادية؟
وسنرى كيف يساعدنا Enum على تجميع القيم الثابتة داخل نوع واحد منظم وآمن؟ وكيف يمنع الأخطاء الناتجة عن استخدام قيم غير صحيحة؟
وسنتعلم طريقة دمجه مع Switch Case للاستفادة من فحص جميع الحالات الممكنة وجعل الكود أكثر وضوحًا وسهولة في الصيانة.

مقدار -
58. إضافة وظائف جديدة باستخدام Extensions

في هذه الحلقة سنتعلم Extensions في Dart، وهي ميزة تسمح لنا بإضافة Methods وخصائص جديدة إلى Classes موجودة مسبقًا دون الحاجة إلى تعديل الكود الأصلي الخاص بها.
وسنرى كيف يمكن توسيع إمكانات الأنواع الجاهزة مثل String، أو حتى Classes التي أنشأناها داخل المشروع، مع الحفاظ على تنظيم الكود وسهولة صيانته.
وسنتعلم استخدام الكلمة this داخل الـ Extension للوصول إلى الكائن الحالي، وكيف تساعد Extensions على إعادة استخدام الوظائف وجعل الكود أكثر وضوحًا ومرونة.

مقدار -
الشهادات
1 أقسام
شهادة الدورة
شهادة الدورة
If you pass all the lessons in this course, you will receive this certificate.
النوع شهادة الدورة
Reply to Comment
Comments Approval

Your comment will be visible after admin approval.

0
0 المراجعات
جودة المحتوى (0)
مهارات المدرب (0)
قيمة الشراء (0)
جودة الدعم (0)
Reply to Review
Submit Reply

Your reply to this review will be visible to all users.

دورة Dart: من الصفر إلى OOP
45 $

تشمل هذه الدورة

شهادة رسمية
دعم المدرب
مفضلة
شارك

مواصفات الدورة

Lessons
58
مدة
10:37 ساعات
Access Duration
365 أيام
Updated Date
16/06/2026
Ammar Ahmed
Ammar Ahmed

مطور Flutter ومدرب برمجة تطبيقات

إرسال الدورة كهدية

Send as a gift to friends
دورة Dart: من الصفر إلى OOP
You are viewing
دورة Dart: من الصفر إلى OOP