انطلق مؤتمر Flutter Forward في 25 يناير 2023 في مدينة نيروبي بكينيا. أعلنت فيه جوجل الإصدار Flutter 3.7، وعرضت أول نظرة على Dart 3 وخططها لفلاتر على الويب. ستجد هنا أهم ما قيل في المؤتمر، وما الذي حدث لكل إعلان منها بعد ذلك، لتعرف ما يخصك منها وأنت تكتب تطبيقاتك اليوم.
ما هو مؤتمر Flutter Forward 2023؟
Flutter Forward حدث خاص بإطار العمل فلاتر (Flutter Framework) ولغة دارت (Dart)، نظمته جوجل وبُثّ مباشرة للمطورين حول العالم. لم يكن الهدف إطلاق إصدار واحد فقط، فقد عرض الفريق اتجاه فلاتر في السنوات التالية على الهاتف والويب وفي لغة دارت نفسها.
أرقام أعلنها فريق فلاتر في المؤتمر
بدأ الفريق بعرض أرقام توضح حجم انتشار فلاتر حتى بداية 2023:
- أصبح مستودع فلاتر (Repository) على GitHub من أكثر المشاريع التي يساهم فيها المطورون على المنصة.
- تجاوز عدد المطورين الذين استخدموا فلاتر 5 ملايين مطور.
- تجاوز عدد التطبيقات المبنية بفلاتر 700,000 تطبيق.
هذه الأرقام أعلنها الفريق نفسه في المؤتمر. وهي تعني لك شيئًا عمليًا: المجتمع كبير، والحزم (Packages) كثيرة، وستجد إجابة لمعظم المشكلات التي تواجهها.

تحديثات فلاتر للهاتف في الإصدار 3.7
دعم Material 3
وسّع الإصدار 3.7 دعم نظام التصميم Material 3 من جوجل، فحصلت كثير من عناصر الواجهة (Components) على شكل وسلوك جديدين. كان الدعم وقتها اختياريًا، وكان عليك أن تفعّله بنفسك.
محرك الرسم Impeller
عرض الفريق محرك رسم (Rendering Engine) جديدًا اسمه Impeller، جاء ليحل مشكلة التقطيع (Jank) التي كانت تظهر أحيانًا في الحركات (Animations) على iOS مع المحرك القديم Skia. سبب المشكلة أن Skia كان يجهّز جزءًا من أوامر الرسم (Shaders) أثناء تشغيل التطبيق، أما Impeller فيجهّزها مسبقًا.
صدر Impeller في 3.7 كنسخة تجريبية (Preview) على iOS، ليجربه المطورون ويبلّغوا عن الأخطاء (Bugs) قبل أن يصل إلى النسخة المستقرة (Stable).

التحقق من التطبيق قبل رفعه على App Store
أصبح أمر بناء نسخة iOS في منفذ الأوامر (Terminal) يفحص إعدادات التطبيق قبل رفعه على App Store، مثل الأيقونات وبيانات الإصدار، وينبهك إلى ما ينقصك. بهذا تكتشف المشكلات قبل أن ترفض Apple التطبيق.
دعم الأجهزة القابلة للطي (Foldables)
أضاف فلاتر دعمًا أفضل للأجهزة القابلة للطي، مثل سلسلة Galaxy Z Fold. أصبح بإمكانك معرفة مكان الطيّ في الشاشة، ثم ترتيب عناصر الواجهة (Widgets) حوله بدل أن يمرّ في منتصف زر أو صورة.

قصص نجاح: PUBG Mobile وGoogle Classroom
- PUBG Mobile: بنى فريق اللعبة مساحة اجتماعية للاعبين داخلها بفلاتر عن طريق دمجه في التطبيق القائم (Add-to-App). هذا مثال على أنك لست مضطرًا لإعادة كتابة تطبيقك بالكامل حتى تستفيد من فلاتر.
- Google Classroom: نقلت جوجل أجزاء من التطبيق إلى فلاتر، وذكرت أن حجم الكود الذي يكتبه الفريق قلّ بشكل كبير، لأن الكود نفسه أصبح يعمل على أكثر من منصة.
تحديثات لغة دارت: الطريق إلى Dart 3
أعلن الفريق نسخة ألفا (Alpha) من Dart 3، وهي أكبر تغيير في اللغة منذ سنوات. أبرز ما جاء فيها:
السجلات (Records)
كانت الدالة (Function) في دارت ترجع قيمة واحدة فقط، فإذا أردت أن ترجع أكثر من قيمة كنت تنشئ كلاسًا (Class) أو تستخدم قائمة. مع السجلات (Records) يمكنك أن ترجع أكثر من قيمة مباشرة، ثم تفككها في سطر واحد:
(String, int) getUser() {
return ('Sara', 25);
}
void main() {
final (name, age) = getUser();
print('$name is $age years old');
}ويمكنك أيضًا أن تسمّي الحقول لتصبح أوضح:
({double lat, double lng}) getLocation() {
return (lat: 30.04, lng: 31.23);
}
void main() {
final location = getLocation();
print(location.lat);
}
الأمان من القيم الفارغة بنسبة 100% (Sound Null Safety)
أعلن الفريق أن Dart 3 لن تشغّل أي كود لا يدعم الأمان من القيم الفارغة (Null Safety). معنى ذلك أن المحلل (Analyzer) يكتشف أي متغير قد تكون قيمته null أثناء الكتابة، قبل أن يصل الخطأ إلى المستخدم.
تحديثات فلاتر للويب
أعلن الفريق العمل على ترجمة (Compile) كود دارت إلى WebAssembly، وهي صيغة تنفّذها المتصفحات بسرعة قريبة من الكود الأصلي (Native)، فيتحسن أداء تطبيقات فلاتر على الويب. يحتاج هذا متصفحًا يدعم WasmGC، وهي الإضافة التي تتيح للغات مثل دارت إدارة الذاكرة داخل WebAssembly.
وعرض الفريق أيضًا ميزة تضمين تطبيق فلاتر داخل صفحة ويب قائمة (Element Embedding)، والتحكم فيه من كود JavaScript. صار بإمكانك إضافة جزء تفاعلي مبني بفلاتر إلى موقع موجود دون أن تعيد بناء الموقع كله.

ماذا حدث لهذه الإعلانات بعد المؤتمر؟
معظم ما عُرض في المؤتمر بشكل تجريبي أصبح الآن جزءًا أساسيًا من فلاتر ودارت:
| الإعلان في المؤتمر | ما حدث بعده |
|---|---|
| Material 3 اختياري | أصبح التصميم الافتراضي بدءًا من Flutter 3.16 |
| Impeller تجريبي على iOS | أصبح المحرك الافتراضي على iOS في Flutter 3.10، ثم على أندرويد في Flutter 3.27 |
| Records في نسخة ألفا | صدرت رسميًا في Dart 3.0 مع الأنماط (Patterns) والـ switch المطوّر |
| Null Safety بنسبة 100% | أصبحت إلزامية في Dart 3، ولم يعد الكود القديم غير الآمن يعمل |
| الترجمة إلى WebAssembly | أصبحت مستقرة في Flutter 3.22 |
| تضمين فلاتر في صفحات الويب | أصبح ميزة متاحة لتطبيقات الويب، مع دعم لاحق لعرض أكثر من واجهة فلاتر في الصفحة نفسها |
إذا كنت تبدأ تعلم فلاتر اليوم، فستتعامل مع هذه الميزات كأنها الوضع الطبيعي. تعلّم السجلات والأنماط من البداية، ولا تحتاج تفعيل Impeller أو Material 3 بنفسك.
ما هو إطار عمل فلاتر (Flutter Framework)؟
فلاتر إطار عمل مفتوح المصدر من جوجل لبناء التطبيقات بكود واحد يعمل على أكثر من منصة (Cross Platform): أندرويد وiOS والويب وWindows وmacOS وLinux. يُكتب بلغة دارت، ويأتي مع حزمة أدوات تطوير (SDK – Software Development Kit) فيها كل ما تحتاجه للبناء والاختبار والنشر.
أعلنت جوجل عن فلاتر أول مرة عام 2015، وصدرت أول نسخة مستقرة منه (1.0) في ديسمبر 2018. يمكنك البدء من مسار تعلم برمجة تطبيقات الهاتف باستخدام فلاتر من الصفر.
ما هي لغة برمجة Dart؟
دارت لغة برمجة مفتوحة المصدر طورتها جوجل، وتُستخدم في تطبيقات الهاتف وسطح المكتب (Desktop Applications) والويب والخوادم. قواعد كتابتها (Syntax) قريبة من لغة C، لذلك ستجدها مألوفة إن كنت تعرف JavaScript أو Java أو C#.
أهم ما يميز Dart 3:
- السجلات (Records): ترجع الدالة أكثر من قيمة دون أن تنشئ كلاسًا خاصًا.
- الأنماط (Patterns): تفكك البيانات وتفحص شكلها بكود أقصر وأوضح.
- Sound Null Safety: يكتشف المحلل أخطاء القيم الفارغة أثناء الكتابة، لا أثناء التشغيل.
لتبني أساسًا قويًا قبل فلاتر، ابدأ بدورة أساسيات لغة دارت Dart fundamentals.
الخلاصة
كان Flutter Forward 2023 مؤتمرًا يعرض خطط فلاتر للمستقبل أكثر من كونه حدث إطلاق لإصدار واحد. تحققت أغلب إعلاناته: Impeller أصبح المحرك الافتراضي، وDart 3 صدرت بالسجلات والأمان الكامل من القيم الفارغة، وWebAssembly أصبح مستقرًا على الويب. إذا أردت أن تبني تطبيقات حقيقية بهذه الأدوات، فابدأ بدارت ثم انتقل إلى Flutter Fundamentals.
أسئلة شائعة
هل ما زالت إعلانات Flutter Forward 2023 مهمة اليوم؟
نعم، فمعظمها أصبح جزءًا أساسيًا من فلاتر ودارت، مثل Impeller وMaterial 3 والسجلات وSound Null Safety، وستتعامل معها في أي مشروع جديد.
هل أحتاج إلى تفعيل Impeller يدويًا؟
لا، Impeller هو المحرك الافتراضي على iOS، وعلى أجهزة أندرويد الحديثة أيضًا منذ Flutter 3.27، ولا تحتاج أي إعداد إضافي.
متى أستخدم Records ومتى أستخدم Class؟
استخدم Records عندما تريد أن ترجع أو تمرر مجموعة صغيرة من القيم مؤقتًا. أما إذا كانت البيانات تمثل كيانًا له سلوك أو يتكرر استخدامه في أكثر من مكان، فالكلاس أنسب.
هل أتعلم دارت قبل فلاتر؟
نعم، أساسيات دارت مثل المتغيرات والدوال والكلاسات وNull Safety ستجعل تعلم فلاتر أسهل بكثير، وتكفيك فيها أسابيع قليلة من الممارسة المنتظمة.



