Kotlin Vs Flutter: من سيحكم سوق التطبيقات عبر الأنظمة الأساسية؟
نشرت: 2020-02-20حسنًا ، أول شيء أولاً.
كان هناك وقت كان يعتبر فيه تطوير الأنظمة الأساسية مرادفًا لإنشاء تطبيق باستخدام React Native و Flutter. كان عشاق الأعمال وشركات تطوير تطبيقات الأجهزة المحمولة يعتمدون على هذين الإطارين لإثبات وجودهم على كل من Android و iOS بطريقة فعالة من حيث التكلفة.
ولكن الآن ، تطورت Kotlin ودخلت المنافسة ، مما جعل الجميع يتساءل من سيكون الحاكم النهائي لسوق التطبيقات عبر الأنظمة الأساسية . نظرًا لأننا نظرنا بالفعل في مقارنة Flutter و React Native سابقًا ، هنا ، في هذه المقالة ، سنتحدث بشكل وصفي عن مقارنة Kotlin مقابل Flutter وسنساعدك في العثور على الخيار الصحيح لاحتياجات البرمجة والتطوير عبر النظام الأساسي.
بينما سنناقش وظائف منصة Kotlin هنا ، يمكنك التعرف على كيفية استخدام Swift لتطوير تطبيقات Android في هذه المدونة .
لكن دعونا نتعلم حبال كلاهما أولاً.
ما هي منصة Kotlin المتعددة؟
Kotlin multiplatform ، هي ميزة إضافية للغة تتعدى تطوير تطبيقات Android . بمعنى أنه يمكّن المطورين من مشاركة الرموز والبيانات ومنطق الأعمال عبر منصات متعددة مثل iOS و Web و Linux و MacOS و Android و Java Virtual Machine (JVM).
نظرًا لأننا سنركز هنا على وظائف الأنظمة الأساسية المتعددة ، يمكنك التعرف على خصائص النظام الأساسي الأصلي لـ Kotlin في هذه المدونة: - Kotlin لتطوير تطبيقات Android - الأسباب والأسباب ونصائح المكافأة .
لا يزال مفهوم الاستثمار في Kotlin لتطوير التطبيقات عبر الأنظمة الأساسية جديدًا في السوق ، ولكن من المدهش أن تتبناه العديد من العلامات التجارية الشهيرة.
ما هو إطار عمل Flutter UI؟
تم طرح Flutter في عام 2015 بهدف إعداد سوق لـ Google Fuchsia ، وهي عبارة عن حزمة SDK مفتوحة المصدر تمكن من إنشاء هاتف محمول وشبكة وسطح مكتب جميل المظهر محلي المظهر باستخدام قاعدة بيانات واحدة.
استهدفت Google Flutter العديد من التحديات التكنولوجية والسوقية السائدة وقدمت حلولًا فعالة. ونتيجة لذلك ، أصبح Flutter إطارًا مثاليًا لتطوير التطبيقات عبر الأنظمة الأساسية في لمح البصر. ليس هذا فقط ، فقد دخلت في قائمة التقنيات التي تعمل بها أفضل العلامات التجارية.
الآن ، بعد أن تطرقنا إلى القاعدة على حد سواء ، دعنا نرى أيهما أفضل - Kotlin أو Flutter - لتطوير الأجهزة المحمولة عبر الأنظمة الأساسية .
عوامل يجب مراعاتها عند مقارنة منصة Kotlin Multiplatform و Flutter
1. شعبية السوق
كل من Kotlin و Flutter هي أدوات مفتوحة المصدر ومجانية الاستخدام. لهذا السبب ، يبدي المطورون اهتمامًا بالعمل مع كليهما.
إذا قمت بفحص Google Trends ، فإن Flutter يظهر ارتفاعًا حادًا في شعبيته عند مقارنته بـ Kotlin. وبالمثل ، إذا قارنت Kotlin و Flutter بناءً على وجودهما على GitHub ، فإن الأول يحتوي على 28.3 ألف نجمة و 3.29 ألف مفترق بينما الأخير يحتوي على 69.5 ألف نجمة و 8.11 مفترق.
يشير هذا إلى أن Flutter تحصل على زخم كبير في السوق ، مقارنة بـ Kotlin.
2. منحنى التعلم
إذا كنت تفكر في منحنى التعلم كعامل مقارنة في معركة Flutter vs Kotlin الأصلية ، فإن الأخير يفوز بلا شك. والسبب وراء ذلك هو أنه قابل للتشغيل البيني مع Java وقد قدمت Google دورات تعليمية متنوعة في Kotlin قبل بضعة أشهر.
ولكن عند الحديث عن Kotlin و Flutter ، فإن السيناريو مختلف بعض الشيء. منصة Kotlin المتعددة هي نظام بيئي جديد ولديها موارد محدودة متاحة في السوق ، مقارنةً بـ Flutter.
لهذا السبب ، يفوز Flutter بالمنافسة.
3. الأداء
تتيح لغة Flutter للمطورين استخدام نفس اللغة لكل من احتياجات التخطيط والخلفية ، والاستمتاع بسرعة رسوم متحركة أعلى ، وغير ذلك الكثير.
ولكن بالمقارنة مع Kotlin ، فإنها لا تزال متخلفة كثيرًا في السوق. السبب الرئيسي وراء ذلك هو أن كود Kotlin يتم تجميعه بالضبط بالتنسيق مثل تنسيق النظام الأساسي المستهدف.
لذا ، إذا سألت أيهما أفضل kotlin أم الرفرفة؟ ثم الفائز في أداء الرفرفة مقابل kotlin هو الأخير .
4. تكامل أدوات ومكتبات الطرف الثالث
تعمل Kotlin متعددة المنصات ضمن الأنظمة الإيكولوجية للمنصة الأصلية بدلاً من بناء واحدة. لذلك ، يمكن لخبراء التطبيقات استخدام نفس الأدوات والمكتبات التي استخدموها أثناء التطوير المحلي ، بما في ذلك Jetpack Compose و SwiftUI . مما يعني في النهاية أنهم لا يحتاجون إلى البحث عن مكتبات وأدوات تابعة لجهات خارجية لربط الاتصال بالبيئة الأصلية.
ومع ذلك ، فهو مطلوب في حالة SDK عبر الأنظمة الأساسية لـ Flutter ، بشرط أن يكون في الأساس أداة تطوير واجهة المستخدم.
5. النطاق في تطوير الواجهة الخلفية
عندما يتعلق الأمر بالتفكير في خدمات تطوير البرمجيات الخلفية لمعرفة الفرق بين Kotlin و Flutter ، فإن الأول له ميزة على الأخير مرة أخرى.
بينما تتوافق لغة Flutter مع Firebase ، وهي منصة BaaS فعالة (Backend-as-a-Service) ، لضمان فرص خلفية فعالة ، فإن Kotlin multiplatform تمكن المطورين من كتابة التعليمات البرمجية الخلفية.
6. التركيز على منصات متعددة
في الوقت الحالي ، تأتي التطبيقات المصممة لاستهداف الأجهزة المحمولة (Android و iOS) والويب ضمن حالات استخدام Flutter . لا يمكن للمرء استخدامه لإثبات وجوده على tvOS و Android Auto و CarOS و WatchOS.
ومع ذلك ، لا يوجد مثل هذا القيد في حالة Kotlin multiplatform. إنه مصمم لتطوير مشاريع التطبيقات للأجهزة والأنظمة الأساسية بخلاف الهاتف المحمول أيضًا.
لذا ، فإن تفضيل Kotlin multiplatform يعد اختيارًا جيدًا لشركات خدمات تطوير تطبيقات الأجهزة المحمولة لإطلاق فكرة تطبيقاتهم على كل منصة وجهاز يمكن تخيله.
7. نطاق العمل والراتب
عامل مهم آخر يجب مراعاته أثناء النظر في مقارنة لغة Kotlin متعددة المنصات مقابل Flutter هو نطاق العمل والراتب.
وفقًا لمجتمع StackShare ، تم ذكر لغة برمجة Kotlin بين مجموعات التكنولوجيا من قبل 268 شركة و 210 مطور ، في حين تم إدراج منصة Flutter المتقاطعة كمكدس تكنولوجي من قبل 42 شركة و 146 مطورًا.
الآن ، بما أن Kotlin متعددة المنصات ليست منصة مستقلة. إنه امتداد تجريبي للغة الأم ويمكن للمرء استخدامه داخل بيئة Kotlin الأصلية ، ويعطي انطباعًا بأن لديها المزيد من خيارات العمل في السوق.
8. التوثيق ودعم المجتمع
بالمقارنة مع Flutter ، لا تزال Kotlin متعددة المنصات جديدة وفي الواقع ، في حالة تجريبية. وبسبب هذا ، فإن التوثيق والدعم المجتمعي للأخير متخلف إلى حد ما عن السابق. ولكن ، من المتوقع أن تتحسن الوثائق وكذلك قوة المجتمع بمجرد استقرار النظام متعدد المنصات ؛ زيادة تشجيع الجميع على استخدام Kotlin للتطوير عبر الأنظمة الأساسية .
الآن ، رأينا كيف يختلف Flutter و Kotlin من وجهات نظر مختلفة. من المهم معرفة مزايا وعيوب كليهما لتسهيل عملية الاختيار.
إيجابيات Kotlin Multiplatform
1. إنها SDK ، وليست إطار عمل
أكبر فائدة لاختيار Kotlin هي أنك لن تضطر إلى تغيير التطبيق الكامل. يمكنك البدء بوحدة أو ميزة واحدة ، وتحديد عملها ، ثم ترحيل الأجزاء الأخرى تدريجيًا.
2. سهل التعلم
نظرًا لأن Kotlin لديها بناء جملة مشابه تمامًا للغات البرمجة الأخرى مثل Swift و Java و Groovy و Scala ، فمن السهل جدًا تعلم اللغة والاستثمار في تطوير منصات Kotlin المتعددة.
3. إعادة استخدام منطق الأعمال
صحيح أنها ليست الأداة الأولى التي تمكن الفرد من فصل منطق العمل وواجهة المستخدم. تقدم العديد من أطر العمل عبر الأنظمة الأساسية مثل Xamarin و React Native هذه الخدمة.
ومع ذلك ، فإن الحقيقة التي تجعلها مختلفة عن الآخرين هي أنها تستخدم المنطق والمكتبات المشتركة أسفل طبقة واجهة المستخدم. هذا يجعل مطوري تطبيقات الهاتف المحمول يتفاعلون مع البيئة الأصلية - Swift و XCode لنظام iOS ، و JavaScript للويب ، و Kotlin و Android Studio لنظام Android - دون استخدام أي جسر وتقديم الرموز بطريقة أكثر أصالة.
4. تجربة واجهة المستخدم الأصلية
لا تطلب Kotlin Multiplatform من المطورين اتباع أي تعليمات لإنشاء واجهة المستخدم. إنه يمكّن مطوري تطبيقات واجهة المستخدم من العمل على مظهر التطبيق وسلوكه وأدائه تمامًا كما يفعلون في حالة التطبيق الأصلي.
5. أداء أعلى
تتمثل إحدى مزايا التفكير في إطار عمل Kotlin عبر النظام الأساسي لتطوير تطبيقات الأجهزة المحمولة في أن النظام متعدد المنصات يقوم بترجمة التعليمات البرمجية إلى نفس التنسيق الواضح مثل النظام الأساسي المستهدف. هذا يجعلها جيدة في الأداء مثل نظرائها الأصليين.
6. تعزيز المرونة وقابلية التوسع
يتيح للمطورين توسيع نطاق مشروع تطبيقاتهم والعمل دون استخدام أي جهاز افتراضي. وهذا يجعله خيارًا مثاليًا لتصميم تطبيق جوال مع التركيز على عوامل المرونة وقابلية التوسع.
ومع ذلك ، على الرغم من هذه المزايا الرائعة ، لا يزال الامتداد متعدد المنصات للغة Kotlin يكافح ليصبح المفضل للجميع بسبب بعض العيوب.
سلبيات تفضيل Kotlin Multiplatform
1. لا يزال في الحالة التجريبية
على الرغم من تقديمها في Kotlin 1.2 ، إلا أن SDK لم تصل بعد إلى إصدار 1.0 مستقر. لا يزال في حالة تجريبية. مما يجعل المطورين يترددون في اختياره لمشروعهم الكبير التالي.
2. يستغرق وقتا للاستيلاء على المعرفة
على الرغم من حقيقة أن Java و Kotlin لديهما قاعدة تعليمات برمجية مماثلة أو أنظمة أساسية وظيفية ، إلا أن هناك متطلبًا للمؤسسة لإعداد المطورين على Kotlin. على أساس أن تغيير الأنظمة الأساسية ربما لن يكون أسهل بدون معلومات مناسبة عن Kotlin. قد يتطلب ذلك من المنظمة التعامل مع التكاليف في إعداد الفريق لمنصة kotlin عبر.
3. المكتبات المحدودة المتاحة
حاليًا ، لا يتوفر سوى عدد قليل من المكتبات الأساسية مثل مكتبات تسلسل البيانات ومكتبات عميل HTTP في بيئة التطوير. على الرغم من دخول العديد من المكتبات مثل مكتبة DateTime إلى السوق مع ظهور Kotlin 1.4 ، خليفة Kotlin 1.3.60 ، إلا أنه من الصعب إنشاء تطبيقات بسلاسة وبدون عناء حتى الآن.
4. بحاجة إلى الإلمام بمكدس التكنولوجيا الأخرى
نظرًا لأن Kotlin متعدد المنصات لم يتم تصميمه ليكون بديلاً لكل واجهة برمجة تطبيقات (API) تركز عليها أي منصة ، فمن الضروري أن يكون لدى شركات تطوير التطبيقات معرفة أساسية بكل منصة وواجهة برمجة تطبيقات. يعد هذا مرة أخرى عيبًا في اختيار Kotlin بدلاً من Flutter وخيارات التطوير الأخرى عبر الأنظمة الأساسية ، مما يؤدي إلى اختيار الأشخاص للرفرفة دون التفكير في الموقع ، سواء كان ذلك من خلال تطوير الأجهزة المحمولة في تكساس لمساعدة أعمالهم من أجل الخير.
5. تكلفة تطوير أعلى
أخيرًا وليس آخرًا ، توفر Kotlin SDK العديد من الوظائف شبه الأصلية. لهذا السبب ، يتطلب إنشاء تطبيقات جوال تكلفة أعلى ، مما يجعلها في النهاية غير مناسبة لإنشاء نماذج أولية للتطبيق ونماذج MVP.
6. تقلبات في سرعة الترجمة
في حالات مختلفة من التطورات المذهلة الرائدة ، تعمل Kotlin بشكل عام أسرع من Java. وبالتالي ، تظل Java بشكل عام هي الفائز الواضح في هذه الحالة لتطوير تطبيقات واضحة. قد لا تعطي سرعة Kotlin السريعة تطبيقًا وظيفيًا نظيفًا.
مع تغطية هذا ، دعنا نلقي نظرة عامة على Flutter قبل التعمق في السوق لمعرفة علاقة Kotlin و Flutter متعددة المنصات.
مزايا التفكير في الرفرفة
1. مفتوح المصدر ومجاني للاستخدام
كل من Flutter ولغة البرمجة الأساسية Dart مفتوحان المصدر ومجانيان للاستخدام. يتيح ذلك للمطورين إمكانية عرض الوثائق ونشر استفساراتهم في منتدى المطورين المفتوح ، وفي النهاية تعلم التعليمات البرمجية وتنفيذها. حصل تطوير التطبيقات مع flutter في جميع أنحاء العالم على تقدير ، ويستفيد الناس من هذا التطوير من خلال اختيار شركة تطوير تطبيقات flutter في الولايات المتحدة الأمريكية وفلوريدا ونيويورك وما إلى ذلك ، لتحقيق أهداف أعمالهم.
2. وظيفة إعادة التحميل الساخنة
من أهم أسباب تفضيل وكالات تطوير تطبيقات الهاتف المحمول Google Flutter هي وظيفة إعادة التحميل السريع.
تسهل الوظيفة على أي شخص إجراء أي تغيير في الواجهة الخلفية وعرض الفرق في الواجهة الأمامية في وقت واحد. وبهذه الطريقة ، يمكنك بسهولة تحديد ما إذا كان التغيير يبدو مثالياً مع العناصر الأخرى للتطبيق أم لا.
3. عالية للتخصيص
من خلال الاستثمار في خدمات تطوير تطبيقات Flutter ، يحصل المطورون على فرصة لاستخدام أدوات مختلفة في بيئة التطوير. هذا يسهل عليهم إنشاء حلول تنقل أسرع وذات مظهر ومظهر مخصصين.
4. انخفاض التكلفة والجدول الزمني للتنمية
تتمثل إحدى الفوائد الرئيسية للتركيز على تطوير تطبيقات الهاتف المحمول flutter في أنه يوفر فرصًا لإنشاء تطبيقات شبيهة بالأصلية لكل من iOS و Android باستخدام قاعدة بيانات واحدة. الشيء الذي يجعل تكلفة إنشاء تطبيق Flutter للجوّال منخفضة بشكل كبير.
5. دعم Google Firebase
بفضل تسهيلات تكامل Firebase ، تمكّن التطبيقات التي تم إنشاؤها باستخدام Flutter المطورين من إضافة مرافق خلفية في بيئة التطوير.
6. مناسبة لإنشاء MVPs ونماذج التطبيقات.
توفر لغة البرمجة Flutter وظيفة إنشاء تطبيق لمنصتي Android و iOS في وقت وتكلفة وجهد أقل. هذا يجعل Flutter خيارًا مثاليًا لتطوير MVP وإنشاء نماذج أولية يمكن استخدامها لاختبار المياه أو جمع الأموال.
عيوب استخدام Flutter SDK
1. حجم التطبيق أكبر
العيب الأول في اختيار Flutter لخطة تطوير التطبيق هو أن حجم التطبيق كبير جدًا. مقارنةً بـ React Native و Xamarin ، فإن حجم ملف إصدار تطبيق "Hello World" في هذا الإطار يبلغ حوالي 6.7 ميغابايت.
2. تم الترميز في Dart
ليس هناك من ينكر حقيقة أن Dart سهل التعلم وأسرع في التنفيذ. ومع ذلك ، فهي ليست شائعة مثل أقرانها - Java و C # و JavaScript و C. وهذا يمنع منشئ تطبيقات flutter من تسجيل أفضل دورات برمجة السهام والوصول إلى صناعة Flutter.
3. عدم وجود مكتبات الطرف الثالث
مكتبات وحزم الطرف الثالث لها تأثير حاسم على تطوير البرمجيات لأنها تتيح بعض الميزات البارزة للمصممين. هذه المكتبات الخارجية مجانية بانتظام ومفتوحة المصدر ومُختبرة مسبقًا ويمكن الوصول إليها بسهولة. لا يجوز لك تعقب كل مكون تحتاجه للتطوير في الوقت الحالي.
نظرًا لأن لغة البرمجة Flutter جديدة لتطوير تطبيقات الأجهزة المحمولة ، فمن الصعب تعقب الحزم والمكتبات المجانية. الجهاز لا يزال في مرحلة التطوير وهو يتحسن. وبالتالي ، يجب عليك إما الانتظار لبعض الوقت أو اختيار بديل للتنمية طويلة المدى.
4. مشاكل مع iOS
هذا هو السبب وراء التأكيد على مطوري تطبيقات flutter على تنفيذها لنظام iOS. نظرًا لأن Google حريصة بشكل مباشر على إصلاح الأخطاء في فترة زمنية قصيرة ، فإن إنشاء تطبيقات Android على Flutter سريع وممتع.
ربما يكون آخر تحديث في لغة برمجة Flutter هو مظهر iOS المثالي للبكسل. تم تطوير إعدادات iPhone في إطار العمل لتمكين عناصر واجهة مستخدم Cupertino. ولكن استنادًا إلى iOS 10 و iOS 11 ، تم تحديث الميزات لاحقًا وتسليمها لبعض الوقت.
5. عدم وجود دعم إدارة كلمات المرور
استخدام أدواتك الخاصة غير الأصلية له عيوبه. على سبيل المثال ، هناك مشكلات في استخدام بعض ميزات Android و iOS. تواجه التطبيقات التي تم إنشاؤها باستخدام Flutter في الوقت الحالي مشكلات في حقول إدخال الإكمال التلقائي. يمكن ملاحظة ذلك بشكل خاص في حالة احتياجك إلى تنفيذ استخراج الأمان (كلمة المرور) من المسؤولين المدمجين أو الأطراف الثالثة.
من الفائز في معركة التنمية عبر المنصات؟
يعتبر كل من Kotlin متعدد المنصات و Flutter موثوقًا به ، ويهدف إلى تقليل الوقت اللازم للتواجد على كل من أنظمة Android و iOS ، ويدعمهما Google. إنهم يقدمون منافسة شديدة لبعضهم البعض ويصبحون أكثر قدرة على المنافسة مع كل إصدار.
في مثل هذا السيناريو ، يُنصح بالتشاور مع خبراء التنقل وتحليل متطلبات وأولويات التطبيق عبر الأنظمة الأساسية لتحديد أيهما أفضل - Kotlin vs Flutter.