آموزش SWIFT 2 برای IOS و OSX ؟
سوئیف گزینهی پیشنهادی اپل برای کدنویسی برنامه های سیستم عامل IOS میباشد. این برنامه مکمل Objective-C است و هم اکنون بهترین زمان برای یادگیری این زبان می باشد. برنامه نویس هایObjective-C شباهت های زیادی بین ویژگی های این برنامه با سوئیف تجربه خواهند کرد. این شباهت عبارتند از: تایپ قوی، نبود نیاز به فایلهای Header و غیره. در این مقاله به آموزش Swift 2 میپردازیم. ایجاد یک محیط کدنویسی را با هم مرور کرده و نگاهی به اصول و مبانی این برنامه در مقایسه با Objective-C، جاوا اسکریپت و #C خواهیم داشت. در انتهای این مقاله، شما یک برنامه ساده ولی کامل با سوئیف 2.0 خواهید نوشت. Swift 2.0 شباهت های زیادی از نظر Syntax و کدها با Objective-C و #C دارد.

ایجاد محیط کدنویسی
درست مثل Objective-C، سوئیف به مک و Xcode احتیاج دارد. هم اکنون، نسخه ی 7.2 آخرین نسخه ی در دسترس است که از فروشگاه اپل قابل دانلود می باشد.

حجم دانلود 2.5 GB است و ممکن است زمان زیادی ببرد. وقتی دانلود کامل شد، شاخه ی Applications را باز کرده و Xcode را اجرا کنید. تمامی Componentهای مورد نیاز را نصب کنید. اگر نسخه های قبلی Xcode را نصب کرده اید حتما بروزرسانی کنید. حالا، شما برای کدنویسی با سوئیف آماده اید.
اصول زبانی وSYNTAX در سوئیف
بیایید نگاهی به Syntax این زبان برنامه نویسی داشته باشیم و آن را با سایر برنامه های مدرن مقایسه کنیم. به دلیل این که تمامی جوانب زبان سوئیف را نمی توان در یک پست ارائه کرد، من از یک مثال ساده برای نشان دادن مفاهیم اصلی آن استفاده می کنم.

می توانید کدهای این مقاله را به شکل کامل از لینک زیر دانلود کنید:
https://github.com/sitepoint-editors/Introtoسوئیف2
متغیر ها و ثابت ها(CONSTANTS)
برای تعریف یک متغیر در سوئیف از کلمه کلیدی var استفاده می شود:
var number = 1
در زبان های دیگر به این شکل است :
در OBJECTIVE-C:
int number = 1;
در #C:
var number = 1;
در جاوا اسکریپت:
var number = 1;
شباهت های زیادی بین این زبان ها با سوئیف وجود دارد؛ تنها تفاوت آن در نبود؛ می باشد. می توانید نوع متغیر را به شکل زیر تعریف کنید:
var number: Int = 1
یک متغیر از نوع String در سوئیف به شکل زیر تعریف کنیم:
var language = “سوئیف“
همانطور که مشاهده می کنید کدنویسی مرتب تر و شبیه به #C و جاوااسکریپت است. در Objective-C به شکل زیر این کار انجام می شود:
NSString *language = @”سوئیف“;
با سوئیف، نیازی به نشانه گر های حافظه (*) و پیشوند های متغیر ها به شکل @ نیست. اگر با فریم ورک اصلی کار می کنید، می توانید با استفاده از یک NSString یک متغیر String در سوئیف را ذخیره کنید. تمامی ثابت ها Constants را در سوئیف می توان با کمک let تعریف کرد:
let language = “سوئیف“
یا
let language: String = “سوئیف“
در سایر زبان ها، این تعریف به شکل زیر انجام می شود:
Obejctive-C
NSString *const language = @”سوئیف“;
#C:
const string language = سوئیف“;
کار با متغیر ها در سوئیف با زبان های دیگر فرقی نمی کند ولی روش ساده تری برای اضافه کردن متغیرها در String دارد:
var designers = 4
var developers = 4
var teamSize = “The team has \(designers + developers) members”
آرایه ها
در سوئیف، براحتی می توانید آرایه ها و لغت نامه ها را با [ ] ایجاد کنید و از طریق نوشتن کلمه یا شاخص آن ها، به Elementهای آنها دسترسی پیدا کنید.
var arr = [“first” , “second”]
در سایر زبان ها این کار به شکل زیر انجام می شود:
Objective-C
NSArray *arr = @[@”first”, @”second”];
#C:
var arr = new[] { “first”, “second” };
جاوااسکریپت
var arr = [“first” , “second”];
می توانید با استفاده از مقادیر شاخص به یک آیتم در یک آرایه دسترسی پیدا کنید:
var order = arr[0]
بعد از تعیین مقدار :
arr[0] = “zero”
این کد در جاوا اسکریپت و #C به همین شکل است ولی در انتها یک ؛ اضافه می شود.
Obejective-C
NSString *order = arr[0];
شما می توانید با استفاده از حلقه ی for item یک آرایه را تعریف کنید:
for item in arr {
// do something
}
در زبان های دیگر، تعریف بالا به شکل زیر انجام می شود:
Objective-C
for(NSString *item in arr)
{
// do something
}
#C:
foreach (var item in arr) {
// do something
}
جاوا اسکریپت
for (index = 0; index < order.length; ++index) {
//do something
}
برای اضافه کردن یک آیتم به آرایه، از عملگر += استفاده کنید:
arr += [“fourth”]
برای ضمیمه کردن یک تابع:
arr.append(“fifth”)
لغت نامه ها:
یک لغت نامه(Dictionary) در سوئیف با کمک تعیین نوع key و نوع مقدار آن ایجاد می شود:
var dict = Dictionary()
می توانید به شکل زیر به آن مقدار بدهید:
var dict = [“MEL”: “Melbourne”, “SYD”: “Sydney”]
در سایر زبان ها، تعریف بالا به شکل زیر خواهد بود:
Objective-C
NSDictionary *dict = @{
@”MEL” : @”Melbourne”,
@”SYD” : @”Sydney”
};
#C:
var dict = new Dictionary
{
{ “MEL”, “Melbourne” },
{ “SYD”, “Sydney” }
};
برای دسترسی به مقادیر آن از فرمان زیر استفاده کنید:
var entry = dict[“MEL”]
که در سایر زبان ها می شود:
Objective-C
NSString *entry = dict[@”MEL”];
#C:
var entry = dict[“MEL”];
برای تعیین یا اضافه کردن یک آیتم جدید :
dict[“PER”] = “Perth”
که در سایر زبان ها می شود:
Objective-C
dict[@”PER”] = @”Perth”
#C:
dict[“PER”] = “Perth”;
برای استفاده مجدد از یک Dictionary :
for (cityCode, cityName) in dict {
print(“\(cityCode) : \(cityName)”)
}
متغیر citycode در خود Key و متغیر cityname مقدار را قرار می دهد.
که در سایر زبان ها به شکل زیر انجام می شود:
Objective-C
for (id key in dict) {
NSLog(@”key: %@, value: %@”, key, dict[key]);
}
#C:
foreach(var item in dict) {
var cityCode = item.Key;
var cityName = item.Value;
}
حلقه ها
تا به این جای کار، روش ایجادآیتم ها را فراگرفتیم. حالا وقت ایجاد حلقه هاست.
در ابتدا، حلقه ی For:
for var number = 1; number < 5; number++ {
//do something
}
همان طور که انتظار می رود، تا زمانی که شرط مورد نظر انجام شود، مقدار دهی ادامه پیدا می کند. Objective-C و C# نیز به همین شکل هستند با این تفاوت که آن ها نوع متغیر را مشخص نمیکنند:
for number in 1…5{
//do something
}
سوئیف متغیر عددی ایجاد می کند و به شکل خودکار با تکرار مقدار مشخص، حلقه را ادامه خواهد داد. 1….5 یک برد عددی بسته است که شامل اعداد یک تا 5 می شود.
با آرایه ای که در بالا ایجاد کردیم می توانیم Cityها موجود در آرایه را تکرار کنیم:
for city in arr {
print(city)
}
سوئیف حلقه های while و repeat را مثل #C و Objective-C و جاوا معرفی می کند:
while number < 10
{
print(number)
number++
}
متغیر بعد از While از نوع Boolean است و کد وقتی که مقدار True باشد، اجرا خواهد شد. حلقه ی Repeat به همان شکل رفتار می کند ولی کد قبل از این که شرط انجام شود یکبار اجرا می شود:
var number = 9
repeat {
print(number)
number++
}
while number<10
شرطی ها
حلقه ها در کد نویسی کار های تکراری را انجام می دهند و ifو Switch جریان را کنترل می کنند.
نوشتن if در سوئیف می تواند با پرانتز و بدون آن انجام شود؛ از هر سبکی می توانید استفاده کنید.
if city == “MEL” {
print(“Melbourne”)
}
یا
if (city == “MEL”) {
print(“Melbourne”)
}
جملات if را می توان با else if یا else ادامه داد.
if city == “MEL” {
print(“Melbourne”)
} else if city == “SYD” {
print(“Sydney”)
} else {
print(“Perth”)
}
جملات Switch با فرمان Case ادامه پیدا می کنند. این یعنی که اگر Case نتیجه True داشته باشد و اجرا شود، Case بعدی بررسی نخواهد شد. مقدار پیش فرض الزامی است.
switch city {
case “MEL”:
print(“Melbourne”)
case “SYD”:
print(“Sydney”)
default:
print(“Perth”)
}
جمله ی Case میتواند مقادیر زیادی را در خود جای دهد که با (،) از هم جدا میشوند. با سوئیف می توانید از Nsstring در یک جمله استفاده کنید؛ این کار در Objective-C امکان پذیر نبود.
توابع
توابع موضوع بسیار گسترده ای در برنامه نویسی هستند. در این جا مفاهیم پایه ای لازم برای شروع کار با آن ها را به شما آموزش میدهیم.
یک تابع در سوئیف با کلمه ی کلید func و به شکل زیر تعریف می شود:
func sayName() {
print(“Patrick”)
}
پارامتر ها در پرانتز و با تعیین نام و نوع شان به شکل زیر در توابع مورد استفاده قرار میگیرند:
func sayName(name: String) {
print(name)
}
می توانید چندین پارامتر را با کمک ، از هم جدا کنید.
func sayName(name: String, lastName: String) {
print(“\(name) \(lastname)”)
}
ایجاد یک برنامه ی iOs با سوئیف
یادگیری یک زبان برنامه نویسی جدید با نوشتن کد و ایجاد یک برنامه بخوبی انجام می گیرد. پس بیایید با هم یک برنامه ی ساده iOs با کمک سوئیف ایجاد کنیم.
برنامه به TheMovieDB که یک API هست متصل شده و لیستی از فیلم ها جدید را درخواست می کند. سپس، نتایج Json را دانلود کرده و آنها را در Dictionary و آرایه ها قرار می دهد. نهایتا، این برنامه آن ها را به شکل یک جدول نمایش خواهد داد.
برای ساده تر شدن موضوع، مراحل المنت های UI به کد و کار با کنترلر های مختلف را آموزش خواهیم داد. هم چنین به شما نشان خواهیم داد سوئیف چگ