ما المقصود بـ 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.

كيف تدعم AWS خدمة Flutter؟

يساعدك Flutter في إنشاء أجزاء التطبيق التي يراها المستخدمون. لكن تطوير التطبيق يتطلب العديد من الميزات التي لا يراها المستخدمون، مثل المصادقة وتخزين الملفات والتحليلات. وهنا يأتي دور AWS Amplify وAmplify Flutter.

AWS Amplify عبارة عن منصة مخصصة لإنشاء تطبيقات أجهزة محمولة وتطبيقات ويب آمنة وقابلة للتوسعة. مع دعم iOS وAndroid والويب وReact Native وFlutter، تتيح لك AWS Amplify إنشاء تطبيقات مدعومة من AWS بسرعة وسهولة.

Amplify Flutter عبارة عن مجموعة من الأدوات والمكتبات التي تتيح لك توفير الخلفيات لتطبيقات Flutter وإنشائها ونشرها. ويمكنك استخدام Amplify Flutter لتوصيل تطبيقات Flutter بـ AWS وتلبية احتياجات الخلفيات الشائعة.

استخدام Amplify Flutter لتكون حل الخلفية

تتيح لك Amplify Flutter العمل مع AWS لإضافة ميزات خلفية شائعة إلى تطبيق Flutter:

  • التحليلات. تتيح لك Amplify Flutter جمع بيانات تتبع مستخدمي Amazon Pinpoint. يمكنك تسجيل الأحداث وتخصيص المقاييس والسمات بسهولة وفق احتياجاتك.
  • واجهات برمجة التطبيقات (API) تتسم Amplify Flutter بإمكانيات واجهة برمجة تطبيقات قوية. تساعدك GraphQL API في استرجاع البيانات الموجودة في الخلفية، وتدعمها AWS AppSync. واجهات REST API والمعالجات تستخدم Amazon API Gateway وAWS Lambda لمساعدتك في تقديم طلبات للخلفية.
  • المصادقة تتيح لك Amplify Flutter مصادقة المستخدمين وتنفيذ نماذج تسجيل الاشتراك وتسجيل الدخول بالإضافة إلى المصادقة متعددة العوامل من (MFA). وفي الخلفية، تقدم التفويض اللازم لفئات Amplify الأخرى. وتدعم Amplify Flutter تجمع مستخدمي Cognito ومجمع الهويات من بداية استخدامها.
  • مخزن البيانات. تتيح لك Amplify Flutter استخدام البيانات الموزّعة والمشتركة بدون كتابة تعليمات برمجية إضافية لسيناريوهات في حالة الاتصال بالإنترنت وعدم الاتصال بالإنترنت. وهذا ما يجعل التعامل مع البيانات الموزّعة عبر المستخدمين بمثل سهولة التعامل مع البيانات المحلية فقط. تُصدِر Amplify DataStore البيانات تلقائيًا، وتستخدم خدمة AppSync لاكتشاف التعارضات وحلها في السحابة.
  • التخزين. تتيح لك Amplify Flutter تحميل الكائنات الموجودة في المخزن وتنزيلها وحذفها. تأتي خدمة Amplify Flutter مزودة بنظام دعم خدمة التخزين البسيطة في Amazon (Amazon S3) المضمن.

تعرّف على المزيد بشأن Amplify Flutter.

الخطوات التالية في Flutter مع AWS

التحقق من الموارد الإضافية المتعلقة بالمنتج
تعرّف على المزيد حول أدوات المطورين 
سجّل الاشتراك للحصول على حساب مجاني

تمتع بالوصول الفوري إلى طبقة AWS المجانية. 

التسجيل 
بدء البناء في وحدة التحكم

ابدأ في البناء باستخدام AWS في وحدة إدارة تحكم AWS.

تسجيل الدخول