React native vs kotlin: كل ما تحتاج إلى معرفته

نشرت: 2019-01-25

في الوقت الحاضر تتغير التكنولوجيا بسرعة كبيرة ويتم تحديث الإصدارات الأحدث من أطر التطوير يومًا بعد يوم وتتيح إمكانية القيام بشيء جديد! من أجل تلبية احتياجات العمل المتقلبة بسرعة ، هناك العديد من المنصات والتقنيات المختلفة. هنا ، سأناقش نظامين أساسيين للبرمجة لتطوير تطبيقات Android و iOS.

يعتبر React Native عضوًا من الجيل التالي في عائلة React ، وهو عبارة عن نظام أساسي لـ JavaScript يوفر تطوير تطبيقات هجينة لنظامي التشغيل iOS و Android جنبًا إلى جنب مع Javascript بينما تعد Kotlin الآن اللغة الرسمية الثانية لتطوير تطبيقات Android بعد Java. لذلك يمكنك استخدامه كبديل لـ Kotlin.

نحن نشهد ارتفاعًا في طلبهم من العام الماضي من حلول StackOverflow و Github.

دعونا نرى ما الذي يلتصق وما ينزلق.

رد فعل أصلي:

React (إطار عمل لبناء تطبيقات الويب والجوال باستخدام جافا سكريبت) + أصلي (المكونات الأصلية المستخدمة بواسطة جافا سكريبت) = React Native. إنه إطار عمل JavaScript لكتابة تطبيقات جوال حقيقية وأصلية لنظامي التشغيل iOS و Android ، بالإضافة إلى إعادة استخدام التعليمات البرمجية عبر تطبيقات الويب والجوال. يتيح إطار العمل هذا للمطورين إنشاء تطبيقات محمولة أصيلة حقًا لجافا سكريبت الكلاسيكية المفضلة لديهم طوال الوقت وإنشاء واجهة مستخدم غنية للهاتف المحمول من مكونات توضيحية.

لاستخدام التفاعل الأصلي للتطوير ، تحتاج إلى تثبيت برنامج NodeJs () و NPM (Node Package Manager = لتثبيت التبعيات الأصلية) والقيام بمزيد من التكوينات.

الايجابيات: -

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

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

يتم توفير جسر RCT بواسطة NPM ، والذي يعتمد على النظام الأساسي. لذلك يتم تنفيذ الكود على كلا النظامين الأساسيين.

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

رد فعل أصلي مقابل مخطط تدفق kotlin

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

الترحيل من الويب إلى الهاتف المحمول: إذا كان هناك من يفكر في التبديل إلى تطوير الأجهزة المحمولة من الويب فسيكون التبديل أسهل لأن JavaScript شائع لتطوير الويب ونفس الشيء بالنسبة للجوال. لذلك ، إذا أراد مطور Reach JS ترحيل تطبيق الويب الخاص به إلى نظام أساسي للجوّال ، فيمكنه القيام بذلك بسهولة شديدة لأن منصة React تظل كما هي بالنسبة له على النظام الأساسي للجوّال أيضًا. أو حتى العكس.

سلبيات:-

المعرفة المطلوبة مسبقًا: العيب الرئيسي هو أن المطور يجب أن يكون لديه معرفة مناسبة بجافا سكريبت ثم دمجها مع الكود الأصلي للتطبيقات المختلطة. سيتعين عليهم أيضًا ترميز مكوناتهم المخصصة كما هو الحال في Android باستخدام ملفات XML.

أقل أمانًا: يكون React أقل أمانًا عندما يتعلق الأمر بأمن النوع A مثل الخدمات المصرفية عبر الهاتف المحمول حيث تشتهر مكتبة JavaScript بهشاشتها. لذلك يجب توخي الحذر بشكل خاص للتأكد من أن الشفرة المستخدمة وكتابتها ليست ضارة أو قذرة. يجب أن يولي المبرمجون اهتمامًا إضافيًا عند استخدام الوظائف الإضافية لجهات خارجية.

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

كوتلن:

برمجة kotlin

تم تطوير Kotlin بواسطة JetBrains ، وهي لغة برمجة جديدة تعمل على Java Virtual Machine والتي يتم تجميعها إلى كود مصدر JavaScript أو تستخدم البنية التحتية لمترجم LLVM. أصبحت الآن لغة رسمية لـ Android Studio ، التي أقرتها Google.

الايجابيات:

يوفر الكود في Kotlin قاعدة تعليمات برمجية دقيقة وموجزة ولكن بوضوح ، ولديه فرص أقل للأخطاء خاصة بالنسبة لمؤشرات Null وله كود ثابت في الإنتاج ، وأسطر أقل من التعليمات البرمجية لنفس الوظيفة التي تكتبها في جافا.

كود جافا:

 public class clearBridge { public static double calculate(double a, String op, double b) throws Exception{ switch (op) { case "add": return a+b; case "substract": return ab; case "multiply": return a*b; case "divide": return a/b; default: throw new Exception(); } } }

كود Kotlin:

 fun calculate(a: Double, op: String, b: Double): Double { When (op) { "add" -> return a - b "substract" -> return a + b "multiply" -> return a * b "devide" -> return a / b else -> throw Exception() } }

الصيانة والدعم الموثوق به: يتم توفير Kotlin من قبل شركة JetBrains العظيمة التي تشتهر بتقديم أفضل أدوات IDE. لذلك ليس هناك شك في أنها ستتجاهل توفير دعم الأداة لـ Kotlin. وهو مدعوم على العديد من IDEs بما في ذلك Android Studio. تعمل JetBrains على إطار عملها Ktor لإنشاء خوادم وعملاء غير متزامنين مع النظام المتصل.

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

لغة موثوقة: قبل ظهورها في عام 2011 ، مرت Kotlin بمراحل اختبار متعددة قبل الإصدار النهائي. والعمل على Android والتعامل مع الإصدارات المختلفة هو أكبر ألم للمطورين ، موثوقية Kotlin هي نعمة.

التوافق مع الكود الحالي: يعمل Kotlin بشكل جيد مع Java نفسها ، بما في ذلك جميع الأدوات والأطر التي توفر نظامًا بيئيًا غنيًا. في النهاية ، سيتم تجميع الكود الذي سيعيد رمز البايت إلى Java Virtual Machine وهو نظام أساسي مستقل. إذا قمت بتشفير دالة في Kotlin واستدعيتها من ملف java (في Android Studio) ، فسيتم تنفيذها لأنه سيتم تحويلها أخيرًا إلى رمز بايت.

سلبيات:

الفرق بين kotlin و java

منحنى التعلم: هناك بعض الاختلاف بين Java و Kotlin ، لذلك سيكون هناك منحنى تعليمي للمطورين الذين يرغبون في التبديل إلى Kotlin. ستكون هناك حاجة إلى التدريب المناسب والوقت المناسب لذلك. سيتغير بناء الجملة للإعلان عن المتغير ، وتحديد وظيفة وما إلى ذلك.

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

استنتاج

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

من ناحية أخرى ، توصي Google باستخدام Kotlin باعتباره IDE القياسي لتطوير Android. Kotlin قابلة للتشغيل البيني بنسبة 100٪ مع Java وتوفر توافقًا مع الإصدارات السابقة مع مشاريع Java و Android. Kotlin هي لغة على مستوى المؤسسة تهدف إلى حل مشاكل التنمية في العالم الحقيقي.