ما المقصود بـ Flutter؟
Flutter عبارة عن إطار عمل مفتوح المصدر تطوّره Google وتدعمه. يستخدم مطورو الواجهة الأمامية والمطورون الشاملون Flutter لإنشاء واجهة مستخدم (UI) للتطبيق تعمل على منصات متعددة بتعليمة برمجية أساسية واحدة.
عند إطلاق Flutter في عام 2018، كان يدعم بشكل أساسي تطوير تطبيقات الهاتف الجوال. يدعم Flutter الآن تطوير التطبيقات على ستة أنظمة أساسية: iOS، وAndroid، والويب، وWindows، وMacOS، وLinux.
كيف يساعد Flutter في تطوير التطبيقات؟
يبسط Flutter عملية إنشاء واجهات مستخدم متسقة وجذابة لأحد التطبيقات في المنصات الست التي يدعمها.
نظرًا إلى أن Flutter عبارة عن إطار عمل تطوير في مختلف المنصات، فسنقارنه أولاً بالتطوير الأصلي. بعدها، يمكننا تسليط الضوء على الميزات الفريدة لـ Flutter.
تطوير التطبيق الأصلي مقارنةً بتطوير التطبيقات في مختلف المنصات
يُطلق على ترميز تطبيق منصة معينة، مثل iOS، تطوير التطبيق المحلي. على عكسه، يعمل تطوير التطبيقات متعدد المنصات على إنشاء تطبيق لمنصات متعددة بقاعدة ترميز واحدة.
تطوير التطبيقات الأصلية
نظرًا إلى أن المطورين يكتبون رموز منصة معينة في تطوير التطبيقات الأصلية، فإنهم يتمتعون بوصول كامل إلى وظائف الجهاز الأصلية. وهذا ينتج عنه عمومًا أداء وسرعة أعلى مقارنةً بتطوير التطبيقات في مختلف المنصات.
من ناحية أخرى، إذا كنت ترغب في تشغيل تطبيق على عدة منصات، فإن تطوير التطبيق الأصلي يتطلب رموزًا أكثر ومطورين أكثر. بالإضافة إلى هذه النفقات، قد يجعل تطوير التطبيقات المحلية من الصعب إطلاقها على منصات مختلفة في الوقت نفسه ذات تجربة مستخدم متسقة. وهنا تظهر أهمية أطر عمل تطوير التطبيقات في مختلف المنصات، مثل Flutter.
تطوير التطبيقات في مختلف المنصات
يتيح تطوير التطبيقات في مختلف المنصات للمطورين استخدام لغة برمجة واحدة وقاعدة ترميز واحدة لإنشاء تطبيق لمنصات متعددة. إذا كنت بصدد إصدار تطبيق متعدد المنصات، فإن تطوير التطبيقات متعددة المنصات أقل تكلفة ويستغرق وقتًا أطول من تطوير التطبيقات الأصلية.
تتيح هذه العملية كذلك للمطورين إنشاء تجربة أكثر اتساقًا للمستخدمين في مختلف المنصات.
يمكن أن يكون لهذا النهج عيوب مقارنةً بتطوير التطبيق الأصلي، بما في ذلك الوصول المحدود إلى وظائف الجهاز الأصلية. ولكن Flutter تتضمن ميزات تجعل عملية تطوير التطبيقات متعددة الأنظمة الأساسية أكثر سلاسة وأفضل أداءً.
مزايا Flutter
فيما يلي بعض الطرق التي يتفرد Flutter بها عن غيره باعتباره إطار عمل لتطوير التطبيقات متعددة الأنظمة الأساسية:
أداء تطبيقات قريب من الأصلي. يستخدم Flutter لغة البرمجة Dart، وينفذ التحويل البرمجي إلى تعليمة برمجية للآلة. تفهم الأجهزة المضيفة هذه التعليمة البرمجية، ما يضمن أداءً سريعًا وفعالاً.
عرض سريع ومتسق وقابل للتخصيص. بدلاً من الاعتماد على أدوات العرض الخاصة بأنظمة أساسية محددة، يستخدم Flutter مكتبة الجرافيك Skia المفتوحة المصدر من Google لعرض واجهة المستخدم. وهذا يمنح المستخدمين مرئيات متسقة بغض النظر عن المنصة التي يستخدمونها للوصول إلى تطبيق.
أدوات ملائمة للمطورين. وضعت Google سهولة الاستخدام في اعتبارها عند إنشاء Flutter. ومن خلال أدوات مثل "Hot Relaod" (إعادة التحميل السريع)، بإمكان المطورين معاينة المظهر الذي ستبدو عليه تغييرات التعليمة البرمجية بدون فقدان الحالة. وتسهّل أدوات أخرى، مثل Widget Inspector (فاحص الأدوات)، العرض المرئي للمشكلات المتعلقة بتخطيطات واجهة المستخدم وحلها.
ما لغة البرمجة التي يستخدمها Flutter؟
يستخدم Flutter لغة البرمجة مفتوحة المصدر Dart التي طورتها Google كذلك. جرى تحسين Dart لبناء واجهات المستخدم، وتُستخدم العديد من نقاط قوة Dart في Flutter.
على سبيل المثال، إحدى ميزات Dart المستخدمة في Flutter هي أمان القيم الفارغة. تٌسهِّل ميزة أمان القيم الفارغة في Dart اكتشاف الأخطاء الشائعة التي تسمى الأخطاء الصفرية. تقلل هذه الميزة الوقت الذي يقضيه المطورون في صيانة التعليمات البرمجية وتمنحهم وقتًا أكثر للتركيز على إنشاء التطبيقات.
ما عناصر واجهة المستخدم في Flutter؟
في Flutter، يبني المطورون مخططات واجهة المستخدم باستخدام عناصر واجهة المستخدم. هذا يعني أن كل العناصر التي يراها المستخدم على الشاشة، بداية من النوافذ واللوحات إلى الأزرار والنصوص، مُصممة من عناصر واجهة مستخدم.
عناصر واجهة مستخدم Flutter مُصممة بحيث يستطيع المطورون تخصيصها بسهولة. يحقق Flutter هذا من خلال نهج التركيب. وهذا يعني أن معظم عناصر واجهة المستخدم تتكون من عناصر واجهة مستخدم أصغر حجمًا، وأن عناصر واجهة المستخدم الأساسية لها أغراض محددة. وهذا يتيح للمطورين دمج عناصر واجهة المستخدم أو تحريرها لإنشاء عناصر واجهة مستخدم جديدة.
يعرض Flutter عناصر واجهة المستخدم باستخدام محرك رسومات خاص به بدلاً من الاعتماد على عناصر واجهة المستخدم المضمنة في المنصة. بهذه الطريقة، سيرى المستخدمون شكلاً ونمطًا مشابهًا في تطبيق Flutter في المنصات المختلفة. يوفر هذا النهج كذلك المرونة للمطورين، لأن بعض عناصر واجهة مستخدم Flutter يمكنها تنفيذ وظائف لا تستطيع عناصر واجهة المستخدم الخاصة بالمنصة تنفيذها.
ويُسهِّل Flutter استخدام عناصر واجهة المستخدم التي طورها المجتمع. تدعم هيكلة Flutter وجود مكتبات عناصر واجهة مستخدم متعددة، وتشجع المجتمع على إنشاء مكتبات جديدة والمحافظة عليها.
أنواع عناصر واجهة مستخدم Flutter
يأتي Flutter مع كتالوج عناصر واجهة مستخدم شامل من وقت تنزيله. ويحتوي الكتالوج على 14 فئة تشمل التصميم، وCupertino (عناصر واجهة مستخدم على نمط iOS)، ومكونات المواد (عناصر واجهة مستخدم تتبع إرشادات تصميم المواد من Google).
يأتي Flutter كذلك مع مخططات وألوان خلفية مضمنة، ما يساعد المطورين في البناء فورًا.
ما آلية دعم Flutter؟
Flutter مدعومة من Google ومجتمع نشط مفتوح المصدر على Reddit وDiscord وSlack وStack Overflow وGitter. تُحدَّث Google باستمرار Flutter منذ إصدارها في عام 2018، بما في ذلك تحديث Flutter 3 في عام 2022 الذي قدم دعمًا ممتدًا ومستقرًا لنظامي التشغيل macOS وLinux.
لتسهيل تعلُّم Flutter، كتبت Google وثائق مفصلة، وأعدت برامج تعليمية مكثفة على موقع Flutter. وتستضيف Google أيضًا أحداثًا عالمية، وتروِّج لمشاريع مجتمعية، وترعى مسابقات Developer Challenge بهدف التفاعل مع مستخدمي Flutter. يمكنك العثور على الأحداث الجديدة على موقع Flutter.
أنشأ مجتمع Flutter الآلاف من الحزم الخارجية والأدوات الممتازة التي تسهل تجربة المطور. تتوفر هذه المكتبات على pub.dev.