عالم التكنولوجيا يتطور بسرعة متزايدة مع ظهور التقنيات التكنولوجية الجديدة المستمرة بالصعود و الهبوط , إذا كنت من الأشخاص المهتمين بتطوير تطبيقات الهاتف المحمول ( الموبايل ) , ربما قد صادفك السماع عن تقنية Flutter . ما هي Flutter ؟ ,وكيف يمكن للشركات استخدامها في المشاريع المتعلقة بتطوير الهاتف المحمول ؟ اقرأ هذا المقال لمعرفة المزيد …
ما هو Flutter :
Flutter هي (SDK (software development kit , يمكن استخدامها لبناء تطبيقات Android و iOS بمظهرها الاصلي و بنفس الكود الاساسي , وُجد Flutter منذ عام 2015 عندما قدمته Google وبقي في الوضع التجريبي الى حين إطلاقه بشكل رسمي في ديسمبر من عام 2018 , ومنذ ذلك الحين , اصبحت الضجة حول هذه التقنية تزداد و بقوة .
Flutter هي الان من افضل 11 من المستودعات البرمجية اعتماداً على تقييم النجوم من GitHub . لقد رأينا بالفعل الالاف من تطبيقات Flutter التي يتم نشرها في متاجر التطبيقات , أحد أبرز الأمثلة على ذلك هو تطبيق Xianyu الذي أنشأه فريق Alibaba , والذي يتم استخدامه من قبل أكثر من 50 مليون شخص .
كيف يعمل Flutter ؟
الفكرة الأساسية خلف Flutter هو استخدام ما يسمى ب widgets وهي مكونات و وحدات بناء لاستخدامها في بناء التطبيق, حيث يستطيع المطورون بناء واجهة مستخدم كاملة (UI) عبر دمج مجموعة من widgets المختلفة معا. تحتوي مكتبة Flutter على مجموعة كبيرة من widgets مثل: قائمة أو زر ، وعناصر تجميلية مثل: لون أو خط ، وتنسيق مثل: padding وغيرهم الكثير.
من اهم ميزات Flutter أنه لا يقوم باستخدام OEM widgets أي المكونات الأصلية من نظامي Android و iOS و لكن يقوم بتزويد المطور بمكتبة كبيرة جدا من widgets خاصة ب Flutter التي تبدو مثل widgets الأصلية التي يتم استخدامها في Android و iOS ويستطيع المطور صناعة widgets الخاصة به وذلك لأن Flutter يقوم بعرض كل pixel على الشاشة وبالتالي يعطي للمطور مجالاً أكبر لتحديد شكل التطبيق .
يقوم Flutter باستخدام لغة تسمى Dart ويتم ترجمة الكود البرمجي في وقت التطوير الى native code,وبالتالي يعمل على نظامي Android و ios بدون الحاجة الى استخدام جسر إضافي للتعامل مع النظام وهذا ما يكسب Flutter سرعة أكبر من نظائره اللواتي تحتاج الى جسر للتواصل مع النظام مما يزيد وقت التشغيل ويبطئ تنفيذ بعض الأوامر . في الوقت الحالي، Flutter هو الmobile SDK الوحيد الذي يوفر وسيلة عرض تفاعلية دون الحاجة لجسر JavaScript ولهذا أصبح مطورو تطبيقات الجوال يميلون لتجربة Flutter في تطبيقاتهم.
فيما يلي بعض الفوائد الإضافية التي قدمها Flutter لتطوير برامج الهاتف المحمول :
ميزة إضافية: لغة البرمجة Dart
أحد أهم ميزات Flutter هو استخدامه للغة البرمجة Dart.كأي نظام آخر يستخدم العرض التفاعلي، يقوم Flutter بتحديث شجرة العرض لكل إطار جديد. لتحقيق ذلك، يتم إنشاء العديد من ال objects التي قد لا تعيش لأكثر من إطار واحد، ولذلك تستخدم Dart ما يسمى بـ generational garbage collection الذي يقوم بالتخلص من العناصر التي لا حاجة لها والذي أثبت فعاليته لهذا النوع من الأنظمة بسرعته الفائقة والتي لا تسبب اي memory locks .
بالإضافة الى ذلك، تملك Flutter مترجم بتقنية “tree shaking” والذي يشمل الكود الذي تحتاجه فقط. حتى لو كنت تحتاج widget واحد او اثنين فقط، يمكنك استخدام مكتبة widgets بحرية. وأخيرا، يحتوي Dart على مستودع من حزم البرامج لتوسيع إمكانيات التطبيقات. على سبيل المثال، لمساعدة المطورين على بناء تطبيقات بدون خوادم(Serverless Applications) يقدم Dart بعض الحزم التي تساعد على الوصول الى Firebase. هناك أيضا حزمة تسمح بالوصول الى Redux Data Store أو تسهل الوصول إلى خدمات التي تحتاجها من الجهاز الكاميرا والسماعات و خدمات تحديد الموقع .
لماذا استخدم Flutter ؟
- توفير الوقت و المال
Flutter هو منصة أو أداة تطوير تعمل على أكثر من نظام، ما يعني أن مطوري البرمجيات بإمكانهم استخدام نفس القاعدة البرمجية لبناء تطبيقات على نظامي iOS و Android او حتى على الإنترنت . ويعتبر هذا الشكل من التطوير موفرا للمال والوقت بدلا من تطوير كل تطبيق على حدة من فرق مختصة والتنسيق فيما بينها لضمان جودة المنتج على جميع المنصات .
- الأداء الممتاز
Flutter يقدم أداءً مميزاً لسببين، الأول: يستخدم لغة البرمجة "Dart" ، و التي يتم تحويلها الى كود اصلي. ثانياً: Flutter يحتوي على Widgets خاصة به، لذلك لا داعي للوصول إلى (OEM Widgets) ولكن تقوم باستخدام العناصر الجاهزة في Flutter . هذه الخصائص في تطبيقات Flutter تضمن لنا تطبيق سريع التشغيل و مشاكل أقل في الأداء .
- تطوير سريع وإعادة تحميل سريعة
Flutter يحظى بإعجاب كبير من مطوري تطبيقات الهواتف الذكية بسبب خاصية سرعة إعادة التحميل(Hot Reload)، مما يتيح لك مشاهدة التغييرات التي تقوم بها على الكود بشكل مباشر. حيث يتم اظهار التعديلات في أقل من ثانية، بالتالي لن يضطر المطور اعادة تشغيل البرنامج حتى يتسنى له رؤية التعديلات. مما يسهل عملية بناء واجهة المستخدم وإضافة ميزات جديدة، أو حتى إصلاح بعض المشاكل. في حال واجه التطبيق بعض المشاكل عادة ما يكون من الممكن إصلاحها ثم العودة لاستخدام التطبيق وكأنها لم تكن. و حتى لو اضطررت لإعادة تحميل التطبيق كن متأكدا أن ذلك لن يستغرق الكثير من الوقت مما يسرع عملية تطوير التطبيقات.
- مفتوحة المصدر
إن Flutter تعتبر مفتوحة المصدر مما يعني أن أي مطور يستطيع رؤية الشيفرة المصدرية الخاصة بها والمشاركة في تطويرها وتعتبر Flutter من التقنيات المحاطة بمجتمع فعال من المطورين الذين يمتلكون القدرة على الدعم المستمر و المساهمة في التوثيق الشامل للأدوات وتطوير مصادر مفيدة . كما ويمكن استعمال Dart و Flutter مجانا
- التوافق
ومن المميزات الأخرى لـ Flutter أنه يأتي مع عناصر واجهة المستخدم الخاصة به والتي تؤدي إلى مشاكل توافق أقل. حيث يرى المطورون مشاكل أقل في إصدارات أنظمة التشغيل المختلفة ويمكنهم قضاء وقت أقل في اختبار التطبيق على إصدارات أنظمة التشغيل القديمة. كما يمكنك أن تثق بأن تطبيقك سيعمل على إصدارات نظم التشغيل المستقبلية. و نظراً لأن Google مستخدم داخلي ضخم لـ Flutter، فإن فريق فلاتر محفز بشدة للحفاظ على مجموعات الأدوات الذكية الخاصة به محدّثة وقريبة من عناصر واجهة المستخدم الخاصة بالمنصة قدر الإمكان.
بالإضافة إلى ذلك، يمكن تخصيص عناصر واجهة المستخدم ويمكن تحديثها من قبل أي شخص. يمكن حتى لتطبيقك استخدام عناصر واجهة المستخدم الجديدة في إصدارات نظم التشغيل الأقدم!
مصادر للبداية في تعلم Flutter
بماذا تبدأ أولاً لتعلم Flutter ؟
Flutter سريعة وسهلة ، إذا كنت على دراية بلغة جافا أو اي لغة كائنية التوجه (OOP) ، فأنت على استعداد للبدء ولكن يجب أن يكون لديك المعرفة الأساسية بلغة Dart.
هنا بعض مقاطع الفيديو التي قد تساعدك :
- مقدمة حول لغة Dart للمبتدئين :
- الأساسيات المتعلقة بلغة Dart:
- دورة كاملة لتعلم لغة Dart للمبتدئين :
- مقدمة عن عمل آلية widgets :
- ماهي Stateful and Stateless Widget :
بعض المصادر الأخرى للتعلم :
لماذا تستخدم Flutter لغة Dart ؟
تعرف معنا على أسباب استخدام Flutter لغة Dart