لماذا يجب على مطوري تطبيقات Android و iOS التفكير في Flutter {2021-2022}
نشرت: 2019-03-28الحديث الصامت عن المدينة العالمية لتطبيقات الأجهزة المحمولة هو أنه في الوقت الذي ستأتي فيه التطبيقات الأصلية - تلك المصممة خصيصًا لنظامي Android و iOS ستواجه منافسة قوية من تلك التي تم تطويرها لكليهما باستخدام قاعدة كود واحدة: Cross-Platform.
من خلال ملاحظة أن الأطر المشتركة بين الأنظمة الأساسية مثل React Native وتلك مثل Flutter ، والتي تعد أكثر تقدمًا ، فإن عالم التنقل الآن سيدخل قريبًا حقبة يكون فيها طرح الأسئلة الصوتية: Native vs Cross Platform سوف تصبح أكثر بروزًا وبصوت عالٍ .
وعلى الرغم من وجوده اليوم ، لا يوجد تطابق لتطوير Native Android و iOS والفوائد التي يقدمها ، إلا أن هناك إطار عمل جانبي واحد يظهر الآن لإعطاء مستوى تالي تمامًا من المنافسة المليئة بالوقود للنهج الأصلي - Flutter.
إطار العمل الذي كان يُفترض أنه هواية Google والذي سرعان ما سيتم نسيانه عند تلقيه التحديث الأول Flutter 1.2 و Dart 2.2 غير الصورة الكاملة.
الأداة ، في غضون بضعة أشهر ، لم تجد فقط قاعدة مستخدمين مخلصين لبعض الأسماء الأكثر شهرة في العالم - Alibaba و Tencent وما إلى ذلك - ولكنها أطلقت أيضًا خطة Hemmingway حيث لم يتم تنفيذ إطار عمل عبر الأنظمة الأساسية قبل - الويب.
الصناعة بأكملها ، التي ترى فائدة جمعية Flutter ، تستعد الآن لفكرة أن يوم المنافسة النهائية قد اقترب.
الآن نحن لا نقول إن ذلك سيحدث بين عشية وضحاها ، سيستغرق الأمر بعض الوقت ولكن يُعتقد أن صناعة التطبيقات تتجه إلى هناك.
شاهد كيف يستعد مجتمع تطبيقات الأجهزة المحمولة - سواء من جانب المطورين والشركات - لفكرة Flutter كخيار أول لتطوير التطبيقات.
في الواقع ، هذا هو السبب في أن المزيد والمزيد من المطورين يتجهون الآن لتجربة أيديهم على مجموعة واسعة من التقنيات واللغات بحيث تظل مطلوبة عندما يحين وقت زوال Native.
الآن في حين أن React Native قد أثبتت نفسها بالفعل كإطار عمل يجب على مطوري التطبيقات الذين يرغبون في الاستمرار في خط التطوير أن يضعوا أيديهم عليه ، فإن الأداة الشهيرة الآن ترى نفسها تنحرف عن طريق أداة جديدة بالكامل على الكتلة - Flutter. كما أن قائمة مزايا تطوير تطبيقات الهاتف المحمول Flutter لم تُترك مجهولة.
فلاتر بروز 2021
ما هو مبتكر ومختلف ويتم تنفيذه ببساطة في Flutter؟ دعنا نراجع الميزات وإيجابيات وسلبيات الرفرفة لعام 2021 التي ستجعلك تفكر في التخلي عن React Native لاستخدام أداة جديدة.
الحاجيات المخصصة للترميز السريع لواجهة المستخدم
الشيء الأكثر ثورية في الرفرفة هو أنه يساعد في إنشاء واجهة مستخدم بمساعدة الكتل الإنشائية ونموذج الكائن المتسق والموحد.
يمكن تسمية Flutter على أنها عنصر واجهة مستخدم مثل أي كائن في Flutter هو عنصر واجهة مستخدم ، سواء كان زرًا أو حشوة أو خطًا. يمكن دمج عناصر واجهة المستخدم لعمل تصميمات أو تخطيطات ، ويمكنك أن تقرر استخدام الأدوات في أي درجة من التخصيص ، أي من مربعات الهيكل إلى المستوى الأدنى عند إنشاء عناصر واجهة المستخدم الخاصة بك باستخدام نفس الأدوات التي استخدمها فريق Flutter.
توفر لك النقطة التي يتمتع بها Flutter عناصر واجهة مستخدم خاصة بها ميزة رئيسية واحدة ، أي أن تخصيص واجهة المستخدم الذي يستغرق عادةً وقتًا أطول لإكماله في تطوير الأنظمة الأساسية يستغرق حدًا أدنى من الوقت مع Flutter.
مجتمع متزايد
بالنظر إلى أن التعود على Dart ليس مشكلة كبيرة بالنسبة لك ، لذلك يجب أن يكون تعلم الأداة بسيطًا. لاحظت مجموعة Flutter أنهم رأوا أفرادًا لديهم معرفة محدودة بالبرمجة ، ونماذج أولية ، وبناء تطبيقات ، علاوة على ذلك يحددون أنه لا توجد حاجة إلى خبرة تحسين الهاتف المحمول لبدء Flutter.
لمثل هذه التكنولوجيا الحديثة ، تنمو Flutter بسرعة كبيرة. وفقًا للإحصاءات ، فقد تبين أنه كان هناك نمو سريع في استخدام Flutter ، حيث يستخدم أكثر من نصف مليون مطور Flutter كل شهر. تظهر بعض الإحصائيات أدناه النمو المتزايد لـ Flutter .
- لوحظ أن ما يقرب من 78٪ من مطوري Flutter يستخدمون قنوات مستقرة ، و 11٪ يستخدمون بيتا ، والباقي 11٪ يستخدمون إما dev أو master.
- الهند والصين والولايات المتحدة والاتحاد الأوروبي والبرازيل هي المناطق الخمسة الأولى لـ Flutter.
- يتم احتساب تطبيقات Flutter المنشورة في متجر Play على أنها تقريبية. 90.000.
Dart - لغة بسيطة ومقنعة
Dart هي لغة متطورة موجهة للكائنات ستساعدك على تذكر Java أو C ++ بصيغتها. يدعم كلا من أنماط التركيب الصلبة والضعيفة مما يجعل من السهل اختياره للمبتدئين.
لا توجد متطلبات لسجلات XML. في تطوير Android ، ينقسم العمل إلى تصميم ورمز. يجب كتابة التنسيق في XML كطرق عرض يشار إليها بعد ذلك في كود Java. تتعامل Dart مع ذلك عن طريق الاحتفاظ بالتنسيق والرمز في مكان واحد. نظرًا لأن الكائنات في Flutter عبارة عن عناصر واجهة مستخدم ، يتم إنشاء التخطيط في Dart.
كما تعلم ، سيتم تشغيل التطبيق الموجود على أداة المستخدم بسهولة بسبب Dart حيث يتم تجميعه في رمز محلي بدون الجسر ، وبالتالي ، يوفر Dart تنفيذًا أفضل بدون اتصال JavaScript.
ملاحظة مهمة حول Dart هي أن اللغة لا تقتصر على تطوير الأجهزة المحمولة حيث يتم استخدامها لإنشاء تطبيقات الويب. يتم استخدامه عادةً مع هياكل الويب و AngularDart.
وظيفة إعادة التحميل
قد يكون من الصعب العودة إلى البرمجة العادية حيث يستغرق النشر عدة دقائق. يرفع إعادة التحميل السريع إنتاجية المبرمجين ، ويساعد في التكرارات السريعة ، ويسمح لك بالتجربة دون تأخير طويل. يحتوي Xamarin و React Native على معادلات هذه الميزة أيضًا ، لكن بعض المراجعات تدعي أنها أسرع بكثير في Flutter. لم نر حتى الآن معايير لإثبات ذلك.
تم إصلاح هذه الأداة في تصميم Flutter ولا تحتاج إلى أي مكونات إضافية للعمل. يسمح لك إعادة التحميل السريع بمشاهدة التحديثات في الوقت الفعلي. على سبيل المثال ، افترض أنك واجهت خطأ أثناء تشغيل أحد البرامج. في Flutter ، لديك فائدة لإصلاحه على الفور ، من حيث توقفت ، دون إعادة تشغيل كل شيء.
قد يكون من الصعب عليك العودة إلى البرمجة العادية حيث يتطلب النشر بضع دقائق. يرفع إعادة التحميل السريع كفاءة المطورين ، ويساعد في التكرارات السريعة ، ويسمح لك بالاختبار دون تأجيل طويل.
قابلية التنقل
Flutter ليس مجرد إطار عمل ، إنه مجموعة SDK كاملة (مجموعة تطوير البرامج) ، ويمكن تشغيله على أي جهاز بشاشة. تم إنشاء منافذ الطرف الثالث لتطوير تطبيقات Flutter لأنظمة التشغيل Mac OS و Linux و Windows. وهي تتضمن زرع واجهات برمجة التطبيقات ووظائف إدخال الماوس ولوحة المفاتيح والمكونات الإضافية المتنوعة. حاول عدد قليل من الأشخاص تطوير تطبيقات التلفزيون باستخدام Flutter. بالنظر إلى إمكانياته ، يصبح يومًا بعد يوم أحد الأطر المحببة.
أداء عالي
تدخل الكثير من المكونات في الوصول إلى العرض التقديمي للتطبيق: استخدام وحدة المعالجة المركزية ، ومتوسط وقت التفاعل ، والإطارات في الثانية (fps) ، وما إلى ذلك هي بعض العوامل التي تساعد في الوصول إلى أداء التطبيق. يضمن Flutter سرعة ثابتة تبلغ 60 إطارًا في الثانية ، وهو المعدل الذي تُظهر به الشاشات الحالية صورة سلسة وواضحة. سيتم ملاحظة أي تأخير في معدل الإطارات هذا بسرعة بالعين ، وبالتالي ، يحاول المطورون مواكبة اللحظة على هذا المستوى.
نظرًا لأننا قد تعمقنا بالفعل في مناقشة React Native مقابل Flutter بتفاصيل كثيرة جنبًا إلى جنب مع فوائد تطوير تطبيق Flutter على تطوير تطبيق React Native ، دعنا ، في هذه المقالة ، نركز على لماذا حان الوقت لتغيير مطوري Android و iOS التركيز على خدمات تطوير تطبيقات Flutter وزيادة مهاراتهم في المجال.
بدون مزيد من اللغط ، دعنا نبدأ مع تأثير Flutter على تطوير تطبيقات iOS و Android:
ما أبقى مطوري تطبيقات iPhone بعيدًا عن استثمار وقتهم في تطوير التطبيقات عبر الأنظمة الأساسية حتى الآن هو حقيقة أن الأدوات التي تسمح لهم بتطوير تطبيقين من قاعدة رمز واحدة توفر جودة من الواضح أنها تفتقد إلى شيء ما. هذا الإحساس بعدم الاكتمال يضاف إلى حقيقة أن Swift هي واحدة من أفضل الأدوات للعمل عليها وكان السبب في منعهم من النظر في اتجاه عبر النظام الأساسي.
ولكن منذ دخول Flutter إلى السوق ، أصبح من المستحيل تقريبًا العثور على فرق بين تطبيق Native وآخر تم تطويره باستخدام إطار عمل Flutter. السلاسة ، والنعومة ، والهدوء الذي يأتي به إطار العمل ، يجعل الرفرفة لمطوري iOS و Android خيارًا مثاليًا.
نظرًا لأنه تم إثبات أن Flutter قد أصبحت معروفة الآن في مجال التنقل ، فإن التوقيت مناسب لرؤية مقارنة طفيفة بين تطوير تطبيق Flutter و Native iPhone للحصول على فكرة أفضل من أيهما.
يمكن رؤية الإجابة على تطوير Flutter vs Native iOS في نقاط المقارنة التالية -
كومة تقنية واحدة
أثناء استخدام Swift أو Objective-C عند تطوير تطبيقات iOS الأصلية ، يستخدم Flutter لغة Dart . IDEs أيضًا ، مثل اللغات ، مختلفة. بينما يتم تطوير تطبيقات iPhone الأصلية باستخدام Xcode ، يستخدم Flutter Android Studio أو IntelliJ Idea أو برامج تحرير النصوص الأخرى مثل Atom أو Sublime Text. الآن ما يجعل تطبيقات Swift المبنية سريعة حقًا هو حقيقة أن جميع المكونات التي تدخل فيها تم تطويرها محليًا. من ناحية أخرى ، يستخدم Flutter إطار عمل Dart دون الحاجة إلى التواصل مع الوحدات الأصلية - مما يعني أن الرفرفة لمطوري iOS لديها بالفعل كل ما هو مطلوب لتطوير التطبيقات الأصلية.
إنتاجية المطورين
عندما يتم تطوير تطبيقات iOS محليًا ، يتم إنشاء المطورين لإعادة إنشاء التطبيق الكامل أو تبعيات الطرف الثالث لرؤية التغييرات في الأجهزة أو المحفز ، في كل مرة يقومون فيها بإجراء تغيير في التطبيق.
من ناحية أخرى ، تكمن الإجابة عن سبب استخدام flutter لتطوير تطبيقات iOS و android في حقيقة أنه يوفر خيار إعادة تحميل سريع حيث تظهر جميع التغييرات التي تم إجراؤها على المحاكي في الوقت الفعلي.
الميزة الأخرى التي تؤثر على الإنتاجية والموجودة في تطوير Native iOS هي برنامج إدارة التبعية. تعتمد إدارة التبعية في حالة التطوير الأصلي على العديد من أدوات الجهات الخارجية مثل قرطاج أو CocoaPods ، والتي تأتي مع منحنى تعليمي. يمكن رؤية فوائد تطوير تطبيق Flutter ، في هذه الحالة ، في حقيقة أن إطار العمل يستخدم أداة إدارة التبعية الشخصية الخاصة به والتي تسمى Pub. تم بالفعل بناء نظام معالجة التبعية داخل تطبيقات Flutter ، مما يجعل من السهل للغاية الحصول على تبعيات جديدة عند الحاجة.
عناصر واجهة المستخدم
يُعرف إطار العمل الأصلي الذي تستخدمه Apple لإنشاء مكونات واجهة المستخدم باسم UIKit - واجهة المستخدم الشاملة التي تعتمد على الأحداث والتي توفر نطاقًا واسعًا من دعم الإيماءات. يأتي الإطار مع دعم أصلي للمستند والرسوم المتحركة والطباعة والرسم. ومع ذلك ، فإن محرك واجهة المستخدم الخاص بـ Flutter يعمل بشكل مختلف تمامًا. إنه يعمل على محرك التقديم والإطار الخاص به . المحرك الذي هو في الأساس عبارة عن شجرة من الحاجيات المصممة للحالة وعديمة الحالة ينطبق على اسمه ويقدم الكثير من الأدوات التي تعتبر مثالية تمامًا للبكسل. في الواقع ، فإن UIKit of Flutter هو السبب الأول الذي يدفع مطوري تطبيقات Android و iOS إلى التفكير في Flutter.
دعم الاختبار
تقدم Apple إطار اختبار أصلي يُعرف باسم XCTest للتكامل والأداء واختبار واجهة المستخدم لتطبيقات iOS - إطار عمل لا يخلو من المشكلات. يأتي إطار XCTest بدون عدد من العناصر المهمة مثل - تجميع الاختبارات ، والاختبار المستند إلى البيانات ، واختبار اللقطات ، وما إلى ذلك ، ولكن أحد أكبر أوجه القصور في XCTest هو الاستهزاء والعناد ، بينما يطلب السابق الكثير من التعليمات البرمجية ، هناك لا يوجد دعم محلي لهذا الأخير. يوفر Flutter إطار عمل اختبار صلبًا يسمح للمطورين بكتابة الاختبارات على المستوى الوظيفي والوحدة وواجهة المستخدم. يحتوي إطار العمل حتى على وثائق مفصلة مع رموز أمثلة ، حول العملية التي يجب اتباعها لاختبار التطبيقات على مستويات مختلفة. يتم توفير اختبارات تكامل Flutter التي تشبه اختبارات Xcode UI بواسطة حزمة منفصلة - Flutter Driver.
الآن وقد نظرنا في جميع العناصر المختلفة التي تجعل Flutter بشكل طفيف - أو في بعض الحالات على نطاق واسع - أفضل من Native iOS ولدينا من بعض النواحي السبب الذي يجعل مطوري تطبيقات Android و iOS يفكرون في Flutter ، فقد حان الوقت لتبديل الانتباه إلى المطورين الذين يستثمرون وقتهم في تطوير التطبيقات التي يتم نشرها على متجر Play.
في حين أن كلا من أطر تطوير تطبيقات Native Android و Flutter تأتي من نفس الشركة الأم - Google ، فإن التحول من Native Android إلى Flutter واضح في حالة مطوري تطبيقات Android كما كان الحال بالنسبة لمطوري تطبيقات iPhone المحمولة.
فيما يلي المؤشرات التي يتعين علينا تسليط الضوء عليها في حالة الرفرفة لمطوري Android ولماذا يجب على مطوري Android الأصليين توسيع مهاراتهم وتجريب أيديهم في إطار عمل Flutter.
عدم وجود وقت بناء Gradle شديد التكرار
يعد تطبيق Gradle اليدوي أحد أهم الأدوات في عملية تطوير تطبيقات Android بأكملها ولكن دعنا نواجه الأمر - وقت الإنشاء كبير جدًا ويمثل عائقًا كبيرًا في دورات التطوير السريع.
للحصول على تأثير كامل لـ Flutter على تطوير تطبيقات iOS و Android ، فإنه يتطلب أيضًا إنشاء Gradle ولكن ليس عدة مرات مثل Native Android. بينما يستدعي بناء Flutter أيضًا إنشاء Gradle في بداية التطوير في المرة الأولى ، فإنه لا يتطلب ذلك مرة أخرى لإعادة تشغيل التطبيق بالكامل. في حين أن Android Studio قد خفض أيضًا وقت إنشاء Gradle إلى عدد جيد ، إلا أن وقت التحميل الذي يأتي به Flutter يتفوق على وقت التحميل الأصلي إلى حد كبير.
نفس اللغة للخلفية والتخطيط
يأتي Android الأصلي مع تخطيط منفصل وملفات Kotlin / Java التي تجعل المطورين يحصلون على مراجع للعروض ثم يغيرونها في ملفات الخلفية. من ناحية أخرى ، تتطلب Flutter لغة واحدة للتصميم ، والخلفية ، بينما يزيل إطارها التفاعلي الحاجة إلى مراجع للأدوات - لتصبح الإجابة عن سبب إنشاء تطبيقات باستخدام Flutter ولماذا تختار Flutter في عام 2021 .
دارت يأخذ أفضل اللغات المتعددة
Java ، حتى بعد إطلاق Java 8 تخلف وراءها أثرًا لنطاق التحسينات. على الرغم من أن Dart قد اتخذت بشكل استراتيجي أفضل الميزات لعدد من اللغات المختلفة ، دون الانزلاق إلى الإحساس الذي تمس الحاجة إليه بإلمام Java - وهو أمر يجعل عملية التطوير بأكملها سهلة تقريبًا للمطورين ومربحة للشركات التي تختار الاستثمار في مطور تطبيقات flutter في الولايات المتحدة الأمريكية.
سرعة عالية للرسوم المتحركة
يعمل Flutter على تبسيط أنماط الرسوم المتحركة وتحسينها لاستخدامها في تطبيقات الأجهزة المحمولة. مجرد حقيقة أن Flutter لمطوري Android يسمحون بتحميل الرسوم المتحركة بسرعة 60 إطارًا في الثانية تقول كل شيء.
الآن وقد رأينا كيف أصبح Flutter إطارًا يعمل على حل أوجه القصور التي يواجهها مطورو Android و iOS على حد سواء ولماذا أصبح إنشاء تطبيقات باستخدام Flutter سؤالًا لا يُطرح ، فقد حان الوقت لمعرفة ما إذا كانت الحاجة إلى إجراء هذا التبديل ملحة . وإذا كان النوع حول إطار العمل عبر الأنظمة الأساسية جاهزًا لاستبدال عمليات التطوير المحلي على كلا الجانبين.
هل Flutter جاهز للاستخدام في الإنتاج؟
بدأ التقدم الحقيقي في Flutter مع قيام Google بجعل Flutter يخرج من المرحلة التجريبية ويدخل السوق باعتباره Flutter 1.0 لعالم المطورين للعمل حوله ولإضافة عدد من الشركات إلى مجموعة تقنيات تطبيقاتهم مع وعد بميلاد أكبر وأداء أعلى - في حدث Flutter Live .
وبعد شهرين فقط ، في فبراير ، تم تعزيز إطار عمل النظام الأساسي المحبوب الآن بإطلاق Flutter 1.2 و Dart 2.2. التحديثات المستمرة التي يتم إجراؤها في إطار عمل Flutter منذ أن تم إطلاقها مباشرة في ديسمبر كافية لترمز إلى مدى جدية Google في إطار العمل وما تريده ، يخطط مطورو تطبيقات الأجهزة المحمولة على iOS و Android والشركات عبر القطاعات لتحقيقه من خلال ارتباطها .
بينما تحدد الوظائف أن تطوير تطبيق Flutter لنظامي التشغيل iOS و Android يأتي مع المساعي المستمرة من جانب فريق Google ومجتمع Flutter المتنامي لجعله مجانيًا وقابلية التوسع كافية لإثارة أسس مطوري التطبيقات الأصلية ، فإن وقت التبديل هو ليس اليوم. ربما ليس لمدة 2-3 سنوات أخرى أيضًا.
يتم استخدام إطار العمل الآن من قبل بعض أكبر شركات بناء التطبيقات ، حتى بعد أن أصبح جاهزًا للإنتاج ، فإنه يكافح مع بعض المشكلات البارزة من كل ذلك ، حتى بعد أن قام مجتمع تطوير تطبيقات Flutter بعمل رائع في التخلص من 9000 مشكلة حتى الآن. المشكلات التي تتراوح من الفصل العشوائي لمصحح الأخطاء ، وتعطل التطبيق بدون أسباب واضحة.
في عام 2021 ، أصبح Flutter أكثر من جاهز للاستخدام من قبل مطوري تطبيقات الأجهزة المحمولة في تطبيقات ونماذج أولية منخفضة التعقيد ، ولكن التحول إلى مشروع تطبيق متوسط أو عالي التعقيد قد يتحول إلى مخاطرة غبية. على الرغم من أن هذا من واجهة العمل أو للوقت الذي تعمل فيه على تطبيق من شأنه أن يتم نشره في السوق ، كمطوري تطبيقات Android و iOS ، فإن التوقيت مناسب لك لاستثمار وقتك في تعلم Flutter واستكشاف ميزاته عليه أن يعرض.
إذا لم يكن الأمر كذلك اليوم ، فإن Flutter ليست سوى عدد قليل من المشكلات التي تحولت إلى الخيار الأول للمؤسسات والشركات الناشئة . ومن المقرر أن يأتي الوقت عاجلاً وليس آجلاً ، مما يجعل من الضروري أن تكون مستعدًا