دارت (Dart) لغة برمجة مفتوحة المصدر طورتها جوجل. تكتب بها تطبيقات تعمل على Android وiOS والويب وسطح المكتب من كود واحد. وهي اللغة التي يقوم عليها إطار العمل فلاتر (Flutter)، لذلك فهي خطوتك الأولى إذا أردت أن تصبح مطور تطبيقات موبايل بفلاتر.
ستعرف في هذا المقال ما هي دارت، وما الذي يميزها، وما علاقتها بفلاتر، ثم خطة واضحة تبدأ بها تعلمها من الصفر.
ما هي لغة برمجة دارت (Dart)؟
دارت لغة برمجة متعددة الاستخدامات، أعلنت عنها جوجل عام 2011. تستخدمها لبناء تطبيقات سريعة تعمل على أكثر من منصة (Cross-Platform)، مثل الجوال والويب وسطح المكتب، وتستخدمها أيضًا في برامج الخادم (Server) وأدوات سطر الأوامر.
دارت لغة كائنية التوجه (Object-Oriented Programming) تعتمد على الأصناف (Classes)، فكل قيمة فيها كائن (Object)، وهذا يساعدك على كتابة كود منظم. وهي تدير الذاكرة تلقائيًا عن طريق جامع المهملات (Garbage Collector)، فلا تحتاج إلى تحرير الذاكرة يدويًا.
تدعم دارت أيضًا أفكارًا من البرمجة الوظيفية (Functional Programming)، مثل الدوال عالية الرتبة (Higher-Order Functions) والدوال المجهولة (Lambdas) والإغلاقات (Closures). طريقة كتابتها قريبة من لغات عائلة C، فإذا تعلمتها ستجد Java وJavaScript وC# مألوفة لك، والعكس صحيح.

مميزات لغة برمجة دارت Dart
- سهلة البداية (Approachable): طريقة كتابة الكود (Syntax) بسيطة ومتسقة، وتوثيقها الرسمي فيه شروح وأمثلة ومراجع واضحة.
- أمان القيم الفارغة (Null Safety): منذ الإصدار Dart 3 أصبح أمان القيم الفارغة إلزاميًا. المتغير لا يقبل القيمة
nullإلا إذا سمحت بذلك صراحةً، فيكتشف المترجم كثيرًا من الأخطاء قبل تشغيل التطبيق. - إنتاجية عالية (Productive): أثناء التطوير تعمل دارت بأسلوب الترجمة الفورية (Just-In-Time – JIT)، وهذا ما يتيح ميزة إعادة التحميل السريع (Hot Reload) في فلاتر، فترى أثر تعديلك خلال لحظات دون إعادة تشغيل التطبيق.
- سريعة في الإنتاج (Fast): عند النشر يُترجم الكود مسبقًا (Ahead-Of-Time – AOT) إلى كود الآلة (Machine Code)، فيبدأ التطبيق بسرعة ويعمل بأداء جيد.
- قابلة للنقل (Portable): الكود نفسه يعمل على Android وiOS وWindows وmacOS وLinux، ويُترجم للويب إلى JavaScript أو إلى WebAssembly.
- ميزات حديثة: أضاف Dart 3 السجلات (Records) والأنماط (Patterns) والأصناف المغلقة (Sealed Classes)، فصار الكود أقصر وأوضح.
- مدعومة من جوجل: لغة مفتوحة المصدر تطورها جوجل باستمرار، ولها مستودع حزم كبير هو pub.dev.
مثال سريع على كود Dart
هذا مثال صغير يوضح المتغيرات، وأمان القيم الفارغة، والقوائم، والسجلات. يمكنك نسخه وتشغيله مباشرة في DartPad:
(String, int) getUser() => ('Sara', 24);
void main() {
final languages = ['Dart', 'Python', 'JavaScript'];
String? nickname; // nullable: may hold null
final (name, age) = getUser(); // record destructuring
print('Hello, $name ($age)');
print('Nickname: ${nickname ?? 'none'}');
for (final lang in languages) {
print(lang.toUpperCase());
}
}لاحظ علامة ? بعد String: هي التي تسمح للمتغير بأن يكون فارغًا. والعامل ?? يعطي قيمة بديلة عندما تكون القيمة فارغة.
ما الفرق بين Dart وFlutter؟
دارت لغة برمجة، أما فلاتر فهو إطار عمل ومجموعة أدوات لواجهات المستخدم (UI Toolkit) مكتوب بدارت. تكتب بفلاتر الشاشات والأزرار والحركات، لكن كل منطق التطبيق، من حسابات وتعامل مع البيانات واتصال بالإنترنت، تكتبه بدارت.
تخيل أن تطبيقك سيارة: دارت هي المحرك، وفلاتر هو الهيكل وعجلة القيادة. لن تتحرك السيارة دون محرك، ولهذا تتعلم دارت أولًا ثم تنتقل إلى فلاتر.

استخدامات لغة دارت
| المجال | كيف تستخدم دارت فيه |
|---|---|
| تطبيقات الموبايل | مع فلاتر لبناء تطبيقات Android وiOS من كود واحد، وهو الاستخدام الأشهر. |
| الويب | تطبيقات فلاتر للويب، أو ترجمة الكود إلى JavaScript أو WebAssembly. |
| سطح المكتب | تطبيقات لأنظمة Windows وmacOS وLinux بفلاتر. |
| الخادم والأدوات | واجهات برمجية (APIs) خفيفة وأدوات سطر أوامر تُترجم إلى ملف تنفيذي واحد. |

الطلب على مطوري فلاتر (Flutter Developers)
أصبح فلاتر من أكثر أطر العمل استخدامًا لبناء تطبيقات الموبايل متعددة المنصات، وتعتمد عليه شركات معروفة في تطبيقات مثل Google Pay وتطبيق My BMW وeBay Motors. السبب عملي: فريق واحد يبني التطبيق لعدة منصات، فيقل الوقت والتكلفة.
الوظائف المرتبطة بدارت كلها تقريبًا وظائف فلاتر، مثل: مطور تطبيقات موبايل بفلاتر، ومطور واجهات متعددة المنصات، والعمل الحر (Freelancing) في بناء تطبيقات للشركات الصغيرة. ما يرفع فرصتك ليس معرفة اللغة وحدها، بل امتلاك تطبيقات حقيقية منشورة أو موجودة في معرض أعمالك (Portfolio).
من أين تبدأ تعلم لغة Dart؟
هذه خطة عملية مرتبة. مع ممارسة منتظمة لعدة ساعات أسبوعيًا، يحتاج أغلب المبتدئين إلى بضعة أسابيع لإتقان الأساسيات قبل الانتقال إلى فلاتر.
1. جرّب اللغة في المتصفح
ابدأ بموقع DartPad، فهو يشغّل كود دارت في المتصفح دون أي تثبيت. وارجع إلى الموقع الرسمي للغة عند الحاجة للتوثيق.
2. جهّز بيئة العمل
ثبّت Dart SDK (أو Flutter SDK الذي يتضمنه)، ومحرر VS Code مع إضافة Dart، أو Android Studio. ثم أنشئ أول مشروع بالأمر dart create my_app وشغّله بالأمر dart run.
3. أتقن الأساسيات
المتغيرات وأنواع البيانات، وأمان القيم الفارغة، والشروط والحلقات (Control Flow)، والمجموعات (Collections) مثل List وMap وSet، ثم الدوال (Functions). تغطي دورة أساسيات لغة دارت هذه المواضيع بالعربية خطوة بخطوة، مع أدوات مثل DartPad وDart DevTools.
4. تعلّم البرمجة الكائنية
الأصناف والكائنات، والتغليف (Encapsulation)، والـ Getters والـ Setters، والمُنشئات المسماة (Named Constructors)، والوراثة (Inheritance)، وتعدد الأشكال (Polymorphism). فلاتر قائم بالكامل على هذه المفاهيم، وتشرحها دورة Dart Deep Dive - OOP مع مشروع تطبيقي.
5. افهم البرمجة غير المتزامنة
تعلّم Future وasync وawait وStream، فأي تطبيق يجلب بيانات من الإنترنت يحتاجها.
6. انتقل إلى فلاتر وابنِ مشاريع
بعد الأساسيات ابدأ بفلاتر مباشرة، وابنِ تطبيقات صغيرة ثم أكبر. إذا أردت طريقًا منظمًا من الصفر حتى بناء تطبيقات كاملة، فراجع مسار تعلم برمجة تطبيقات الهاتف باستخدام فلاتر.
7. استخدم أدوات المساعدة البرمجية بذكاء
أدوات الإكمال التلقائي والمساعدات البرمجية في المحرر مفيدة لشرح رسالة خطأ أو اقتراح طريقة أخرى للحل. لكن اكتب الحل بنفسك أولًا ثم قارنه، وإلا ستنسخ كودًا لا تفهمه.

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



