سوف نشرح هنا
اولا
معرفه برمجه swift
ماهي Swift ؟
وثانيا
تفعيل حساب مطور iOS وعمل أول برنامج بلغة Swift
بدايه الموضوع منه اجزاء منقوله للامانه
ماهي Swift ؟
هي لغة برمجة تم تطويرها من قبل شركة Apple لعمل تطبيقات iOS و OSX، وتم إطلاق هذه اللغة في مؤتمر آبل العالمي للمطورين WWDC 2014
Swift تم تصميمها لتستبدل لغة آبل السابقة Objective-C وجعلها تدعم أطر العمل (frameworks ) الخاصة بآبل Cocoa و Cocoa Touch بالإضافة إلى الكم الهائل من الأكواد المكتوبة بلغة Objective-C لمنتجات آبل، سويفت تم تصميمها لتكون سريعة وأكثر مرونة وخصوصاً في التعامل مع الأخطاء.
تم بناء هذه اللغة بواسطة كومبايلر LLVM الموجود في XCODE 6 Beta وتعمل على نفس بيئة التشغيل الخاصة بـObjective-C مما يسمح لك بكتابة أكواد برنامجك بكل من Objective-C و Objective-C++ و Swift وفي آن واحد.
متى تم تطوير Swift ؟
بدأ العمل على تطوير لغة Swift في عام ظ¢ظ*ظ،ظ*م بواسطة Chris Lattner بالإضافة إلى عدد من المطورين الآخرين. تم جمع الأفكار والميزات الخاصة بلغة Swift من العديد من اللغات البرمجية ( Objective-C، Rust، Haskell، Ruby، Python، C#، CLU ) لا يكفي المجال لذكرها جميعاً.
تم إطلاق لغة Swift للمطورين في نسختها التجريبية في 2 June 2014، ولكن يجب أن نأخذ في البال بأنها مجرد نسخة تجريبية وليست نهائية أي أنه من الممكن أن يوجد اختلافات بينها وبين النسخ المستقبلية ولو كانت بسيطة.
ماهي مميزات Swift ؟
لغة Swift بشكل عام هي إعادة بناء للغة Objective-C لكن بالاعتماد على مفاهيم حديثة وأسلوب كتابة حديث، أثناء تقديمها من آبل تم وصفها بإنها ( Objective-C without the C ) أي أنها بقوة ومميزات Objective-C ولكن دون القيود التي تفرضها لغة C.
لغة Swift لا تحتوي على pointers على عكس سابقتها Objective-C التي كانت تستخدم الـpointers للإشارة إلى الـObjects، بالإضافة إلى أن استدعاء الـMethods في Objective-C كان يكتب بطريقة مشابهة للغة Smalltalk وتم استبدالها باستخدام الـdot notation و namespace system الخاصيتين الشائعتين والموجودتين في العديد من اللغات الحديثة المبنية على C مثل Java و C#.
لكن لغة Swift ما زالت تحافظ على العديد من المميزات الخاصة بلغة Objective-C مثل ارسال القيم للدوال بإسمها ( named parameters ) بالإضافة إلى protocols، closures، categories، ولكنها توفرهم بأسلوب كتابة حديث وأسهل للقراءة.
فلنأخذ هذا المثال على الـnamed parameters، ففي لغة Java لا تتوفر هذه الميزة ويتم استدعاء الدوال بهذه الطريقه
ولكن في لغة Objective-C يتم استدعاء الدوال بهذه الطريقةwindow.addNewControl("Title", 20, 50, 100, 50, true);
[window addNewControlWithTitle:@"Title"
xPosition:20
yPosition:50
width:100
height:50
drawingNow:YES];
- المتغيرات Variables وأنواعها Types والأنواع الاختيارية Optional Types
نجد تحت بيئتي كل من Cocoa و Cocoa Touch العديد من الكلاسات المشتركة التي تواجدت في مكتبة Foundation Kit، شملت هذه الكلاسات NString الخاصة بالتعامل مع النصوص (Unicode) و NSArray و NSDictionary الخاصة بالـCollection.
سمحت لنا لغة Objective-C بعمل Objects من هذه الكلاسات بسرعة ولكن عند الحاجة إلى تعديلها أو تغيير قيمها فلا يمكن عمل ذلك مباشرة وإنما نحتاج إلى استدعاء الدوال الخاصة بالـObject نفسه، فلنرى هذا المثال في Objective-C.
NSString *str = @"hello,";
str = [str stringByAppendingString:@" world"];
لاحظوا أننا لم نتمكن من إضافة كلمة world إلا باستخدام ميثود لعمل ذلك، لكن لنرى كيف يمكننا عمل ذلك في Swift.
var str = “hello,"
str += " world"
لو لاحظنا أثناء عملنا على مكتبات Foundation الخاصة بـObjective-C فإنها دائما ما توفر نسختين تقريباً من كل كلاس، نسخة Mutable يمكن إنشاؤها وتعديلها ونسخة Immutable يمكن انشاؤها والقراءة منها فقط. لغة Swift تتبع هذا النهج أيضاً ولكن بطريقتها المميزة والخاصة، فعلى سبيل المثال عند إنشاء ثابت فإننا نستخدم let قبله وهذا ينتج عنه ثابت من نوع Immutable ويمكن تطبيق هذه الفكرة أيضاً على الـObjects، وعند استخدام كلمة var فإنه ينتج لنا متغير أو Object من نوع Mutable، ولكن الـArrays تملك سلوكاً يتوسط النوعين، فعند تعريف Array باستخدام let لا يمكن تغيير حجم الـArray ولكن يمكن تغيير قيمه الداخلية.
أحد أهم المزايا في لغة Swift هي الـOption Type والتي تسمح لك بعمل Objects بدون أن تكون لها قيمة مما يقينا من الوقوع في أخطاء null-pointers. ولنقوم بعمل integer على سبيل المثال بهذه الطريقة كالتالي:
الشيء الذي تفقده لغة Swift هو الـAccess Modifier والذي يوضح لك إمكانية أو مجال استخدام المتغير داخل المشروع مثل لغة جافا على سبيل المثال فهي توفر public و protected و default وprivate ولكل منه حدود وصلاحيات.var optionalInteger: Optional
يتبع




.gif)



رد مع اقتباس



























.gif)

المفضلات