مزايا استخدام Swift Over Objective-C

نشرت: 2021-10-05

تهدف مقالة إلى تسليط الضوء على الجمال الرئيسي الذي تتمتع به لغة البرمجة Swift .

هنا أود أن أبدأ من اختبار سريع.
سؤال: ما هي لغة البرمجة التي تُكتب عليها تطبيقات iOS؟

أ) C #

ب) الهدف- ج

ج) سويفت

على ما يبدو ، إذا اخترت كل ما سبق - فأنت محق بنسبة 100٪ ، فكل اللغات المذكورة مفيدة عندما يتعلق الأمر بتطوير iOS. رغم ذلك ، لن يكون من الغريب أن نذكر أن كل منهم مختلف بسبب "فجوة الأجيال" الضخمة التي تفصل بينهما.

... تنص ويكيبيديا على أن كل شيء بدأ من Objective-C ، عندما أطلق براد كوكس وتوم لوف جد لغات البرمجة في أوائل الثمانينيات. تم الاستحواذ عليها أولاً بواسطة NeXT ، ثم في النهاية بواسطة Apple ، عندما استخدموا OpenStep في عام 1996 في OS X. منذ ذلك الوقت ، تم تطوير جزء كبير من نظام تشغيل Apple على Objective-C ، وكان هذا هو أعلى ارتفاع.

ومع ذلك ، وكما هو معروف ، فإن كل شيء جيد يومًا ما يصنع ذكرى رائعة ، وهذا بالضبط ما يحدث لـ Objective هذه الأيام. أنا متأكد بنسبة 100٪ أنك سمعت عن تطبيقات مثل 2048 game أو Wordpress iOS أو متصفح FireFox iOS. من المثير للدهشة أن لغة ترميز iOS التي تمت كتابة هذه التطبيقات عليها ليست موضوعية - لكنها سويفت.

سويفت. لغة برمجة تطبيقات iOS.

(كانت هذه المعلومات مستحقة وقت نشر المقالة - فبراير 2017 ؛ قد يتم تطبيق بعض التغييرات لاحقًا)

في إطار رغبتها في إذهال العملاء ، تمكنت Apple من تجاوز توقعات الجميع - لا سيما المطورين الذين تفاجأوا عندما تم طرح لغة برمجة تطبيقات iOS الجديدة في أوائل يونيو 2014 في هذا العالم. بعد 3 سنوات من تطوير Swift ، لم يتوقف المبرمجون عن العمل عليه - فقد تم بالفعل إجراء العديد من التحديثات ، مع إصدار أحدث إصدار من Swift 4.0 في سبتمبر 2016. يمكن تطبيق الكود المكتوب بهذه اللغة مفتوحة المصدر على macOS و iOS و watchOS و tvOS و (!) Linux.
بعد عامين حتى الآن ، اتخذت Swift مكانة قوية بين جميع لغات تطوير الأجهزة المحمولة الحالية. تدعي نتائج استبيان Stack Overflow Developer أن Swift احتلت المرتبة الأولى في أكثر اللغات المحبوبة والمطلوبة ، وترتيب Objective-C باعتبارها أكثر اللغات رعباً هذا العام (2019).

تم النظر في جميع النقاط ، هل هناك أي مزايا تجعل Swift تبرز من بين الحشود؟ هل هناك فرصة لخوض مسابقة Swift vs Objective ؟

اقرأ أيضًا: 6 اختلافات بين تطوير iOS و Android: الأساطير مقابل الواقع

Swift مقابل Objective-C

خيول للدورات كما يقولون ، ولكن هناك القليل من الجمال الذي لا يمكن إنكاره أن لغة البرمجة Swift من Apple. إليك مجموعة من الإيجابيات والسلبيات المقدمة بيانياً للدراسة.

Swift مقابل Objective-C

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

أسباب استخدام Swift

على الرغم من كل ما هو مذكور من قبل ، تختار العديد من شركات التطوير في جميع أنحاء العالم التمسك بخيار لغة Swift ، ولا تعد Mind Studios استثناءً هنا. لماذا نفضل Swift في مقارنة Objective-C؟ هناك عدد قليل من العوامل التي يسهل أخذها في الاعتبار.

سويفت ...

1) ... أحدث.

يبلغ عمر Objective-C بالفعل 33 عامًا وكان في الأصل استمرارًا للغة C. في تناقض صارخ ، جاء Swift كلغة منفصلة عن Apple لأنه أصبح من الصعب على الشركة دعم وتطوير Objective. خلال 3 سنوات من وجودها ، تم تطوير Swift بنشاط ، وسيتم تسليم الإصدار الجديد 4 قريبًا.

2) ... منظف.

مع إضافة بناء جملة جديد إلى Swift ، يبدو أنه من الأسهل قراءة التعليمات البرمجية وتجميعها وفحصها أكثر مما كانت عليه في Objective-C.

3) ... أقل استهلاكا للوقت.

نظرًا لأن Swift يتطلب كتابة سطور أقل من التعليمات البرمجية ، فإنه ، بشكل مناسب ، يستغرق الحد الأدنى من الوقت لإنهاء نطاق عمل إنشاء التعليمات البرمجية.

4) ... أقل استهلاكا للذاكرة.

في وقت سابق في Objective-C ، إذا كان هناك رابط كائن - فسيستغرق الأمر بعضًا من ذاكرة الوصول العشوائي ؛ عندما تم تنفيذ Swift - تركت Apple البرمجة الموجهة للكائنات بمفردها ، وتحولت إلى الهياكل. نتيجة لذلك ، تم تقليل مقدار بيانات نوع المرجع وفئات SDK ، وتغير لنوع القيمة الآن. أدى ذلك إلى استخدام ذاكرة أكثر كفاءة في Swift.

5) ... أسرع.

Swift أسرع من Obj-C

يدير Swift الامتثال للبيانات بشكل أسرع من Obj-C ؛ مثل Objective-C ، فإنه يستخدم مترجم LLVM لإنشاء كود أصلي محسن للنظام الأساسي الذي يعمل عليه. في Swift ، تتم إعادة كتابة الكثير من المصفوفات على هيئة هياكل ؛ اعتادت بعض الفئات أن تكون كائنات في وقت سابق في Objective-C ، مما أدى إلى إبطاء عملية عمل الكود ؛ على الرغم من أن تجميع الكود في Xcode IDE يستغرق وقتًا أطول ، إلا أن الكود يعمل بشكل أسرع على Swift بعد كل شيء.

6) ... ليس فقط موجهًا لنظام iOS.

كما ذكرنا سابقًا ، تم بالفعل تكييف Swift مع Linux ، وقد قام بعض المبرمجين بالفعل بتجربته على Android أيضًا. في تجربتنا ، يمكن كتابة جزء الخادم بسرعة أيضًا.

7) ... لغة مفتوحة المصدر.

من الواضح أنه يمكن قراءة جميع الوثائق الفنية - مما يعني بشكل أساسي أنه يمكن استخدامها لصالح منتجات التطبيق المستقبلية. وأكثر من ذلك - يمكن لجميع المطورين المستعدين اقتراح قراراتهم ، حيث أنشأت Apple تطبيق Jira لتتبع الأخطاء في Swift.

8) ... لغة آمنة من النوع.

على عكس Objective-C ، الذي لم يكن كذلك. وفقًا لبيانات Stack Overflow ، فإن أمان النوع ليس مفيدًا فقط لوقت التشغيل ، ولكن أيضًا لوقت الترجمة. لا يزال Swift لا يتحقق من الأنواع في وقت التشغيل ، ولكنه يقوم بذلك أثناء الفحص في وقت الترجمة مما يساعد بالفعل في القضاء على الكثير من الأخطاء.

9) ... لغة بها تعدادات وأنواع اختيارية ومفاتيح يدوية.

... مما يعني أنه أكثر أمانًا للاستخدام. لطالما كانت Objective-C لغة موجهة للكائنات ، ولكن مع بعض الهياكل المكتوبة لـ Swift ، أدت في النهاية إلى تقليل حوادث الاصطدام وزيادة السلامة. مرة أخرى ، أضافت Apple أولاً أنواعًا اختيارية ، وثانيًا ، التعدادات بدلاً من القيم الصحيحة. تساعد الأنواع الاختيارية في التحقق من وجود الكائن داخل الكود ، مما يسمح بتجنب حدوث أعطال إضافية. بمساعدة عمليات التعداد والمفاتيح للكائنات ، تأمل Apple في جعل تجربة البرمجة أكثر سحرًا.
مثال على تعدادات Swift:

مثال على التعدادات:
مثال على Swift enums ومع ذلك ، في Obj-C سيكون
 enum CompassPoint { case north case south case east case west }
 typedef NS_ENUM(NSInteger, CompassPoint) { north, south, east, west };

مفاتيح:
في كود Swift يشبهون في المقابل ، هنا مفاتيح Obj-C
 switch character { case "a", "A": print("The letter A") case "b": print("The letter B”) default: print("Other letter") }
 switch (compassPoint) {
 case north: NSLog(@"North"); break; case south: NSLog(@"South"); break; case east: NSLog(@"East"); break; case west: NSLog(@"West"); break; default: break; }

مثال على النوع الاختياري ، موجود فقط في Swift
فك اختياري:
 var test: String? if let test = test { print(“\(test) is unwrapped now ??”) } guard let test = test else { print(“test is nil ??”) return } print(“\(test) is unwrapped!”)
#### 9) ... ترقية بلا توقف. كما ذكرنا سابقًا ، فإن 4 إصدارات من Swift الجديدة قد شاهدت العالم بالفعل ، وفي هذه الأيام ننتظر Swift 3.1 ليتم تسليمها في أسرع وقت ممكن. بالإضافة إلى ذلك ، تشير الشائعات إلى أن [Swift 4.0] القادم (https://themindstudios.com/blog/swift-4-vs-swift-3-differences/) سيكون له توافق مع الإصدارات السابقة - مما يعني أن التكامل من إصدارات اللغات الأقدم 3.1 ، 3.0 ، وما إلى ذلك ستصبح أسهل في المستقبل.

اقرأ أيضًا: أنماط العمارة لتطوير iOS

كل شيء سريع جيد.

مميزات استخدام Swift على Objective-C

سيكون ادعاءً غير مدعوم إذا حاول المرء التحدث عن التكنولوجيا قبل إعطائها حقًا. لذا ، بالحكم على التجربة التي نمتلكها في Mind Studios بالفعل - فإن Swift مناسب جدًا للعمل معها.
العديد من أحدث تطبيقاتنا مكتوبة بسرعة ، بما في ذلك:

  • Gadh iOS - تطبيق يثبت استشارات الهاتف والفيديو عبر الإنترنت مع محاميك
  • Stern Fit - شبكة اجتماعية للرياضيين المتحمسين
  • TapToTrip - مسار سهل ومخطط السفر
  • LIT - قارئ EPUB الإلكتروني المتميز
  • Unagrande YogaClub - دروس فيديو يوجا للأفراد المتحمسين
    تتضمن جميع التطبيقات المذكورة سابقًا تقنيات مختلفة ، والتي يمكن تنفيذها بسهولة على Swift.

هل ترغب في اكتشاف المزيد حول مجموعة أدوات تطوير الواقع المعزز.

تلخيصها - ما هي اللغة التي يجب أن تلتزم بها؟

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

بقلم ماكس مشكوف ويوري سميرنوف وإلينا بيسارابوفا.

هل تحتاج إلى استشارة تقنية لاستخدامها في مشروعك؟ ترك لنا خطا!