مراجعة Google Flutter - لماذا يحب مطورو تطبيقات الجوال Flutter

لماذا يحب صانعو التطبيقات Flutter؟ لأن Flutter مذهل.

يلبي Flutter كلاً من الشركات (من خلال تقديم تكاليف تطوير معقولة) والمطورين (من خلال توفير سهولة الاستخدام والسرعة) لهذا السبب تحولت بعض الشركات الكبرى إلى Flutter ، مثل إعلانات Google و Alibaba و Reflectly وغيرها الكثير.

لقد قامت Google بعمل رائع في بناء Flutter ، وتستمر في تحسين هذا الإطار.

في هذا المنشور ، سأقدم نظرة عامة سريعة على Flutter وامتيازاتها الجديدة تمامًا ، وسأتحدث عن سبب أهمية هذا الإطار في العمل معه. بالإضافة إلى ذلك ، سأناقش ما قد يعيق الشركات الكبرى عن تبني Flutter.

لكن أول الأشياء أولاً.

ما هو جوهر الرفرفة؟

إليك أشياء قد تعرفها بالفعل عن Flutter:

  • إنها مجموعة أدوات مفتوحة المصدر ومتعددة المنصات
  • تتم كتابة التطبيقات بلغة برمجة Dart
  • لديها محرك الرسومات الخاص بها (Skia)
  • يدعم ثلاث منصات رسميًا: iOS و Android والويب (في مرحلة تجريبية)
  • بشكل غير رسمي - يدعم أيضًا سطح المكتب

قدمت Google الإصدار الأول من Flutter في نهاية فبراير 2018. اعتبارًا من أبريل 2020 ، يتوفر الإصدار 1.12.

ما الذي يميز Flutter؟

يجمع Flutter بين جودة التطبيقات الأصلية ومرونة التطوير عبر الأنظمة الأساسية.

في الواقع ، تتيح لك العديد من الأدوات عبر الأنظمة الأساسية كتابة الكود مرة واحدة واستخدامه على كل من iOS و Android. ومع ذلك ، لا يمكن للجميع عرض نفس المظهر كتطبيق محلي.

ولكن هذا هو بالضبط ما يفعله Flutter: فبدلاً من كونه غلافًا فوق مكونات واجهة المستخدم الأصلية (مثل React Native و Xamarin) ، يرسم Flutter واجهة المستخدم من البداية.

يحافظ Flutter على التجربة الأصلية للتطبيق والشعور به ، ولا داعي للقلق بشأن أدائه على أي نظام أساسي.

بالإضافة إلى ذلك ، نظرًا لأن Flutter إطار عمل مفتوح المصدر ، يمكن لأي مطور إجراء تغييرات عليه على GitHub وإرسال طلبات دمج. وإذا كنت تأخذ نظرة على شعبية الرفرفة و- 90.4K جيثب النجوم ، 12K الشوك ، و 18445 يرتكب - ستحصل على فكرة أن المشروعات الإنمائية الحب الرفرفة وتساهم في جعله أفضل.

كيف يعمل Flutter؟

لا يتم تجميع Flutter مباشرة إلى تطبيقات iOS أو Android . يتم تشغيل التطبيقات بناءً على مزيج من محرك العرض (مبني على C ++) و Flutter (مبني على Dart). يتم إرفاق جميع الملفات التي تم إنشاؤها بهذه الطريقة بكل تطبيق وبرنامج تجميعات SDK لمنصة معينة.

يشبه تطوير اللعبة: لا تخصص اللعبة إطارها ، ويتم تنفيذ الوظائف باستخدام محرك اللعبة. نفس الشيء بالنسبة لبرنامج Flutter - جميع التطبيقات التي تعتمد على Flutter SDK تستبدل أجزاء من الأطر الأصلية بعناصر Flutter.

على الرغم من أنه يمكن أن يؤثر على حجم التطبيق النهائي ، إلا أن الأداء لا يزال جيدًا - يتم العرض بسرعات تصل إلى 120 إطارًا في الثانية .

نظرًا للتجميع الأصلي لمعالجات ARM والعرض البسيط ومجموعة من الأدوات والأدوات المدمجة ، فإن Flutter يجعل عملية التطوير أكثر بساطة.

بالإضافة إلى ذلك ، فإنه يوفر بعض الميزات اللذيذة جدًا مثل Hot Reload .

وإليك كيف يعمل:

عند النقر فوق الزر Hot Reload ، يتم عرض جميع التغييرات في التعليمات البرمجية في الأدوات والمحاكيات وأجهزة المحاكاة على الفور. يستمر التطبيق في العمل من حيث كان قبل أن تضغط على إعادة التحميل السريع: يتم تحديث الكود ، لكن التنفيذ يستمر.

لماذا تختار Flutter للتطبيقات متعددة المنصات؟

ستستمر إصدارات Flutter الجديدة في الظهور بمزيد من الميزات المتقدمة في سواعدهم. ولكن هناك بالفعل الكثير من الميزات المحسّنة التي تشرح تمامًا سبب شهرة Flutter.

أولاً ، التطوير عبر الأنظمة الأساسية باستخدام Flutter ، خلافًا للاعتقاد الشائع ، لا يجعل البرامج أسوأ.

يأتي Flutter مع جميع الحاجيات الأصلية لواجهات Android و iOS مثل Material Design و Cupertino. إلى جانب ذلك ، يمكن أن يغير إطار العمل سلوك العناصر المنفصلة لإنشاء تجربة مستخدم مماثلة لمستخدمي التطبيق.

ثانيًا ، يتيح Flutter إمكانية تنفيذ تجميع ملفات منفصل في وضع dev. يعمل تجميع JiT على تسريع التطوير وتصحيح أخطاء البرامج.

ثالثًا ، يتيح Flutter واجهة خلفية مرنة وقابلة للتطوير.

وهو يدعم المكونات الإضافية مثل Firebase و SQLite وما إلى ذلك (سيساعدك pub.dev في العثور على المكون الذي تحتاجه). يجعل Firebase البنية الأساسية للتطبيق قابلة للتطوير ولا تحتاج إلى خادم ولا لزوم لها

لذلك إذا كنت تعمل على تطبيقات تتطلب قواعد بيانات في الوقت الفعلي أو وظائف سحابية ، فإن Flutter يدعمك.

وآخرها: Flutter سهل التعلم .

منذ البداية ، حدد مطورو Google هدفًا لخفض حاجز الدخول. لقد قاموا بإعداد الوثائق والموارد التي يمكن للمطورين استخدامها بعناية. حتى أنه يحتوي على أقسام خاصة يمكنك استخدامها لبدء تعلم إطار العمل حسب تخصصك:

  • Flutter لأجهزة الأندرويد
  • Flutter لمطوري iOS
  • Flutter لـ React Native devs
  • Flutter for Xamarin.Forms devs
  • Flutter لمطوري الويب

نظرًا لوثائق Flutter التفصيلية ، ستكتشف كيفية كتابة التعليمات البرمجية في Dart حتى لو كان لديك خبرة فقط في أدوات Unity الرسومية لصنع ألعاب Android.

Flutter 1.12 (أحدث إصدار) ومزاياها

دعونا نرى الميزات الساخنة التي قدمها Flutter في أحدث إصدار 1.12:

الوضع الداكن لنظام iOS

من الآن فصاعدًا ، يدعم Flutter مظهر ومظهر iOS 13 ، بما في ذلك دعم الوضع المظلم الكامل في أدوات Cupertino. ولا يتعلق الأمر فقط بتبديل الخلفية ولكن تكييف باقي الألوان لتكون مطابقة جيدة.

إضافة إلى دعم التطبيق

هناك تحسن كبير آخر وهو تحديث Add-to-App ، والذي يهدف إلى دمج Flutter في تطبيقات iOS / Android الموجودة بالفعل.

يدعم الإصدار الجديد من Flutter إضافة مثيل Flutter بملء الشاشة إلى التطبيق ، إلى جانب:

  • تكامل واجهات برمجة التطبيقات المستقرة في Java و Kotlin و Objective-C و Swift
  • دعم استخدام المكونات الإضافية في وحدات Flutter
  • آليات تكامل إضافية عبر أطر عمل Android AAR و iOS

دعم الويب التجريبي

توفر قنوات Flutter Master و dev و beta الجديدة دعمًا محسنًا للويب. هل تريد بعض الأمثلة؟

إليك Rivet ، وهو مشروع تعليمي استخدم Flutter و Firebase لإنشاء إصدار ويب لتطبيقهما.

دارت 2.7

يقدم الإصدار الجديد من إطار العمل Dart 2.7.

يعمل هذا التحديث على تحسين تجربة العمل مع Dart 2.5 في كيفية معالجة السلاسل الآمنة للقدرات وعمليات التمديد. يساعد هذا المطورين على منع الأخطاء عندما تحصل المتغيرات على قيمة صفرية وتحليل الأعداد الصحيحة في سلسلة.

وإليك بعض الميزات الأخرى لأحدث إصدار من Flutter:

  • دعم سطح مكتب macOS (ألفا)
  • متعدد الأجهزة التصحيح
  • اختبار الصورة الذهبية
  • تحسينات إصدار Android
  • تحديث DartPad

إنه جيد ، لكن ليس بدون مشاكل: ما الذي يعيق عودة التطوير؟

Flutter رائع حقًا: من السهل البدء به ، وسهل العمل معه ، ومقدمة من شركة تقنية ضخمة. ومع ذلك ، فهذه هي الأسباب التي قد تجعل مطورك الأول لا يشاركك في تفاؤلك

شعبية دارت (منخفضة)

على عكس Java / Kotlin لنظام Android أو Swift / Objective-C لنظام iOS ، فإن Dart لا تتمتع بشعبية كبيرة حتى الآن. ومن غير المرجح أن يحدث ذلك.

ليس من الصعب تعلم Dart ، وهناك الكثير من البرامج التعليمية (مثل هذا) ، لكن بعض المطورين يستمرون في التمسك بـ Java وغيرها من الأدوات المألوفة.

في الوقت نفسه ، لا يمكنك استخدام Flutter وعدم استخدام Dart: حتى ميزة Flutter القاتلة - Hot Reload - لن تعمل بدون Dart.

لا يدعم جميع الأجهزة

لا يمكنك إنشاء تطبيقات لأجهزة iOS 32 بت مثل تلك الأقدم من iPhone 5s. نفس الشيء بالنسبة لأجهزة كمبيوتر سطح المكتب التي تعمل بنظام Windows: لا يمكنك تشغيل Flutter على الكمبيوتر المحمول 32 بت.

وليس لدى Flutter devs أي خطط لإصلاحها لأن "هذا سيتطلب قدرًا كبيرًا من العمل."

لذا ، إذا كنت تريد البرمجة باستخدام Flutter ، فسيتعين عليك امتلاك جهاز x64 بت أو ترقية الجهاز الذي تستخدمه الآن.

عدد محدود من المكتبات

على الرغم من وجود العديد من libs Flutter مثل flutter (لرسم الرسومات في Flutter ) و path_provider (يُستخدم لتحديد موقع ملف على Android / iOS) و flutter_sliding_tutorial وغيرها الكثير ، لا يزال العدد محدودًا.

ليس من الصعب شرح ذلك: Flutter هو إطار عمل جديد نسبيًا ، ولم يكن لدى المطورين الوقت الكافي لتطوير العديد من libs التي توفرها اللغات الأصلية.

ومع ذلك ، فإن أهم المكتبات موجودة بالفعل ، وهناك مكتبات جديدة تظهر طوال الوقت.

تطبيقات Flutter أكبر حجمًا

... مقارنة بالتطبيقات الأصلية المطورة. قام فريق Flutter بقياس الحد الأدنى لحجم التطبيق (بدون مكونات مادية ، فقط عنصر واجهة مستخدم مركزي واحد ، تم إنشاؤه باستخدام flutter build apk - تقسيم لكل أبي) ، مجمعة ومضغوطة ، لتكون 4.3 ميجا بايت لـ ARM و 4.6 ميجا بايت لـ ARM 64 .

التطبيق الأساسي الآن هو ~ 4 ميجابايت في Android و ~ 10 ميجابايت في iOS.

القليل من الخبرة المثبتة

قد يحب المطورون Flutter ، لكن الشركات الكبيرة لم تتسرع في التوقف عن إنشاء تطبيقات أصلية (أو React Native) والتحول إلى Flutter.

بالنسبة لمعظم الشركات ، فإن المشكلة الأكبر هي حداثة Flutter. Dart أحدث من Java أو C # ، و Flutter نفسها جديدة تمامًا.

بالطبع ، هناك العديد من تطبيقات Flutter مفتوحة المصدر ، بما في ذلك التطبيقات الكبيرة مثل إعلانات Google أو Hamilton (راجع القائمة الكاملة هنا) ، ولكن ليس كثيرًا.

ولا أحد يريد أن يكون الشخص الذي يتبنى إطارًا جديدًا تمامًا ليضطر إلى التحول إلى التطوير المحلي بعد بضعة أشهر.

ولكن الأهم من ذلك هو أن Flutter هو المسار الذي تسلكه بمفردك:

  • لا يوجد العديد من أفضل الممارسات المؤكدة (على الأقل في المشاريع الكبيرة)
  • دائمًا فرصة لأنك أول من يواجه هذه المشكلة بالذات
  • القليل من الأمل سيساعدك شخص ما - عليك أن تأخذ كل خطوة بعناية وتكون مستعدًا لمواجهة العواقب

أين تستخدم Flutter

بادئ ذي بدء ، من الأفضل استخدام Flutter للشركات الناشئة MVP عندما يكون لديك وقت محدود ومال غالبًا للتحقق من نموذج العمل.

تطبيق Flutter أرخص *:

  • * مقارنةً بتكلفة تطبيقين محليين
  • فريق التطوير أصغر بنسبة 40٪
  • العمليات الخطية
  • يمكنك قضاء المزيد من الوقت في العمل على ميزات التطبيق

باختيار مشروع Flutter ، فإنك تقلل من عدد ساعات التطوير. لا يستغرق تطوير الرفرفة وقتًا طويلاً مقارنةً بالأصالة.

هنا مثال. لنفترض أنك تقوم بإنشاء تطبيق يشبه Instagram لنظامين أساسيين. سيستغرق تطوير iOS حوالي 700 ساعة لنظام Android - 700 ساعة أيضًا .

مع Flutter ، ستغطي كلا النظامين وتوفر الوقت: 700 ساعة Android + 700 ساعة iOS مقابل 700 ساعة Flutter.

أنت توفر الكثير من الوقت الذي يمكنك إنفاقه على شيء آخر ، مثل تلميع الميزات.

تغليف

إذا كنت تقوم بإنشاء تطبيقات في وقت محدود بميزانية محدودة ، فمن المؤكد أن Flutter يستحق المحاولة.

إنها جيدة كما تبدو ، ومع كل تحديث جديد ، يضيف مطورو Google المزيد من الأدوات للتطوير عبر الأنظمة الأساسية.

بالطبع ، قد يبدو هذا الإطار غير عادي لمحبي C # وجافا ، لكن هذا لا يعني أنه سيجبرك على الخروج من منطقة الراحة الخاصة بك. بعد إتقان الاختلافات اللغوية الصغيرة ، ستلاحظ قريبًا أن تطوير واجهة المستخدم يسير أسرع بضع مرات مقارنة بالتطوير المحلي.

وإذا كنت ناجحًا ، وإذا استمر Flutter ، فقد يجلب لك بعض الخبرة وفرص تطوير الهاتف المحمول المثيرة في المستقبل.