مقدمة :
تميزت الألفية الثالثة بالحاجة الملحة لبرمجة وتطوير التطبيقات الخاصة بالأجهزة الذكية والتي أصبحت ضرورة من ضروريات الحياة اليومية، ولا شك أن جميع الشركات اليوم ترغب بإنشاء تطبيق لها وتقوم بنشره على جميع هواتف العملاء، لأنك عندما تنظر إلى الأرباح التي تأتي للشركات من التطبيقات الخاصة بها لن تفاجئ من تكلفة إنشاء التطبيق والمبالغ التي تخصصها الشركات لمبرمج التطبيقات الخاصة بها، وأكبر مثال على ذلك تطبيق الواتس أب الذي قامت شركة فيس بوك بشرائه بملايين الدولارات مع أنه برنامج بسيط جداً، ومن هنا قامت شركة جوجل بتطوير إطار العمل Flutter الذي يمكنك من بناء واجهات المستخدم لتطبيقات نظام الأندرويد ونظام IOS ونظام الويندوز وتطبيقات الويب .
لذلك سنتحدث في هذا المقال عن كل ما تريد معرفته عن برمجة التطبيقات بواسطة إطار العمل Flutter وكذلك مميزات هذا الإطار ومقارنته مع التطبيقات الأخرى فلننطلق معاً.
جدول المحتويات:
-
ما هو فلاتر Flutter؟
-
لماذا لغة دارت Dart؟
-
الجمع بين تجربة المستخدم وتجربة المطور.
-
مميزات برنامج فلاتر Flutter.
-
Flutter ضد بقية المنافسين في السوق؟
ما هو فلاتر Flutter؟
هو SDK (مجموعة من أدوات تطوير البرمجيات التي تسمح بإنشاء برمجيات تطبيقية لحزمة برامج معينة) قامت شركة جوجل بإطلاقه في مطلع عام 2017 لبرمجة تطبيقات الهواتف الذكية العاملة بنظام الاندرويد وال IOS، يوفر إطار عمل شامل بلغة Dart مخصص لرسم الواجهات بجودة عالية وتطبيقات أصلية بأداء ممتاز وفي نفس الوقت يعطي للمطور الأدوات التي تجعله يبني تطبيقات كاملة في أقل وقت، وقد حقق نجاحاً كبيراً جداً وقامت العديد من الشركات العالمية بالاعتماد عليه في برمجة وتطوير تطبيقاتها مثل برنامج Google AdWords الشهير، وشركة BMW للسيارات، وكذلك متجر Alibaba ومتجر eBay وغيرهم الكثير والكثير .
لماذا لغة دارت Dart؟
دارت هي لغة برمجة كائنية التوجه ظهرت في سنة 2011 وتم برمجتها من قبل شركة جوجل كمحاولة لم تكن ناجحة لاستبدال لغة JavaScript ومع ذلك فهي توفر الخصائص المناسبة التي يحتاجها Flutter لكي ينمو بشكل صحيح حيث تتمتع لغة dart بمايلي:
لغة برمجة غرضية التوجه وتنفذ كل مفاهيم البرمجة الكائنية منها تعدد الوراثة تحت اسم mixins.
يتحكم فريق Flutter بشكل كامل في لغة Dart فمثلاً تم جعل كلمة new "التي سيتعرف عليها مبرمج Java و #C " كلمة اختيارية فقط لكي يتم تحسين طريقة كتابة الواجهات.
أثناء البرمجة تستخدم لغة Dart مترجم (JIT : Just in time) والتي بفضلها ظهرت خاصية Hot Reload، وهي أنه عند تغير الكود يتم إرسال فقط البايتات التي تم تغييرها بالتالي حصل التغير في برنامجك في أقل من ثانية ويبقى محافظاً على حالته .
أثناء نشر التطبيق تستخدم دارت مترجم AOT : Ahead of time والذي ينتج لنا تطبيق اصلي وبالتالي اداء رائع .
يمكن ترجمة لغة Dart إلى JavaScript محسنة الأداء وهذا ما يجعل عمل تطبيقات ويب بواسطة Flutter أمراً ممكناً.
لغة Dart تم صنعها لكي تكون سهلة لمبرمج JavaScript ومبرمجي Java و# C أيضاً
الجمع بين تجربة المستخدم وتجربة المطور؟
تجربة المطور:
- أهم ما يميز تطبيقات الهواتف الذكية أنها عبارة عن واجهة تعبر عن المصمم أو الشركة، لذلك التصميم يجب أن يكون عصري وجميل وتحصل على هذه التصاميم المميزة مع Flutter لأن لديك حرية رسم بكسل على الشاشة.
- Flutter هو عبارة عن إطار عمل ولست ملزماً بأداة معينة فهو متاح لكل من أندرويد ستوديو+ intellij idea + VS Code.
- مناسب جداً للأشخاص الذين لديهم خلفية في الويب بسبب ميزة Hot Reload والتي تجعل من دورة حياة تطوير التطبيق سريعة جدا، لأنك إذا قمت بتغيير ما على الكود لن تنتظره وقتاً طويلاً لكي ترى النتيجة.
- التثبيت سهل جداً لأن Flutter عبارة عن حزمة مضافة على ال GitHub، وبالتالي التحميل والتحديث والانتقال بين الفروع يكون عبر أوامر الـ git فقط.
تجربة المستخدم:
- يحصل المستخدم على تطبيق بواجهة جميلة جداً لها نفس الشكل والتجربة على كلا النظامين.
- التطبيق الناتج يكون أصلي لذلك سيحصل المستخدم على أداء عالي أثناء الاستخدام.
مميزات Flutter:
يوجد عدد كبير من المميزات الأساسية التي تجعلك إطار العمل Flutter دوناً عن باقي برامج برمجة التطبيقات ولنستعرض معاً أهم هذه الميزات:
- هو عبارة عن برنامج مفتوح المصدر تستطيع التعديل عليه كما تشاء، مدعوم من شركة جوجل التي توفر لك دائمًا تحديثات فورية له تساعد على جعله أكثر ملائمة للمستخدم وأكثر تأقلم مع الحاضر وبالتأكيد أكثر سهولة في التعامل والاستخدام كما أن شركة جوجل توفر لك مجتمع تستطيع فيه عرض المشاكل التي تواجهك وستجد عدد كبير من الأشخاص يقدموا لك المساعدة وهذا غير متوافر في أغلب لغات البرمجة الأخرى مثل لغة جافا.
- يمكنك بواسطة إطار العمل Flutter برمجة تطبيق يعمل على نظام التشغيل Android وعلى نظام التشغيل IOS على عكس باقي البرامج الأخرى التي تخصص البرمجة لتعمل على نظام التشغيل Android أو على نظام التشغيل IOS فقط ولكن لا تدعم الاثنين معًا، لذلك هذا يوفر عليك وقت كبير لتعلم البرمجة بشكل شامل.
- بسبب اعتماد إطار العمل Flutter على لغة البرمجة Dart حصل على ميزة التحميل السريع خصوصاً عند التعديل على التطبيق، حيث تقوم برفع الملفات التي تم التعديل عليها فقط وليس التطبيق بالكامل مرة أخرى.
- يتيح لك البرنامج تحكم كامل بجميع العناصر الداخلية في التطبيق والتحكم يكون بحرية كاملة، كما أن الأداء الخاص بالتطبيق يكون مستقر جداً وقوي.
- يعتمد البرنامج في تصميم الواجهات على Material design والتي توفر لك تحكم سلس جداً لجميع عناصر واجهة المستخدم، ويحل مشكلة التوافق مع جميع أنواع الهواتف وأحجام الشاشة بشكل سلس دون أن يسبب لك مشاكل في الواجهة أو في الأيقونات أو في الشكل العام للتطبيق وهذه تعتبر من أهم مميزات البرنامج.
- يمكنك بواسطة برنامج Flutter عمل برنامج معقد جداً، فهو ليس مخصص للتطبيقات البسيطة فقط وأكبر دليل على ذلك التطبيقات الضخمة التي تمت برمجتها باستخدامه.
- يعمل فريق جوجل حالياً على تحديث إطار العمل هذا بحيث يمكن بواسطته برمجة برنامج متوافق مع جميع أنظمة التشغيل المتاحة حتى نظام التشغيل ويندوز.
فلاتر ضد بقية المنافسين في السوق؟
حتى أقنعك بالفكرة التي أطرحها لابد من دراستها في عدة نقاط مقارنة بالتطبيقات المماثلة والتي تؤدي نفس المهمة في عالم البرمجيات ولنرى Flutter أمام منافسيه هل سيربح التحدي؟!!
-
المقارنة حسب لغة البرمجة/التصميم:
اللغة التي تستخدم لكتابة أوامر التطبيق وكيف يمكن تصميم واجهات المستخدم؟
React Native |
يتم كتابة البرنامج باستخدام لغة JavaScript والتصميم يكون مخلوط مع HTML و CSS. |
Xamarin |
يتم كتابة البرنامج بلغة # C والتصميم يكون بـ XAML. |
Ionic |
تجربة مشابهة تمام لبرمجة وتصميم تطبيقات الويب. |
Flutter |
كتابة وتصميم الواجهات تكون كلها بلغة Dart |
المقارنة حسب استخدام مكونات النظام:
عندما تقوم بإضافة الزر كيف سيظهر على الاندرويد وكيف سيظهر على IOS ؟
React Native |
متعلق بشكل كامل بمكونات النظام وإصداره |
Xamarin |
توفر تجريد لمكونات النظام ويمكن الإجابة بنعم لأن المكونات تظهر حسب النظام |
Ionic |
غير متعلق بالنظام |
Flutter |
غير متعلق بالنظام لكن تم محاكاته |
- سهولة التعلم:
ما الذي تحتاج تعلمه لكي تبني تطبيقات كاملة باستخدام إحدى هذه التقنيات؟
React Native |
تحتاج أن تكون لديك معرفة بتقنيات الويب الأساسية HTML+CSS+JS ومن المفضل أن تكون لديك خلفية عن React لكي تجد الأمور أسهل في الفهم. |
Xamarin |
تحتاج تعلم لغة # C ولغة التصميم XAML. |
Ionic |
تحتاج تعلم تقنيات الويب الأساسية. |
Flutter |
تعلم لغة دارت فقط. |
- الترجمة:
إلى ماذا يتم ترجمة تطبيقك؟
React Native |
لا يتم الترجمة يتم تشغيل الكود على جافا سكربت VM. |
Xamarin |
تختلف حسب النظام فمثلاً يتم ترجمتها إلى تطبيق أصلي على IOS وجافا بايت كود على الأندرويد. |
Ionic |
يشتغل التطبيق على حاوية أي تطبيق أصلي يحتوي على متصفح مخفي. |
Flutter |
يتم الترجمة عن طريق مترجم AOT إلى تطبيق أصلي. |
-
الشعبية:
ما هو حجم المجتمع الذي يستخدم هذه التقنيات؟
React Native |
يتم استخدامه في تطبيقات كبيرة مثل فيسبوك بالإضافة لكون شركة فيسبوك خلف تطويره. |
Xamarin |
يتم دعمه بواسطة مجتمع # C الكبير جداً بالإضافة لأنه أصبح مجاني ومفتوح المصدر بعد استيلاء Microsoft عليه مما زاد شعبيته أكثر. |
Ionic |
عندما ظهرت هذه التقنيات أحدثت ضجة في وسط مبرمجي الويب لأنها كانت الحل الأسهل لهم لكن مشاكل هذه التطبيقات كثيرة بسبب هيكلتها ولا يوجد شركة كبيرة خلفها. |
Flutter |
مع أنه جديد في الساحة إلى أن المصادر أصبحت كثيرة ودخل في قائمة أشهر مئة مشروع على GitHub بالإضافة إلى تزايد شعبيته على Stack Over Flow والأهم من ذلك أن شركة جوجل خلفه والتي تتحكم بجزء كبير من سوق الأندرويد. |
إذا كنت ترغ في الاستعانة بأي من شركات التسويق الإلكتروني و إعلانات سوشيال ميديا المحترفة يمكنك التواصل مع فريق بصمة محارف حيث نقدم لكم مجموعة من المتخصصين في خدمات تصميم المواقع الإحترافية وخدمات السوشيال ميديا والسيو، و العديد من خدمات التسويق الرقمي المتنوعة. سارع بالتواصل معنا عبر منصاتنا الرقمية المختلفة، أو قم بزيارة موقع بصمة محارف الرسمي على الإنترنت.
مقالات قد يهمك الاطلاع عليها عبر مدونتنا:
دليلك الشامل عن مفهوم الترويج PROMOTION ؟
ما هو التسويق الاستراتيجي وما هي أهدافة؟