آموزش سوئیفت (Swift) — مجموعه مقالات مجله فرادرس
سوئیفت یک زبان برنامهنویسی چندمنظورهی چند پارادایمی و کامپایل شونده است که از سوی شرکت اپل توسعه یافته است. از این زبان جهت برنامهنویسی سیستمهای عامل تحت مالکیت این شرکت مانند iOS ،macOS ،watchOS و tvOS استفاده میشود. تا قبل از سوئیفت، زبان رسمی برنامهنویسی اپل Objective-C بود که سوئیفت در سال 2014 جایگزین آن شد. این زبان به وسیله فریمورک کامپایلر متن-باز LLVM ساخته شده و از نسخه 6 Xcode در IDE رسمی اپل جای گرفته است. در این مقاله به جمعبندی مجموعه مقالات آموزش سوئیفت مجله فرادرس پرداختهایم.
تاریخچه نسخههای مختلف
چنان که اشاره شد سوئیفت در کنفرانس WWDC اپل در سال 2014 معرفی شد و این زبان که در ابتدا تحت مالکیت اپل قرار داشت در ادامه و در نسخه 2 خود در سال 2015 تحت لایسنس آپاچی 2 به صورت متن-باز برای پلتفرمهای اپل و لینوکس عرضه شد.
از نسخه 3 به بعد ساختار سوئیفت دچار تحولات زیادی شد و پایداری کد در اولویت توسعه تیم اصلی قرار گرفت. نسخه 4 سوئیفت در سال 2017 چند تغییر در کلاسها و ساختارهای درونی آن معرفی کرد. کد نوشته شده در نسخههای قبلی سوئیفت را میتوان با استفاده از کارکرد مهاجرت داخلی Xcode به نسخه جدید ارتقا داد. نسخه 5 سوئیفت در مارس 2019 عرضه شده و یک اینترفیس باینری پایدار روی پلتفرمهای اپل ارائه کرده که به محیط زمان اجرای سوئیفت امکان مشارکت در سیستمهای عامل اپل را میدهد. کدهای این نسخه با نسخه 4 سازگار است.
فهرست مجموعه مقالات آموزش سوئیفت
ما در مجله فرادرس در طی هفتههای اخیر سری مقالاتی در خصوص آشنایی با این زبان برنامهنویسی ارائه کردیم که در این نوشته به جمعبندی آنها میپردازیم.
در بخش نخست مطالب آموزش برنامهنویسی سوئیفت برخی توضیحات کلی در مورد این سری مقالات آموزشی عرضه کردیم و توضیح دادیم که شامل چه مواردی میشود و نمیشود و هدف از این سری مقالات آموزشی چیست. همچنین با برخی مفاهیم مقدماتی برنامهنویسی مانند انواع داده و میزان مصرف حافظه آنها آشنا شدیم.
در بخش دوم سری مقالات آموزش برنامهنویسی سوئیفت به بررسی عمیقتر انواع داده که شامل: «انواع مقداری» (Value Types)، «انواع ارجاعی» (Reference Types) و همچنین اشارهگرها (Pointers) میشود پرداختهایم. همچنین توضیح دادیم که اشارهگرها احتمالاً یکی از دشوارترین مفاهیم برنامهنویسی محسوب میشوند و سعی کردیم آنها را به سادهترین زبان ممکن بیان کنیم.
در این مقاله نیز به ادامه معرفی مباحث مقدماتی زبان برنامهنویسی سوئیفت پرداختیم، اما تلاش کردیم در این مطلب شما را آماده سازیم تا برنامهای بنویسید که مسائل ریاضیاتیتان را حل کند. این مسائل ریاضیاتی از موارد بسیار ساده تا محاسبات مالی پیچیده را شامل میشد.
در بخش چهارم از سری مقالات آموزش برنامهنویسی سوئیفت با مفهوم تصمیمگیری در فرایند برنامهنویسی آشنا شدیم و نقش گزارههای شرطی در پیادهسازی این تصمیمگیریها را توضیح دادیم. همچنین با انواع حلقهها شامل حلقه while و حلقههای for-in آشنا شدیم.
در بخش پنجم سری مقالات آموزش سوئیفت توضیح دادهایم که برخی از گزارههای if کاملاً طولانی هستند و در صورتی که بخواهیم کارهای مختلف در یک گزاره if انجام دهیم، واقعاً حجم بالایی پیدا میکنند و خواندنشان دشوار میشود. در این نوشته به بررسی این موضوع و راهحلهای آنها پرداختهایم.
در این بخش از سری مطالب آموزش سوئیفت در مورد دو شیء جدید که نوع داده هستند و به عنوان کانتینرهایی به مجزا نگهداشتن کد و خوانایی هر چه بیشتر آن کمک میکنند صحبت کردهایم. همچنین توضیح دادیم چنین نیست که هر چه کد به اجزای بیشتری تقسیم شود، خوانایی آن افزایش مییابد، بلکه یک نقطه تعادل وجود دارد. کلاسها و struct-ها به ساختن این نقطه تعادل کمک میکنند.
در این بخش از سری مقالات آموزش سوئیفت تمرکز ما روی این بوده است که شما آن دانشی را کسب کنید که وقتی کلاسها را در برنامههای خودتان میبینید، ایدهای از چگونگی آغاز به کار با آنها داشته باشید. لذا در این نوشته به بررسی مفاهیم Initialization و De-initialization،Override و Reference Counting پرداختهایم.
در این بخش از سری مقالات آموزش زبان سوئیفت مفهوم تبدیل نوع به همراه باز کردن امن Optional-ها و کنترل دسترسی را مورد بررسی قرار دادهایم. به این منظور برخی از ابزارهایی که به طور مکرر در کدها استفاده میشوند را معرفی کردهایم.
در این نوشته از سری مقالات آموزش برنامهنویسی سوئیفت تلاش کردهایم مفاهیمی که در بخش قبلی مطرح شدند را کمی بازتر کنیم و یک بار دیگر به جمعبندی مفاهیم پروتکل و اکستنشن و همچنین زیرنویس میپردازیم، اما این بار کاربردهای عملی آنها در اپلیکیشنهای مختلف را بررسی میکنیم.
بخش دهم از سری مقالات آموزش برنامهنویسی سوئیفت یکی از بخشهای کلیدی آن محسوب میشود لذا شما تا به اینجا با اغلب مفاهیم تئوریک مقدماتی آشنا شدهاید و آماده هستید که برخی مفاهیم عمیقتر را یاد بگیرید. بنابراین ساختار کد، روش مدیریت تابعها، ثابتها و متغیرها، خوانایی کد، تقسیم کد به اجزای مختلف، نامگذاری متغیرها و اصول اساسی کدنویسی شامل پنهانسازی اطلاعات، تزویج سست و قانون دیمیتر را معرفی کردهایم.
در مطلب قبل در مورد خوانایی کد صحبت کردیم، اما فرصت کافی نشد که به همه موارد پرداخته شود، اما مبانی قضیه ارائه شد و از این رو زمانی که به کدهایی که قبلاً نوشتهاید رجوع کنید، احتمالاً به سرعت میتوانید دریابید که چه چیزی میخواستهاید بنویسید. این مبحث بزرگی است و شاید یک نوشته کامل را بتوان به بحث ساختار کد و خوانایی آن اختصاص داد. در نوشته قبل صرفاً به ارائه سرفصلهای آن پرداختیم و در این بخش به بررسی چند مفهوم دیگر سوئیفت پرداختهایم که شما را اندکی بیشتر با چارچوب کدنویسی در این زبان برنامهنویسی آشنا میکنند.
در این بخش از سری مقالات آموزش زبان برنامهنویسی سوئیفت به معرفی مفاهیم جدیدی مانند اسامی مستعار نوع میپردازیم که به خواناتر ساختن کد و کاهش اندازه کد کمک میکنند. همچنین با تفاوت Self و self به جز کوچک/بزرگ بودن حرف اول آشنا میشویم.
در این بخش از سری مقالات آموزش زبان سوئیفت در مورد ژنریک ها صحبت کردهایم. ژنریکها امکان ایجاد تابعهایی با قابلیت استفاده مجدد میدهند که میتوانند در انواع متفاوتی استفاده شوند. تنها نکته این است که این نوع باید با کاری که قرار است اجرا شود متناسب باشد.
در این بخش از سری مقالات آموزش برنامهنویسی سوئیفت به موضوع مدیریت خطا خواهیم پرداخت. بدین ترتیب نکات مهم مدیریت خطا، گزینه try و انواع آن، شیوه ایجاد خطا، و شیوه ایجاد دوباره آن آشنا میشویم.
در این بخش از سری مقالات آموزش برنامهنویسی سوئیفت به صورت فشرده برخی از مفاهیم مهم این زبان برنامهنویسی شامل استفاده از Enum به همراه ژنریک و بستارها را مرور کردهایم و با روش عملی استفاده از آنها در کدنویسی آشنا میشویم.
در این بخش از مقالات سوئیفت در مورد چند موضوع صحبت میکنیم که موجب میشوند کد سوئیفت کارایی بیشتری پیدا کند. بدین ترتیب به بررسی مفاهیم Getter و Setter و همچنین inout و lazy میپردازیم. در عین حال روش استفاده از آنها و بهترین کاربردشان را بررسی میکنیم.
در این بخش از سری مقالات آموزش زبان سوئیفت با مفهوم تست کردن اپلیکیشن و روشهای آن آشنا میشویم. تست کردن مهم است و ارتباط تنگاتنگی با رویکرد TDD دارد. TDD اختصاری برای عبارت «Test-driven Development» (توسعه تست-محور) است. توسعه تست-محور یک روش رایج برای نوشتن اپلیکیشن است و بهخاطرسپاری این فرمول نیز آسان است.
این بخش هجدهم و پایانی سری مقالات آموزش زبان سوئیفت مجله فرادرس محسوب میشود. شما با مطالعه هفده بخش قبلی این سری مقالات آموزش زبان برنامهنویسی سوئیفت با مبانی آن آشنا شدید. اینک و با مطالعه این بخش با موضوع معماری MVC میتوانید شروع به نوشتن عملی اپلیکیشنهای خود بکنید. این مقاله به این منظور نوشته شده است که شیوه استفاده مؤثر از معماری MVC را به شما آموزش دهد. MVC اختصاری برای عبارت «مدل، نما، کنترلر» (Model-View-Controller) است. همچنین، MVC در PHP به عنوان چارچوبی رایج برای توسعه وب کاربرد دارد.
جمعبندی
بدین ترتیب شما با مطالعه هجده مقاله فوق با ساختار زبان برنامهنویسی سوئیفت آشنا میشوید. سوئیفت جایگزینی برای زبان برنامهنویسی قدیمیتر اپل یعنی Objective-C است که در آن از مفاهیم نظری برنامهنویسی مدرن استفاده شده و ساختار سادهتری دارد. سوئیفت به طور پیشفرض از اشارهگرها و دیگر عوامل دسترسی نا ایمن برخلاف Objective-C بهره نمیگیرد. همچنین ساختار شبیه Smalltalk برای ساخت فراخوانیهای متد با سبک نمادگذاری نقطهای و سیستم «فضای نام» (namespace) دارد که برای برنامه نویسان مسلط به زبانهای شیءگرا مانند جاوا یا سی شارپ آشناتر است. ضمناً در آن از پارامترهای با نام استفاده میشود و مفاهیم کلیدی زبان Objective-C مانند پروتکلها، بستارها و دستهبندیها حفظ شده و در اغلب موارد با نسخههای مدرنتری جایگزین شده که امکان استفاده از این مفاهیم در ساختارهای زبان مانند انواع شمارشگر (enums) را فراهم میسازد.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامه نویسی Swift (سوئیفت) برای برنامه نویسی iOS
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- آموزش برنامه نویسی سوئیفت (Swift): متغیر، ثابت و انواع داده – بخش اول
- شروع برنامهنویسی با زبان سوئیفت در اوبونتو
==