رحلة
تعلّم Dart
دورة Dart تفاعلية مجانية أونلاين. تكتب Dart في كل درس — الصياغة، الفئات، async/await، futures، والأساسيات التي تحتاجها لـ Flutter — مع تلميحات بالذكاء الاصطناعي حين تتعقّد الأمور غير المتزامنة، وشهادة مجانية عند الانتهاء.
17,492+ من الـ codders مسجلون
- مناسب للمبتدئين
مساعدة برمجية بالذكاء الاصطناعي
دروس تفاعلية عملية
تعليق صوتي في كل درس
اختبارات لقياس معرفتك
شهادة إتمام مجانية
المنهج
قسم 1
Fundamentals
ابدأ القسمابدأتوسيعطيBuild a strong foundation with essential concepts and basic skillsمقدمة إلى Dart
4 درسًا224- 01ما هي Dart؟تحدي
- 02الدالة mainاختبار
- 03طباعة المخرجاتتحدياختبار
- 04التعليقات البرمجيةاختبار
المتغيرات وأنواع البيانات الأساسية
11 درسًا1075- 01ما هي المتغيرات؟اختبار
- 02النصوص (Strings)تحدياختبار
- 03الأعداد الصحيحة (int)تحدياختبار
- 04الأعداد العشرية (double)تحدياختبار
- 05القيم المنطقية (bool)تحدياختبار
- 06استنتاج النوع باستخدام 'var'تحدياختبار
- 07المتغيرات النهائية (Final)تحدياختبار
- 08المتغيرات الثابتة (Constant)تحدياختبار
- 09قواعد التسميةتحدياختبار
- 10أساسيات الـ Null Safetyتحدياختبار
- 11ملخص - التصريح عن المتغيراتتحدي
المعاملات - الجزء الأول
6 درسًا638- 01المعاملات الحسابيةتحدياختبار
- 02القسمة الصحيحةتحدياختبار
- 03معامل باقي القسمة (Modulo)تحدياختبار
- 04الزيادة والنقصانتحدياختبار
- 05اختصارات التعيينتحدياختبار
- 06ملخص - الحسابات البسيطةتحدي
المعاملات - الجزء الثاني
6 درسًا636- 01معاملات المقارنةتحدياختبار
- 02المعامل المنطقي ANDتحدياختبار
- 03المعامل المنطقي ORتحدياختبار
- 04المعامل المنطقي NOTتحدياختبار
- 05معاملات فحص النوعتحدياختبار
- 06ملخص - إجراء المقارناتتحدي
المعاملات - الجزء الثالث
3 درسًا320- 01معامل التعامل مع Nullتحدياختبار
- 02الوصول المتفادي لـ Nullتحدياختبار
- 03المعامل الشرطيتحدياختبار
تدفق التحكم - اتخاذ القرار
6 درسًا636- 01جملة 'if'تحدياختبار
- 02جملة 'else'تحدياختبار
- 03جملة 'else if'تحدياختبار
- 04ملخص - القرارات البسيطةتحدي
- 05جمل 'if' المتداخلةتحدياختبار
- 06جملة 'switch'تحدياختبار
التعامل مع النصوص (Strings)
5 درسًا538- 01دمج النصوص (String Concatenation)تحدياختبار
- 02تضمين النصوص (String Interpolation)تحدياختبار
- 03النصوص متعددة الأسطر (Multi-line Strings)تحدياختبار
- 04خصائص النصوص (String Properties)تحدياختبار
- 05دوال النصوص الأساسية (String Methods)تحدياختبار
مسار التحكم - الحلقات التكرارية
6 درسًا637- 01حلقة 'for' التكراريةتحدياختبار
- 02حلقة 'while' التكراريةتحدياختبار
- 03حلقة 'do-while' التكراريةتحدياختبار
- 04استخدام 'break' في الحلقات التكراريةتحدياختبار
- 05استخدام 'continue' في الحلقات التكراريةتحدياختبار
- 06ملخص - تكرار الكود البرمجيتحدي
المجموعات - أساسيات القوائم
8 درسًا759- 01ما هي القوائم؟اختبار
- 02إنشاء قائمةتحدياختبار
- 03الوصول عبر الفهرستحدياختبار
- 04الحصول على طول القائمةتحدياختبار
- 05إضافة عناصرتحدياختبار
- 06إزالة عناصرتحدياختبار
- 07التحقق مما إذا كانت القائمة فارغةتحدياختبار
- 08التكرار عبر القائمةتحدياختبار
المجموعات - أساسيات الخرائط
8 درسًا757- 01ما هي الخرائط؟اختبار
- 02إنشاء خريطةتحدياختبار
- 03الوصول إلى القيم عبر المفتاحتحدياختبار
- 04أزواج المفتاح والقيمةتحدياختبار
- 05الحصول على حجم الخريطةتحدياختبار
- 06الحصول على المفاتيحتحدياختبار
- 07الحصول على القيمتحدياختبار
- 08التحقق من وجود مفتاحتحدياختبار
أساسيات الدوال
8 درسًا753- 01ما هي الدوال؟اختبار
- 02تعريف دالة بسيطةتحدياختبار
- 03استدعاء الدالةتحدياختبار
- 04الدوال مع المعاملات (Parameters)تحدياختبار
- 05الدوال التي تعيد قيمًاتحدياختبار
- 06الكلمة المفتاحية 'void'تحدياختبار
- 07صيغة السهم (Arrow Syntax)تحدياختبار
- 08ملخص - الدوال البسيطةتحدي
الدوال المتقدمة
5 درسًا532- 01المعاملات الموضعية الاختياريةتحدياختبار
- 02المعاملات المسماةتحدياختبار
- 03المعاملات المسماة المطلوبةتحدياختبار
- 04القيم الافتراضية للمعاملاتتحدياختبار
- 05ملخص - معاملات الدوالتحدي
أمان الـ Null بشكل متعمق
6 درسًا639- 01فهم الـ Nullتحدياختبار
- 02الأنواع القابلة لقيمة Nullتحدياختبار
- 03الأنواع غير القابلة لقيمة Nullتحدياختبار
- 04عامل التأكيد على الـ Nullتحدياختبار
- 05التهيئة المتأخرةتحدياختبار
- 06ملخص - التعامل مع الـ Null بأمانتحدي
تحويل الأنواع
4 درسًا430- 01تحويل String إلى intتحدياختبار
- 02تحويل String إلى doubleتحدياختبار
- 03تحويل الأرقام إلى Stringتحدياختبار
- 04معالجة أخطاء التحويلتحدياختبار
مشروع: آلة حاسبة بسيطة
مشروع5 درسًا1- 01الإعدادتحدي
- 02تعريف الأرقاممشروع
- 03إنشاء عمليةمشروع
- 04إجراء الحسابمشروع
- 05عرض النتيجةمشروع
تحديات الأساسيات
3 درسًا3- 01تحدي: قائمة الحساباتتحدي
- 02تحدي: مجموع الأرقامتحدي
- 03تحدي: إيجاد حاصل الضربتحدي
قسم 2
Logic & Flow
ابدأ القسمابدأتوسيعطيMaster advanced Dart programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.التعامل المتقدم مع القوائم
9 درسًا959- 01خصائص القائمة: first و lastتحدياختبار
- 02حالة القائمة: isEmpty و isNotEmptyتحدياختبار
- 03عكس القائمةتحدياختبار
- 04الإضافة إلى القائمة: insertتحدياختبار
- 05الحذف من القائمة: removeWhereتحدياختبار
- 06البحث في القائمة: indexOfتحدياختبار
- 07فرز القائمةتحدياختبار
- 08خلط القائمةتحدياختبار
- 09ملخص - منظم القوائمتحدي
عمليات القوائم الوظيفية
7 درسًا746- 01التحويل باستخدام 'map'تحدياختبار
- 02التصفية باستخدام 'where'تحدياختبار
- 03استخدام '.toList()'تحدياختبار
- 04التحقق من الشروط باستخدام 'any'تحدياختبار
- 05الشروط باستخدام 'every'تحدياختبار
- 06البحث باستخدام 'firstWhere'تحدياختبار
- 07مراجعة - تصفية البياناتتحدي
المجموعات
9 درسًا864- 01ما هي المجموعة؟اختبار
- 02إنشاء مجموعةتحدياختبار
- 03الإضافة والحذف من المجموعاتتحدياختبار
- 04التحقق من وجود عناصر في المجموعةتحدياختبار
- 05تحويل قائمة إلى مجموعةتحدياختبار
- 06اتحاد المجموعاتتحدياختبار
- 07تقاطع المجموعاتتحدياختبار
- 08الفرق بين المجموعاتتحدياختبار
- 09مراجعة - قائمة ضيوف فريدةتحدي
معالجة الـ Map المتقدمة
7 درسًا745- 01التكرار عبر الـ Mapتحدياختبار
- 02التحقق من المفاتيح والقيمتحدياختبار
- 03خصائص الـ Map: keys و valuesتحدياختبار
- 04إضافة مشروطة: putIfAbsentتحدياختبار
- 05إزالة العناصر من الـ Mapتحدياختبار
- 06الـ Maps المتداخلةتحدياختبار
- 07مراجعة - تحديث المخزونتحدي
مشروع: حاسبة عربة التسوق
مشروع5 درسًا1- 01إعداد المشروعتحدي
- 02إضافة العناصر إلى العربةمشروع
- 03حساب التكلفة الإجماليةمشروع
- 04تطبيق خصممشروع
- 05عرض الإيصال النهائيمشروع
أساسيات معالجة الأخطاء
6 درسًا541- 01ما هي الاستثناءات؟اختبار
- 02كتلة 'try-catch'تحدياختبار
- 03التقاط الاستثناءات باستخدام 'on'تحدياختبار
- 04كتلة 'finally'تحدياختبار
- 05رمي استثناءتحدياختبار
- 06ملخص - القسمة الآمنةتحدي
الدوال المتقدمة
7 درسًا646- 01الدوال المجهولةتحدياختبار
- 02تمرير الدوال كوسطاءتحدياختبار
- 03فهم الـ Closuresتحدياختبار
- 04مقدمة في الاستدعاء الذاتياختبار
- 05دالة الاستدعاء الذاتي: العد التنازليتحدياختبار
- 06دالة الاستدعاء الذاتي: العامليتحدياختبار
- 07مراجعة - معالج القوائمتحدي
مشروع: محلل نصوص بسيط
مشروع7 درسًا18- 01نظرة عامة على المشروع وإعدادهتحدياختبار
- 02عد الأحرفمشروع
- 03تقسيم النص إلى كلماتمشروع
- 04عد الكلماتمشروع
- 05عد الكلمات الفريدةمشروع
- 06عداد تكرار الكلماتمشروع
- 07عرض التحليلمشروع
التعدادات (Enums)
5 درسًا433- 01ما هي الـ Enums؟اختبار
- 02تعريف Enum بسيطتحدياختبار
- 03استخدام الـ Enums في المتغيراتتحدياختبار
- 04الـ Enums في جمل 'switch'تحدياختبار
- 05مراجعة - إشارة المرورتحدي
التحديات النهائية
3 درسًا3- 01تحدي: فرز الدرجاتتحدي
- 02تحدي: عداد حروف العلةتحدي
- 03تحدي: FizzBuzzتحدي
قسم 3
Object Oriented Programming
ابدأ القسمابدأتوسيعطيDiscover how to organize code with classes, objects, and reusable structuresأساسيات الـ OOP
9 درسًا971- 01الملفات الخارجيةتحدياختبار
- 02المكتبات والـ Importsتحدياختبار
- 03مقدمة في الـ OOPتحدياختبار
- 04الـ Classes مقابل الـ Objectsتحدياختبار
- 05الكلمة المفتاحية thisتحدياختبار
- 06الـ Methodsتحدياختبار
- 07متغيرات الـ Instanceتحدياختبار
- 08أساسيات الـ Constructorتحدياختبار
- 09مراجعة - آلة حاسبة بسيطةتحدي
المنشئات في Dart
7 درسًا753- 01المنشئ الافتراضيتحدياختبار
- 02المنشئات المسماةتحدياختبار
- 03قوائم التهيئةتحدياختبار
- 04المنشئات الثابتةتحدياختبار
- 05المنشئات المصنعيةتحدياختبار
- 06المنشئات الموجهةتحدياختبار
- 07ملخص - بناء الأشكالتحدي
خصائص الـ Class
6 درسًا644- 01أعضاء الـ Instance مقابل الـ Staticتحدياختبار
- 02حقول Final و Constتحدياختبار
- 03متغيرات Lateتحدياختبار
- 04الـ Static Methods والحقولتحدياختبار
- 05دوال الـ Getters والـ Settersتحدياختبار
- 06مراجعة - مدير الحساب البنكيتحدي
أمان الـ Null
7 درسًا754- 01مقدمة في أمان الـ Nullتحدياختبار
- 02Nullable مقابل Non-Nullableتحدياختبار
- 03عاملا الـ ? و !تحدياختبار
- 04الكلمة المفتاحية Late وأمان الـ Nullتحدياختبار
- 05العوامل المدركة للـ Nullتحدياختبار
- 06أمان الـ Null في الـ Classesتحدياختبار
- 07مراجعة - نظام ملف تعريف المستخدمتحدي
التغليف (Encapsulation)
6 درسًا641- 01الأعضاء العامة مقابل الخاصةتحدياختبار
- 02اتفاقية البادئة _تحدياختبار
- 03الخصوصية على مستوى المكتبةتحدياختبار
- 04تعمق في Getters و Settersتحدياختبار
- 05إخفاء المعلوماتتحدياختبار
- 06مراجعة - سجلات الطلابتحدي
الوراثة
7 درسًا750- 01أساسيات الوراثةتحدياختبار
- 02الكلمة المفتاحية superتحدياختبار
- 03إعادة تعريف الدوال (Method Overriding)تحدياختبار
- 04الوسم @overrideتحدياختبار
- 05الكلمة المفتاحية final Classتحدياختبار
- 06الدوال البانية والوراثةتحدياختبار
- 07مراجعة - هيكلية الموظفينتحدي
الفئات المجردة والواجهات
7 درسًا753- 01الفئات المجردةتحدياختبار
- 02الدوال المجردةتحدياختبار
- 03الواجهات في Dartتحدياختبار
- 04الواجهات الضمنيةتحدياختبار
- 05التنفيذ مقابل التوسيعتحدياختبار
- 06الواجهات المتعددةتحدياختبار
- 07مراجعة - حاسبة الأشكالتحدي
Mixins
7 درسًا752- 01مقدمة إلى Mixinsتحدياختبار
- 02إنشاء Mixinsتحدياختبار
- 03استخدام Mixins متعددةتحدياختبار
- 04الكلمة المفتاحية on في Mixinsتحدياختبار
- 05Mixin مقابل الوراثة (Inheritance)تحدياختبار
- 06Mixin مقابل الواجهة (Interface)تحدياختبار
- 07مراجعة - نظام الحيوانات (Animal System)تحدي
تعدد الأشكال
6 درسًا643- 01أساسيات تعدد الأشكالتحدياختبار
- 02تعدد الأشكال عبر الـ Interfacesتحدياختبار
- 03التحقق من النوع أثناء التشغيلتحدياختبار
- 04المعاملات is و asتحدياختبار
- 05الكلمة المفتاحية Covariantتحدياختبار
- 06ملخص - معالج الدفعتحدي
المجموعات والأنماط العامة
7 درسًا754- 01نظرة عامة على List و Set و Mapتحدياختبار
- 02المجموعات آمنة النوعتحدياختبار
- 03الفئات العامةتحدياختبار
- 04الدوال العامةتحدياختبار
- 05قيود الأنماط العامةتحدياختبار
- 06Iterable و Iteratorتحدياختبار
- 07ملخص - التخزين العامتحدي
الدوال الخاصة
6 درسًا643- 01إعادة تعريف toString()تحدياختبار
- 02إعادة تعريف hashCode و ==تحدياختبار
- 03واجهة Comparableتحدياختبار
- 04دالة call()تحدياختبار
- 05إعادة تعريف noSuchMethodتحدياختبار
- 06مراجعة - Custom Collectionتحدي
البرمجة الكائنية غير المتزامنة (Async OOP)
6 درسًا645- 01Futures و async/awaitتحدياختبار
- 02أساسيات الـ Streamsتحدياختبار
- 03متحكمات الـ Streamsتحدياختبار
- 04الـ Constructors غير المتزامنةتحدياختبار
- 05العمليات غير المتزامنة في دوال الكلاستحدياختبار
- 06مراجعة - جالب البيانات (Data Fetcher)تحدي
مفاهيم OOP المتقدمة
7 درسًا764- 01التركيب مقابل الوراثة (Composition vs Inheritance)تحدياختبار
- 02دوال التوسعة (Extension Methods)تحدياختبار
- 03الأصناف القابلة للاستدعاء (Callable Classes)تحدياختبار
- 04الأصناف المختومة (Sealed Classes - Dart 3)تحدياختبار
- 05السجلات (Records - Dart 3)تحدياختبار
- 06الأنماط والمطابقة (Patterns & Matching - 3.0)تحدياختبار
- 07التعدادات مع الدوال (Enums with Methods)تحدياختبار
أنماط التصميم - الجزء الأول
5 درسًا543- 01مقدمة في أنماط التصميمتحدياختبار
- 02نمط Singletonتحدياختبار
- 03نمط Factoryتحدياختبار
- 04نمط Observerتحدياختبار
- 05نمط Strategyتحدياختبار
أنماط التصميم - الجزء الثاني
7 درسًا763- 01نمط الأمرتحدياختبار
- 02نمط المحولتحدياختبار
- 03نمط المزينتحدياختبار
- 04نمط طريقة القالبتحدياختبار
- 05نمط الحالةتحدياختبار
- 06نمط التركيبتحدياختبار
- 07نمط المستودعتحدياختبار
مشروع: إدارة المكتبة
مشروع6 درسًا1- 01نظرة عامة على المشروعتحدي
- 02فئات الكتاب والمستخدممشروع
- 03نظام الاستعارةمشروع
- 04خاصية البحثمشروع
- 05واجهة المسؤولمشروع
- 06الاختبار والتكاملمشروع
التحديات النهائية
4 درسًا4- 01منصة التعليم الإلكترونيتحدي
- 02نظام مصرفيتحدي
- 03نظام شخصيات الألعابتحدي
- 04خدمة تأجير المركباتتحدي
لماذا تتعلم Dart مع Coddy
- اكتب وشغّل كود Dart حقيقي داخل متصفحك. لا حاجة لتثبيت Dart SDK ولا لإعداد بيئة Flutter. كل درس يُجمِّع برنامج Dart الخاص بك على الخادم ويعرض لك الناتج فورًا.
- Dart كما يستخدمها مطورو Flutter فعليًا: المتغيرات والأنواع، التحكم في التدفق، الدوال، الأصناف والوراثة، generics، null-safety، futures، async/await، streams. أساسيات Dart التي يحتاجها كل مطور Flutter.
- تلميحات الذكاء الاصطناعي تساعدك على قراءة أخطاء Dart وأخطاء async وإصلاحها دون أن تكشف لك الحل، فتترسخ مفاهيم مثل null-safety وfutures بدلاً من أن تربكك.
- شهادة Dart مجانية عند إكمال الدورة. دليل موثوق لوظائف Flutter وتطوير تطبيقات الموبايل التي تعتمد على Dart كلغة أساسية.
أسئلة شائعة حول تعلّم Dart
فيمَ تُستخدم لغة Dart؟
تُستخدم Dart بشكل أساسي لبناء تطبيقات Flutter — إطار العمل متعدد المنصات من Google لواجهات المستخدم، والذي يستهدف iOS وAndroid والويب وWindows وmacOS وLinux من قاعدة شيفرة واحدة. خارج Flutter، تُستخدم Dart أيضاً لأدوات سطر الأوامر وللشيفرة من جانب الخادم، لكن السبب الأبرز اليوم لتعلّم Dart هو Flutter.
هل تعلّم Dart صعب؟
تُعدّ Dart من أسهل اللغات ذات النظام النوعي الثابت في تعلّمها. الصياغة مألوفة لأي شخص سبق له التعامل مع Java أو JavaScript أو C#، وتتميّز بدعم قوي لـ null-safety يمنع الكثير من الأخطاء الشائعة. معظم المبتدئين يصلون إلى أول برنامج Dart يعمل لديهم خلال الساعة الأولى، ويبدؤون بكتابة الـ classes خلال أسبوع.
هل ينبغي أن أتعلّم Dart قبل Flutter؟
نعم — على الأقل الأساسيات. ستتقدّم في Flutter بسرعة أكبر بكثير حين تصبح صياغة Dart والـ classes وasync/await وnull-safety أمورًا مألوفة لديك. دورة Dart مصمَّمة تحديدًا لتكون مدخلًا إلى Flutter، فتغطّي أجزاء Dart التي تظهر فعلًا في كود Flutter الحقيقي.
كم من الوقت يستغرق تعلّم Dart؟
أساسيات Dart — المتغيرات، التحكم في التدفق، الدوال، والأصناف — تستغرق أسبوعًا إلى أسبوعين من التدرب اليومي. أما إتقان async/await وfutures وnull-safety فيستغرق عادةً أسبوعين إلى أربعة أسابيع إضافية. بعد ذلك يمكنك الانتقال إلى Flutter مع التقاط ميزات Dart المتقدمة كلما احتجت إليها.
هل يمكنني تعلّم Dart عبر الإنترنت مجانًا؟
نعم. دورة Dart التفاعلية مجانية — دروس وتمارين برمجية واختبارات وشهادة. يتم تصريف Dart على الخادم، لذا لست بحاجة إلى تثبيت Dart SDK أو إعداد Flutter محلياً لتبدأ بكتابة كود Dart حقيقي.
هل أحصل على شهادة بعد إنهاء دورة Dart؟
نعم. بإكمالك دورة Dart تحصل على شهادة إتمام مجانية. دليل قابل للتحقق يمكنك إضافته إلى سيرتك الذاتية أو مشاركته على LinkedIn، وهو مفيد بشكل خاص كخطوة نحو تطوير Flutter.