8 إيجابيات Flutter بالمقارنة مع React Native

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



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

على موقع المشروع ، يمكنك معرفة أن Flutter يستخدم بنشاط ليس فقط Google نفسها ، ولكن أيضًا بعض الشركات الأخرى. على سبيل المثال ، كتب Flutter تطبيق The New York Times الجديد ، بالإضافة إلى الإصدارات المحمولة من eBay و Aliexpress. لكن بشكل عام ، لا تبدو القائمة مؤثرة للغاية ، لأنها لا تضم ​​أكثر من 20 شركة.
صورة
ومع ذلك ، تظهر تجربة المطورين من شركتنا أنه في بعض الحالات يكون Flutter أفضل وأكثر ملاءمة لإنشاء تطبيقات الهاتف المحمول. بلغ عقل Neti الجماعي 8 إيجابيات لهذا الإطار الأصغر.

أداء


تعمل التطبيقات التي تم تطويرها بواسطة Flutter بشكل أسرع بكثير من استخدام React Native. يتم تحقيق مزايا السرعة من خلال محركنا واستخدام لغة برمجة أخرى. على عكس React Native ، الذي يعمل مع الجسور ولغة Java Script ، يتيح لك Flutter حل مشكلات التطبيق بسرعة ، خاصة تلك المتعلقة بواجهة المستخدم. تم دمج برامج التحويل الأصلية في الإطار بالفعل ، ويتحول الرمز المكتوب في Dart إلى تعليمات أصلية لمعالجات ARM.

بالمناسبة ، تم إجراء اختبارات مقارنة مثيرة للاهتمام من قبل الرجال من InVerita. قارن مقالهم على Medium أداء التطبيقات النهائية على أجهزة iPhone 6 و Xiaomi Redmi Note 5 الحقيقية.

صورة

كما ترى ، يعمل اختبار Gauss على iOS على Flutter بشكل أسرع من Swift ، ويظهر RN تأخرًا 20 مرة!

صورة

في حالة Android ، يتطلب Flutter وقتًا أطول بنسبة 20٪ لإكمال الاختبار من Java و Kotlin ، ولكنه لا يزال يعمل أسرع 15 مرة من RN.

حجم التطبيق


نتيجة للفقرة السابقة ، تحتوي التطبيقات التي تم إنشاؤها على أساس Flutter والمكتوبة على Dart على مكونات وسيطة أقل. يسمح لك تجميع تعليمات ARM الأصلية بتخزين لا شيء أكثر. ونتيجة لذلك ، تشغل ثنائيات التطبيقات نفسها مساحة أقل على محرك الأقراص للجهاز مرتين تقريبًا مقارنةً بالتطوير على React Native.

الرسوم المتحركة السريعة


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

لغة برمجة مطبوعة


أساس Flutter هو Dart ، وهي لغة برمجة مكتوبة شائعة بالفعل بين المتحمسين. في Dart ، يتحول التشفير إلى برمجة موجهة للكائنات ... وهنا ، بالطبع ، يمكننا أن نتذكر TypeScript ونجادل بأنه مكتوب أيضًا. ولكن ، للأسف ، في نهاية المطاف ، يتم تجميعه ولا يزال يتحول إلى JavaScript غير مكتوب. أي أن جميع مزايا TS تبقى عند مستوى الراحة في التشفير ولا تؤثر على الأداء. على النقيض من ذلك ، يتم كتابة Dart في الأصل. تم تطوير لغة البرمجة بنشاط ، بدعم من المجتمع. يمكنك كتابة المزيد من التعليمات البرمجية الهيكلية على Dart ، مما يعني أنه يمكنك إنشاء تطبيقات أكثر تعقيدًا وهياكل هرمية.

توثيق ممتاز


بالنسبة لأولئك الذين يرغبون في التعامل مع النظام الأساسي الجديد على الإنترنت ، هناك دروس فيديو ، يتم التفكير في إمكانيات العمل مع التعليمات البرمجية عبر الإنترنت. طور المجتمع الذي تقوده Google تعليمات وإرشادات شاملة. علاوة على ذلك ، تحتوي الشبكة على وصفة جاهزة للتحول من React Native إلى Flutter. يمكنك رؤيتها هنا . بالطبع ، هناك وثائق لـ React Native أيضًا ، ولكن غالبًا ما تكون غير مجدية بسبب أوصاف مثل "removeClippedSubviews - قد يؤدي ذلك إلى تحسين أداء التمرير للقوائم الكبيرة." يمتلك مجتمع Flutter نهجًا أكثر جدية للتوثيق.

واجهة التوحيد


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

دعم عدد كبير من المنصات


يدعم Flutter بالفعل أنظمة Android و iOS والويب. استنادًا إلى المناقشات في المجتمع ، سيتوفر الدعم لنظام التشغيل MacOS و ChromeOS و Windows قريبًا جدًا. والأكثر إثارة للاهتمام هو أن Flutter يدعم بالفعل نظام Google Fuchsia المستقبلي. لذلك يمكن نقل أي تطوير على الفور إلى نظام التشغيل الجديد.

ادوات المطورين


آخر شيء أريد أن أشير إليه هو DevTools المطورة. يتميز Flutter بنظام بيئي جيد لأدوات التطوير. يمكنك النظر إليهم هنا . بالمناسبة ، يحاول Facebook القيام بشيء مماثل ، ولكن بقدر ما نرى ، فإن RN ليس لديها سوى إصدار تجريبي من DevTools حتى الآن ، وبالوظائف لا تصل إلى نظراء Flutter.

مثال على الرمز


على سبيل المثال ، فيما يلي الرمز "Hello، World!" لأطر التفاعل الأصلية و Flutter

// React Native
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>Hello world!</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center'
  }
})

وإليك كيفية ظهور هذا الرمز في Flutter

// Flutter
import 'package:flutter/material.dart';

void main() {
  runApp(
    Center(
      child: Text(
        'Hello, world!',
        textDirection: TextDirection.ltr,
      ),
    ),
  );
}

هل لدى Flutter أي سلبيات؟


بالطبع هم كذلك. Flutter هي منصة شابة. لا توجد حلول جاهزة كافية لذلك. للمقارنة ، يحتوي نفس React Native بالفعل على المزيد من القوالب الجاهزة والوصفات وخيارات التنفيذ.

تستغرق كتابة واجهة المستخدم على Flutter وقتًا أطول. وكتابة كود Dart أطول. في React Native ، يتم إنشاء التطبيق كمنشئ من مكونات الويب. لا يزال Flutter يتطلب برمجة شاملة.

بالإضافة إلى ذلك ، يتطلب Flutter مهارات برمجة أعمق. في حالة React Native ، يمكنك أن تعهد إلى أي اختصاصي بمعرفة Java Script بالتطوير. مع Dart ، تصبح الأمور أكثر تعقيدًا ، نظرًا لأن هذه اللغة لها حد دخول أعلى من JS. يجب أن يحصل المبرمج على تدريب أكثر تعمقا.

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

All Articles