آموزش کامل برنامه نویسی macOS با زبان سوئیفت

بدون نیاز به داشتن مک یا هر دستگاه اپلی! + انجمن پشتیبانی



18 فصل

1- نصب پیش نیاز ها و آشنایی اولیه (مقدماتی تا متوسط)

خب همانطور که قبلا هم گفتیم محیط توسعه یعنی جایی که در آن کد هایمان را مینویسیم فقط بر روی سیستم عامل مک اجرا میشود.

اما این مورد مشکلی برای ما بوجود نمی آورد، زیرا میتوانیم به کمک vmware مک را بر روی ویندوز نصب کنیم.

با ما همراه باشید و ویدیو رو بصورت کامل مشاهده کنید.

حالا وقت نصب Xcode بر روی مک هستش! لینک دانلود xcode توی جلسه قبل هستش. اگر دانلود نکردید میتونید از اونجا دانلود کنید.

بعد دیدن این جلسه دیگه میتونیم وارد برنامه نویسی macOS بشویم.

xcode یک برنامه بسیار بزرگ و با امکانات بسیار زیاد است و آشنا شدن با آن زمان میبرد، در این قسمت از آموزش یک پروژه جدید ایجاد میکنیم و وارد دنیای برنامه نویسی macos میشویم.

2- مباحث پایه ای سوئیفت (مقدماتی تا متوسط)

حالا وقت این است که کمی سوئیفت یاد بگیریم! بعد از دیدن این سر فصل میتوانید تغییر و پیشرفت را حس کنید.

تو این ویدیو با انواع متغیر ها و ثابت ها مثل اعداد صحیح، اعشاری، رشته و کاراکتر و انواع عملگر ها مثل جمع و منها آشنا میشویم.

در این بخش با آرایه ها و دیکشنری ها آشنا می شویم که با کمک آن ها می توانیم اطلاعات در تعداد بالا را در یک متغیر ذخیره کنیم.

از اینجا می توانید کد های مربوط به این جلسه را دانلود کنید.

دستورات شرطی از مهم ترین دستورات اکثر زبان های برنامه نویسی هستند. در این ویدیو با دستورات شرطی if و switch آشنا میشویم.

از حلقه ها در برنامه نویسی macos زمانی استفاده میکنیم که بخواهیم یک کار را با تفاوت های جزئی به تعداد بالا انجام بدهیم.

برای مثال چاپ کردن اعداد از 1 تا 100

در قسمت آخر از فصل سوئیفت مقدماتی میخواهیم با تابع ها آشنا بشویم و چند تمرین ساده با هم انجام بدهیم. این ویدیو بهتون کمک میکنه ذهنتون مثل یک برنامه نویس عمل کنه.

3- IBAction, IBOutlet و فونت (مقدماتی تا متوسط)

برای این که بتوانیم از object هایی که در برنامه میسازیم (مثل label و button) در کد هم استفاده کنیم باید با iboutlet و ibaction آشنا شویم.

این درس بسیار مهم است. میتوان گفت برنامه نویسی کردن برای macos به دو زمان تقسیم میشود. یک قبل از آشنایی با ibaction و iboutelt دو بعدش! پس این ویدیو را با دقت زیاد مطالعه کنید.

اضافه کردن فونت به برنامه خیلی آسونه، اما بسیار بسیار مهمه!

تاکید بسیار بسیار زیادی دارم حتما تو برنامتون از یک فونت خوب و مشتی استفاده کنید و به هیچ وجه از فونت پیش فرض استفاده نکنید!

4- مباحث تکمیلی سوئیفت (مقدماتی تا متوسط)

Optional یک قابلیت بسیار جالب در زبان Swift هست که به برنامه نویس ها کمک میکند کد امن تری بنویسند.

این بخش ممکن است در نگاه اول کمی سخت و گنگ باشد اما به مرور زمان برایتان جا می افتد.

استراکچر ها یک نوع داده هستند که امکان ذخیره کردن چند نوع داده ساده تر را در خود دارند.

برای مثال ساختاری درست میکنیم برای ذخیره کردن اطلاعات یک دانشجو یا دانش آموز و اسم و عکس آن فرد را ذخیره میکنیم.

این ویدیو را با دقت زیاد ببینید.

از Class ها هم برای ذخیره کردن مجموعه ای از داده ها استفاده میشود. که از این نظر شباهت زیادی به درس قبلیمون یعنی Struct ها دارد. اما چند تفاوت بسیار مهم و اساسی با هم دارند، که باعث ایجاد کاربرد های متفاوت این دو میشوند.

این ویدیو را هم با دقت بسیار زیاد ببینید.

این ویدیو از آن دسته از ویدیو هایی هست که هر جایی نمیتوانید پیداش کنید، یک مقایسه ریز به ریز و جزعی همراه با نتیجه گیری برای درک کامل تفاوت بین struct و class

این ویدیو به شما کمک میکند که درک بهتری از برنامه نویسی شی گرا و پروتکل گرا در سوئیفت داشته باشید.

کلا یادگیری مفاهیم مربوط به شی گرایی کمی زمان بر هستند. اما ما سعی کردیم با ساختن ویدیو های جدا همراه با مثال، مفاهیمی مثل type casting را قبل از سر و کله زدن در پروژه واقعی به طور کامل برایتان تفهیم کنیم.

protocol در واقع یک چارچوب یا مجموعه ای از قوانین است، در تعریف یک پروتکل یک Blueprint یا طرح کلی را تعریف میکنیم، و بعد این طرح کلی را به یک کلاس یا استراکچر میدهیم. حالا این کلاس و استراکچر ملزم به تبعیت از این طرح هستند.

در این ویدیو بصورت کامل با پروتکل آشنا میشیم.

5- نوتیفیکشن (مقدماتی تا متوسط)

ارسال نوتیفیکشن در برنامه از بخش های بسیار جذاب و تقریبا ساده است. یعنی شما میتوانید با کپی کردن کد ها و عوض کردن آن در پروژه های مختلف از آن استفاده کنید.

ما در این ویدیو این کد ها را با هم یاد میگیریم و چند نکته مهم را با هم بررسی میکنیم.

نوعی دیگر از نوتیفیکشن ها، نوتیفیکشن های داخل برنامه ای هست، یعنی برای مثلا شما به صفحه ای دیگر یک پیام میفرستید که با توجه به پیام دریافتی در صفحه جدید تغییراتی درونش اعمال شود.

6- انواع View و Controller (مقدماتی تا متوسط)

در این جلسه هدف ما آشنایی با Window برنامه و اجزای درون آن، مثل View و Title است.

همچنین با کلاس NSWindowController هم آشنا خواهیم شد.

خب میرسیم به یکی از مهم ترین ویدیو های این فصل یعنی بخش View Controller

هر صفحه جدیدی که به کاربر نشان میدهیم معمولا یک View Controller مخصوص به خود دارد. که شامل ویژگی ها و اطلاعات خاص مخصوص به آن صفحه هست. در این ویدیو با این موارد آشنا میشویم. همچنین در مورد کلاس NSViewController هم بیشتر یاد میگیریم.

هر ویو کنترلر از زمان ساخته شدن آن و وارد حافظه شدن تا پایان کار آن و پاک شدن از حافظه چند مرحله را طی میکند که هر یک از این مراحل با اجرای توابعی همراه هستند.

که با آشنایی بهتر با این توابع میتوانیم برخی عمل ها را در جای مناسب خود انجام دهیم.

خب حالا وقتشه که یک مرحله ریز تر بشویم و وارد یکی از جزئیات یک View Controller یعنی View بشیم.

بعد با method ها و property های مربوط به کلاس NSView آشنا میشیم و به صورت programmatically یک View شخصی سازی شده طراحی میکنیم.

تعداد بسیار زیادی از برنامه هایی که با آن کار میکنیم. صفحه خود را به دو بخش تقسیم میکنند. و هر بخش شامل یک ViewController جدا هستند.

در این ویدیو قصد داریم که به شما یاد بدهیم چطوری صفحاتی با دو بخش کاملا متفاوت درون برنامه ایجاد کنید.

و همچنین با استفاده از NSNotification که قبلا با آن آشنا شدیم اطلاعات بین صفحات جابجا میکنیم.

نوع خاصی از Split View ها که بسیار نیز کاربردی هستند، Split View With Sidebar است. که میتوانید آن را در اکثر برنامه ها مشاهده کنید.

برای مثال خود Xcode, Notes, App Store, Setting و...

Split View در macos

در این جلسه قصد داریم ساخت یک Split View همراه با Sidebar را به شما آموزش دهیم

تا حالا شده که نیاز پیدا کنید یک ویو کنترلر رو درون یک ویو کنترلر دیگه ایجاد کنید؟

یعنی یک ابجکتی وارد یک ویو کنترلر کنید و بتونید محتوایه درون اون ابجکت رو داخل یک ویو کنتر دیگه طراحی کنید.

تو این ویدیو یه ویو یاد میگیریم که چطوری با استفاده از container view این کار رو به راحتی انجام بدیم.

TabViewController معادل UITabBarController در ios است.

شما میتونید چند button در صفحه اصلی قرار بدید و با توجه به اون View درونش را عوض کنید.

7- Auto Layout (مقدماتی تا متوسط)

یکی از مواردی که خیلی توی توسعه اپ و سایت مهمه، ریسپانسیو بودن برنامه شماست.

ریسپانسیو بودن برنامه شما به این معنا است که ظاهر برنامه شما در سایز های مختلف صفحه نمایش به درستی کار کنه و المنت ها در جایه مناسب باشند.

8- User Default (مقدماتی تا متوسط)

بعضی مواقع نیاز هست شما اطلاعاتی رو در حافظه ذخیره کنید. مثلا تم dark یا light اپ. یا توضیحاتی که در اول نصب اپ نشان میدهید (یعنی تو یک حافظه مشخص کنید که قبلا این اطلاعات رو نشون دادید یا نه) برای این موارد که اطلاعات خیلی ساختار مرتبط و در واقع ساده ای دارند از user default استفاده میکنیم. اگر اطلاعاتی که میخوایم ذخیره کنیم حجم بیشتری داشته باشند و حتی دارای ارتباط باشند از core data استفاده میکنیم.

9- WebView (مقدماتی تا متوسط)

در بعضی مواقع ما نیاز داریم که بتونیم یک صفحه از یک وبسایتی رو نشون بدیم. در این ویدیو با استفاده از یک WebView این کار را انجام میدهیم.

در این جلسه ادامه جلسه قبل رو جلو میبریم و با وب ویو بیشتر آشنا میشویم.

10- Event Handling (پیشرفته و حرفه ای)

یکی از مواردی که توی برنامه نویسی برای اپ های دسکتاپ خیلی مهمه. تشخیص ایونت ها یا رویداد های مربوط به موس هست.

یعنی بفهمیم موس در کجای صفحه هست یا مثلا روی چه آبجکتی کلیک شده یا حتی چند بار کلیک شده.

با استفاده از gesture recogniser میتونیم یک حسگر به هر آبجکتی که میخوایم اضافه کنیم. و اتفاقاتی که برای اون شی میوفته رو بفهمیم.

تشخیص کلیک کردن روی کیبورد از دیگر مواردیه که تو برنامه نویسی دسکتاپ خیلی مهمه. مثلا میتونید با کلیک کردن رویه اینتر یک فرم را تایید کنید و ...

11- Core Data (پیشرفته و حرفه ای)

Core Data چارچوبی است که به کمک آن میتوانیم با پایگاه داده ارتباط بگیریم و داده ها را در آن ذخیره، بروزرسانی و یا حذف کنیم.

در این فصل طی چندین ویدیو به صورت کامل با core data آشنا میشویم.

اما هدف ما در این ویدیو آشنایی با ساختار Core Data و بعد ساخت یک Entity و اضافه کردن Attribute به آن است.

و بعد میرویم سراغ انواع جنریت کردن کلاس های یک Entity و با Model ها آشنا میشویم.

وقتی بخواهیم با یک دیتابیس کار کنیم ساده ترین و پایه ای ترین عملیات هایی که باید یاد بگیریم عملیات Crud هست.

حالا crud چی هست؟

crud مخفف create, read, update و delete است. یعنی ما در این ویدیو میخواهیم یاد بگیریم که چطوری این ۴ عملیات را روی دیتابیس با کمک core data انجام دهیم

اگر بخواهیم یک دیتابیس حرفه ای طراحی کنیم، نیاز داریم که بین entity ها رابطه هم ایجاد کنیم.

یعنی اگر entity ای داریم برای دوره ها، و entity دیگری برای video ها؛ دو دو باید به هم وصل باشند تا مشخص کنیم هر ویدیویی که ساخته میشود مربوط به کدام دوره است. یا هر دوره ای چه ویدیوهایی دارد.

Core Data پیاده کردن این روابط را برای ما بسیار ساده کرده است. که در این ویدیو به بررسی آن میپردازیم.

در خیلی از موارد ما تمام داده های موجود در پایگاه داده را نیاز نداریم.

مثلا نیاز داریم که محصولاتی که تخفیف ویژه دارند، یا محصولاتی که فقط برای خانم ها یا آقایان هستند را از پایگاه داده بگیریم.

یعنی یسری از داده هایی که فیلتر شدن و مرتب شدن رو از دیتابیس بکشیم بیرون.

تو این جلسه با Predicate و Sort Descriptor آشنا میشویم که این موارد را برای ما ممکن میکنند.

حالا وقتش رسیده که یکم کدهامون رو مرتب کنیم و یاد بگیریم چطوری حرفه ای تر از core data استفاده کنیم.

همچنین یاد میگیریم اکثر کدهامون رو داخل model ها ببریم.

یکی از مشکلاتی که ممکن با اون مواجه بشوید اضافه کردن core data به یک پروژه ای هست که قبلا آن را بدون core data تعریف کرده اید.

یعنی هنگام تعریف پروژه تیک use core data را نزده اید و در طول توسعه پروژه به core data نیاز پیدا کرده اید.

در این ویدیو یاد میگیریم که چطوری این مشکل را حل کنیم.

12- کار کردن با نقشه و MapKit (پیشرفته و حرفه ای)

تو قسمت اول این فصل یک رابط کاربری ساده رو طراحی میکنیم و یه Map به برناممون اضافه میکنیم.

تا بحال براتون سوال پیش اومده که چطوری یک آدرس رو با چند نقشه مختلف مثل گوگل مپ یا ویز باز میکنید؟

هر نقطه از کره زمین با یک طول و عرض جغرافیایی یا longitude و latitude میتوان مشخص کرد. در واقع همه نقشه ها از همین coordinate ها استفاده میکنند. در این جلسه هم قرار است ما با این coordinate ها و نحوه کارشون آشنا بشیم.

در این جلسه میخواهیم با کلیک کردن رو هر نقطه از صفحه، با گرفتن coordinate اون نقطه به آدرس واقعیش و اطلاعات مربوط به اون نقطه برسیم.

13- برنامه نویسی برای TouchBar (پیشرفته و حرفه ای)

touchbar از امکانات جالب برخی از محصولات اپل هست که در بالای کیبورد نواری لمسی وجود دارد که برخی امکانات را در اختیار کاربران قرار میدهد.

در این جلسه یاد میگیریم که چطوری touchbar را وارد برنامه کنیم و درونش label و button و view قرار بدیم.

تو این جلسه با Slider و Color Picker آشنا میشیم و یاد میگیریم چطوری با استفاده از Color Picker رنگ صفحه نمایش رو عوض کنیم.

سگمنت کنترل این امکان را به ما میدهد که بتوانیم از بین چند گزینه یک یا چند مورد را انتخاب کنیم.

و با استفاده از popover میتوانیم صفحه ای جدید درون touchbar ایجاد کنیم.

14- بهبود رابط کاربری (پیشرفته و حرفه ای)

NSSearchField همانطور که از اسمش نیز مشخص هست برای فیلدی هست که برای جستجو بکار میرود

همچنین یه پاپ آپ خیلی ردیف زیر SearchField ایجاد میکنیم.

استفاده از popover در برنامه ها اجباری نیست، اما اگر در جای مناسب استفاده شود ظاهر بسیار زیبایی به برنامه شما میده.

مثلا موقع معرفی اولیه برنامه که کاربرد هر دکمه را توضیح دهید و ...

popover در macos popover در macos

احتمالا تا بحال از منوهای بالایه صفحه اپ های مختلف در مک استفاده کرده اید.

معمولا موارد زیادی از تنظیمات و امکانات برنامه ها (بخصوص برنامه های با امکانات زیاد) در منو بار قرار میگیرد.

در این ویدیو به شما یاد میدیم که چطوری یک منو بار فارسی بسازید.

toolbar ها را میتونیم در بالایه window controller خودمون اضافه کنیم و یسری از موارد ثابت در صفحات مختلف را درون اون قرار بدیم.

alert ها خیلی پر کاربرد هستند و از آن ها میتوانیم برای هشدار ها و تایید گرفتن استفاده کنیم.

alert در macos

15- نمایش مجموعه ای از داده ها: Collection View, Table View, Grid View (پیشرفته و حرفه ای)

تا بحال شده نیاز داشته باشید حجم زیادی داده مشابه را در اپ خود نشان دهید؟ مثلا لیستی از محصولات دارید که میخواهید آن را در اپ نشان دهید. بنظرتون منطقیه که برای هر محصول یه بخش (section) طراحی کنیم؟

به دو دلیل این کار اصلا منطقی نیست.

  1. وقت زیادی برای طراحی هر بخش باید بگذاریم. ممکن است نیاز به طراحی ۱۰۰ بخش برای محصولات داشته باشیم!
  2. ممکن است ندانیم به چه تعداد بخش برای محصولات نیاز داریم. ممکن است برای یک کاربر ۱۰ و برای دیگری ۱۰۰ محصول نیاز داشته باشیم!

برای حل این مشکل ما از Collection View یا View های مشابه استفاده میکنیم. در این حالت یکبار یک حالت را طراحی میکنیم (مثلا سکشنی برای محصول) و بعد به تعداد مورد نیاز آن را صدا میزنیم. و هم حجم کد کمتری میزنیم هم مشکلی با تعداد متفاوت برای کاربر های مختلف نداریم.

تو این جلسه ادامه جلسه قبل رو دنبال میکنیم و یاد میگیریم چطوری کلیک کردن رو هر سلول یا در واقع select و deselect کالکشن ویو رو تشخیص بدیم.

تو این ویدیو یاد میگیریم چطوری cell های جدید به کالکشن ویو اضافه کنیم،حذف کنیم و بین سلول ها جابجا بشیم.

حالا که با کالکشن ویو آشنا شدیم وقتش بریم سراغ table view.

این دو مورد تا حدی شبیه بهم هستند و در برخی اوقات میتوانند کار هم را بکنند.

تو این ویدیو یک تیبل ویو رو وارد برنامه میکنیم و باهاش آشنا میشیم.

تو این قسمت میخوایم چندین عکس را داخل برنامه اضافه کنیم، و بعد بصورت داینامیک عکس ها را از داخل برنامه بکشیم بیرون و هم خود عکس و هم اسم آن را در اپ نمایش بدیم.

تو این قسمت میخوایم یک Split View Controller وارد برنامه کنیم. که در یک طرف آن Table View و در طرف دیگر آن جایی برای نمایش عکس در سایز بزرگ بسازیم.

بعضی مواقع نیاز داریم چند نوع object مختلف مثل button و label و ... در کنار هم داشته باشیم. به عکس زیر توجه کنید.

Grid View در macos

در این جلسه یاد میگیریم که چطوری همچین حالتی رو (که در برنامه setting اپل به وفور یافت میشود) پیاده کنیم.

16- HTTP Requests & JSON (پیشرفته و حرفه ای)

به یکی از مهم ترین فصل های این دوره رسیدیم که تو این فصل قراره با api ها جیسون و کلی چیز دیگه آشنا بشیم.

ازونجایی که این فصل خیلی مهمه حتما پیشنهاد میکنم با دقت اون رو بررسی کنید.

همچنین تلاش کردم تو این فصل از بخش های پایه ای شروع کنم و هر موضوع رو در یک ویدیو جدا براتون توضیح بدم.

جیسون یک فرمت استاندارد برای ارتباط بین کلاینت و سرور و... که در این ویدیو بصورت کامل در موردش صحبت میکنیم. همچین براتون یک مقاله تخصصی آماده کردم که میتونید بخونیدش:

مقاله ای در مورد جیسون

جیسون چیست؟

خب حالا که فهمیدیم جیسون چی هستش میخواهیم نحوه پارس کردن جیسون از یک متن رو در Swift و Xcode یاد بگیریم.

حالا میرسیم به یکی از مهم ترین ویدیو های این فصل یعنی کار کردن با api ها

تو این ویدیو یک api رو کال میکنیم و جیسونی رو که ازش میگیریم پارس میکنیم.

همچنین با متود ها و ارسال پارامتر هم آشنا میشیم.

پستمن ابزاری بسیار ارزشمند برای کار با api ها هست. که به کمک آن میتوانیم api هارو تست و بررسی کنیم.

شما در اکثر پروژه هایی که قراره بصورت آنلاین باشه از برنامه نویس بکند یک کالکشن پستمن دریافت میکنید (یا برنامه های مشابه) و با کمک آن میتوانید لیست api ها پروژه، پارامتر های لازمشون و سایر موارد رو در برنامه پستمن در کنار هم داشته باشید.

17- Cocoa Pods (پیشرفته و حرفه ای)

فرض کنید شما به عنوان یک برنامه نویس یک کدی زدید که خیلی کاربردی هست و توی خیلی از پروژه ها میشه ازش استفاده کرد.

مثلا یه کدی زدید تاریخ میلادی میگیرد و به فارسی تاریخ رو برمیگرداند. یا مثلا یک چارت رسم میکند که توی خیلی از پروژه ها میتونه مفید باشه.

حالا شما میخواهید این کد رو با دولوپر های دیگه به اشتراک بذارید. چطوری میتونید این کد رو همراه با توضیحات و نحوه نصب به بقیه هم بدید؟

این کد شما باید جایی باشه که تمام دولوپر ها بتونن به راحتی بهش دسترسی داشته باشن.

یا اصلا شما به عنوان یک دولوپر میخواهید پکیجی پیدا کنید که مثلا parse کردن جیسون رو براتون آسون کنه.

کجا میتونید دنبال این پکیج یا ابزار های مشابه بگردید؟

اکثر زبان های برنامه نویسی دنیا راهی برای نصب کردن پکیج های آماده را دارند.

یعنی جایی وجود دارد که برخی از دولوپر ها پکیج ها و کداشون رو قرار بدن و بقیه دولوپر ها هم بیان دنبال پکیج هایی که میخوان بگردن.

در زبان برنامه نویسی Swift ما میتونیم این کار را با استفاده از Cocoapods انجام بدیم.

تو این فصل با این پلتفرم آشنا میشویم و چند تا از پکیج های خیلی کاربردی و قویش رو رویه یک برنامه مک تست میکنیم.

تو فصل قبل با http request ها آشنا شدیم و یاد گرفتیم که چطوری با api ها کار کنیم.

تو جلسات قبلی با استفاده از Session ها این کار رو میکردیم ولی تو این جلسه میخواهیم یک پکیج خیلی محبوب و پر طرفدار رو بهتون معرفی کنیم که با استفاده از اون کار کردن با api ها بسیار آسون میشه.

حتما پیشنهاد میکنم این ویدیو رو با دقت ببینید که خیلی بکارتون میاد.

parse کردن جیسون سختی های خاص خودش رو داره.

مخصوصا وقتی که بخواهیم با unwrap کردن متغیر ها هم سر و کله بزنیم.

با استفاده از این پکیج میتونیم خیلی راحت جیسون رو parse کنیم و ازشون استفاده کنیم.

احتمالا تا به حال تو برنامه های مختلف انیمیشن های جذابی دیدید که خواستید توی برنامه های خودتونم داشته باشیدش.

Lottie یک وبسایت خیلی بزرگ و معروفه که این امکان رو به کاربر ها میده که بتونن از تعداد زیادی انیمیشن آماده مثل اینیمشن های لودینگ، موفقیت، شکست و هر چیزی که فکرش میکنید رو در اختیارتون قرار میده.

همچنین جالبه بدونید Lottie برای ios، اندروید و وب هم هست.

یکی از مواردی که احتمالا در طول پروژه ها با آن ها روبرو میشوید این است که ممکن است شما نیاز به رسم چارت پیدا کنید.

این پکیج کار شما رو خیلی آسون میکنه.

تو این بخش میخوایم با پکیج Charts آشنا بشیم و یکی از چارت هایش به اسم Bar Chart رو یاد بگیریم.

تو جلسه قبل با پکیج Charts و Bar Chart آشنا شدیم.

تو این جلسه قصد داریم یکی دیگه از چارت های این پکیج، یعنی Pie Chart را بررسی کنیم.

18- سایر مباحث، کاربردی (پیشرفته و حرفه ای)

تو این ویدیو یاد میگیریم چطوری یک cursor (اشاره گر) شخصی سازی شده تو محیط اپ ایجاد کنیم.

اگر دقت کرده باشید بعضی برنامه ها مثله اپ استور (سمت چپ بخش ساید بار) ویویی تو برنامشون دارن که بصورت مات طراحی شده و پشتش تا حدی معلومه! یعنی میتونید زیر ویو رو بصورت مات ببینید.

قبلا همچین ویویی رو توی Split View With Sidebar دیده بودیم، تو این جلسه میخوایم بهتون یاد بدیم چطوری با استفاده از NSVisual Effect View همچین چیزی رو درست کنید.

در این ویدیو به شما یاد میدیم چطوری دکمه close برنامتون رو کاستوم کنید.

تو این ویدیو بهتون یاد میدیم چطوری برای TouchBar برنامه نویسی کنید.

4 فصل

1- نصب پیش نیاز ها و آشنایی اولیه (مقدماتی تا متوسط)

خب همانطور که قبلا هم گفتیم محیط توسعه یعنی جایی که در آن کد هایمان را مینویسیم فقط بر روی سیستم عامل مک اجرا میشود.

اما این مورد مشکلی برای ما بوجود نمی آورد، زیرا میتوانیم به کمک vmware مک را بر روی ویندوز نصب کنیم.

با ما همراه باشید و ویدیو رو بصورت کامل مشاهده کنید.

حالا وقت نصب Xcode بر روی مک هستش! لینک دانلود xcode توی جلسه قبل هستش. اگر دانلود نکردید میتونید از اونجا دانلود کنید.

بعد دیدن این جلسه دیگه میتونیم وارد برنامه نویسی macOS بشویم.

xcode یک برنامه بسیار بزرگ و با امکانات بسیار زیاد است و آشنا شدن با آن زمان میبرد، در این قسمت از آموزش یک پروژه جدید ایجاد میکنیم و وارد دنیای برنامه نویسی macos میشویم.

2- مباحث پایه ای سوئیفت (مقدماتی تا متوسط)

حالا وقت این است که کمی سوئیفت یاد بگیریم! بعد از دیدن این سر فصل میتوانید تغییر و پیشرفت را حس کنید.

تو این ویدیو با انواع متغیر ها و ثابت ها مثل اعداد صحیح، اعشاری، رشته و کاراکتر و انواع عملگر ها مثل جمع و منها آشنا میشویم.

در این بخش با آرایه ها و دیکشنری ها آشنا می شویم که با کمک آن ها می توانیم اطلاعات در تعداد بالا را در یک متغیر ذخیره کنیم.

از اینجا می توانید کد های مربوط به این جلسه را دانلود کنید.

دستورات شرطی از مهم ترین دستورات اکثر زبان های برنامه نویسی هستند. در این ویدیو با دستورات شرطی if و switch آشنا میشویم.

از حلقه ها در برنامه نویسی macos زمانی استفاده میکنیم که بخواهیم یک کار را با تفاوت های جزئی به تعداد بالا انجام بدهیم.

برای مثال چاپ کردن اعداد از 1 تا 100

در قسمت آخر از فصل سوئیفت مقدماتی میخواهیم با تابع ها آشنا بشویم و چند تمرین ساده با هم انجام بدهیم. این ویدیو بهتون کمک میکنه ذهنتون مثل یک برنامه نویس عمل کنه.

3- IBAction, IBOutlet و فونت (مقدماتی تا متوسط)

برای این که بتوانیم از object هایی که در برنامه میسازیم (مثل label و button) در کد هم استفاده کنیم باید با iboutlet و ibaction آشنا شویم.

این درس بسیار مهم است. میتوان گفت برنامه نویسی کردن برای macos به دو زمان تقسیم میشود. یک قبل از آشنایی با ibaction و iboutelt دو بعدش! پس این ویدیو را با دقت زیاد مطالعه کنید.

اضافه کردن فونت به برنامه خیلی آسونه، اما بسیار بسیار مهمه!

تاکید بسیار بسیار زیادی دارم حتما تو برنامتون از یک فونت خوب و مشتی استفاده کنید و به هیچ وجه از فونت پیش فرض استفاده نکنید!

17- Cocoa Pods (پیشرفته و حرفه ای)

فرض کنید شما به عنوان یک برنامه نویس یک کدی زدید که خیلی کاربردی هست و توی خیلی از پروژه ها میشه ازش استفاده کرد.

مثلا یه کدی زدید تاریخ میلادی میگیرد و به فارسی تاریخ رو برمیگرداند. یا مثلا یک چارت رسم میکند که توی خیلی از پروژه ها میتونه مفید باشه.

حالا شما میخواهید این کد رو با دولوپر های دیگه به اشتراک بذارید. چطوری میتونید این کد رو همراه با توضیحات و نحوه نصب به بقیه هم بدید؟

این کد شما باید جایی باشه که تمام دولوپر ها بتونن به راحتی بهش دسترسی داشته باشن.

یا اصلا شما به عنوان یک دولوپر میخواهید پکیجی پیدا کنید که مثلا parse کردن جیسون رو براتون آسون کنه.

کجا میتونید دنبال این پکیج یا ابزار های مشابه بگردید؟

اکثر زبان های برنامه نویسی دنیا راهی برای نصب کردن پکیج های آماده را دارند.

یعنی جایی وجود دارد که برخی از دولوپر ها پکیج ها و کداشون رو قرار بدن و بقیه دولوپر ها هم بیان دنبال پکیج هایی که میخوان بگردن.

در زبان برنامه نویسی Swift ما میتونیم این کار را با استفاده از Cocoapods انجام بدیم.

تو این فصل با این پلتفرم آشنا میشویم و چند تا از پکیج های خیلی کاربردی و قویش رو رویه یک برنامه مک تست میکنیم.

جامع ترین دوره برنامه نویسی macos به زبان فارسی

در این دوره که کامل ترین دوره برنامه نویسی macos در ایران هست میخواهیم شما را به یک برنامه نویسی حرفه ای مک تبدیل کنیم، در این دوره هر چیزی که فکر کنید برای برنامه نویسی macos نیاز داریم را یاد میگیریم.

بخشی از چیز هایی که در این دوره یاد میگیریم:

  1. آموزش کامل زبان برنامه نویسی Swift
    1. متغیر ها و ثابت ها و انواع داده ها و optional
    2. انواع دستورات شرطی مثل if و switch
    3. آرایه ها و دیکشنری ها
    4. انواع حلقه های for و while
    5. تابع ها و closure
    6. enum
    7. struct
    8. شی گرایی شامل کلاس ها پروتکل ها و ...
    9. اکستنشن
  2. آموزش کار با Xcode
  3. آموزش کامل Cocoa برای طراحی ظاهر برنامه
    1. NSViewController
    2. NSLabel
    3. NSButton
    4. Split Window
    5. IBOutlet
    6. IBAction
    7. Auto Layout
    8. Table View
    9. Collection View
    10. و ...
  4. آموزش postman برای کار با api ها
  5. آموزش کار با کتابخانه های معروف مثل Lottie ، Alamofire، SwiftyJSON، و Charts
  6. آموزش ساخت اپ وبسایت سوئیفت آکادمی

آیا این دوره پروژه محور است؟

بله صد در صد! هدف ما آماده کردن شما برای بازار کار است، بصورتی که با کمترین چالش هنگام استخدام در شرکت ها مواجه شوید.

برخی از طراحی هایی که در آموزش هامون پیاده میکنیم:

popover در macos popover در macos bar charts در macos alert در macos pie charts در macos
map kit در macos menu bar در macos core data در macos notification در macos popover در macos web-view در macos table view در macos

fateme

11 آبان 1402

من تازه شروع کردم خیلی تجربه تو برنامه نویسی نداشتم ولی شیوه تدرسش مدرس رو دوست دارم و خوب میفهمم

saba

09 آبان 1402

من یمقدار برنامه نویسی بلدم بنظرتون لازمه دوره مقدماتی رو ببینم؟

میلاد خط شب

اگر سوئیفت بلد نیستید بله حتما باید ببینید

استاد روزبه

26 اردیبهشت 1401

کی ضبط این آموزش تموم میشه؟

میلاد خط شب

سلام و درود خدمت اقا روزبه. ضبط آموزش به پایان رسیده فقط ساخت اپ سوئیفت آکادمی مونده. میتونید دوره رو تهیه کنید.

دوست داریم نظرتون رو بدونیم ❤


سوالات متداول

خیر! هیچ اجباری به داشتن مک بوک یا آی مک و یا ... نداریم. شما با یک دستگاه ویندوزی هم میتونید این دوره رو مشاهده کنید.

در محیط توسعه ای که کد میزنیم شبیه ساز هایی وجود دارند که میتوانیم برنامه های خود را روی آن ها تست کنیم. یعنی برای مثال برنامه ای که نوشتیم را روی imac 2021 یا macbook pro 2023 تست میکنیم.

البته اگر مک داشته باشید سرعت اجرای برنامه برای شما بسیار مناسب تر است.

دوره macos سوئیفت آکادمی شامل بخش مقدماتی تا متوسط، حرفه ای و پیشرفته و آموزش ساخت اپ سوئیفت آکادمی هست. برای همین بعضی از کاربر ها ممکنه فقط نیاز به یکی از بخش های اون داشته باشند.

حالا میخوام تو این جا توضیح بدم در مورد این که هر بخش شامل چه چیز هایی هست. البته بصورت دقیق و خیلی کامل میتونید تو بخش ویدیوها ببینید هر لایسنس شامل چه ویدیوهایی هست.

توضیحات هر لایسنس:
  • مقدماتی تا متوسط: این لایسنس شما رو وارد دنیای برنامه نویسی macos میکنه. و مفاهیم پایه ای را از صفر شروع میکنه و شما رو به تسلط خوبی روی زبون برنامه نویسی سوئیفت میرسونه. و در نهایت شما رو به حدی میرسونه که میتونید یک اپ ساده رو با Cocoa (فریم ورک طراحی رابط کاربری) بسازید.
  • پیشرفته و حرفه ای: ازین جا به بعد لول کار رو میبریم بالا و میریم سراغ مواردی که برای طراحی یک اپ در مارکت لازم هست رو یاد میگیریم و با کلی پکیچ خفن آشنا میشویم.
  • ساخت اپ سوئیفت آکادمی: تا حالا این جمله رو شنیدید؟ "تا یک پروژه کامل نزنی خیلی چیزارو یاد نمیگیری!" یا این جمله "که برای پیدا کردن کار نیاز به نمونه کار هست!" این لایسنس برای حل مشکل شماست! ما توش اپ سایت سوئیفت آکادمی را میزنیم.
  • کل دوره + مدرک: ما برای رفاه حال شما هر بخش رو بصورت جدا هم گذاشتیم اما برای کسی که میخواد تبدیل به یک برنامه نویس کامل به اصطلاح همه فن حریف بشه باید تمام این فصل هارو ببینه و برای همین این لایسنس پیشنهاد اصلی ما به شماست 🔥
    که همچنین دارای تخفیف ۳۰ درصدی هم هست یعنی اگر لایسنس های بالا رو به صورت جدا بخواهید تهیه کنید باید ۳۰ درصد هزینه بیشتری بدید.

بله! ما از کیفیت آموزش های خود مطمئن هستیم!

این اطمینان از کیفیت آموزش ها به ما این امکان را میدهد که آموزش ها را تضمین کیفیت و ضمانت بازگشت وجه کنیم.

یعنی در صورت عدم رضایت دانشجو 70 درصد از هزینه آموزش بازگشت داده خواهد شد.

توضیحات بیشتر را میتوانید در اینجا بخوانید.

در اینجا میتونید رزومه میلاد خط شب رو ببینید. مقالات و فعالیت های گسترده مدرس در حیطه برنامه نویسی سوئیفت را ببینید.

سر فصل ها و ویدیو ها بصورت کامل در سایت تعریف شده است. میتوانید حساسیت بالای مدرس در آموزش ها و جزئیات هر جلسه را بصورت کامل ببینید.

همچنین بیش از 2 ساعت از این آموزش بصورت رایگان در اختیار شما قرار دارد، شما با دیدن این مقدار از آموزش میتوانید به کیفیت بالای آموزش ما و فن بیان مدرس پی ببرید.

خیر! این دوره اصلا نیازی به دانشگاه رفتن ندارد.

خیر این دوره پیش نیازه خاصی ندارد. و برای تمامی سنین و با هر تحصیلاتی هست. فقط لازم است کمی با سیستم عامل ویندوز یا مک آشنایی داشته باشید.

البته طبیعتا اگر در سنین جوانی باشید به دلیل گیرایی بالاتر سریع تر به نتیجه خواهید رسید.

برای هر دوره انجمنی مخصوص طراحی شده که خریداران دوره امکان مشاهده آن را دارند.

در این انجمن شما امکان ایجاد سوال دارید و پاسخ شما توسط مدرس دوره و سایر خریداران دوره داده خواهد شد.

و طبیعتا امکان مشاهده سوالات کاربران دیگر را هم دارید.

عکس میلاد خط شب,تصویر میلاد خط شب
میلاد خط شب (رزومه)
موسس وبسایت سوئیفت آکادمی
آخرین آپدیت: 22 اسفند 1402
زمان: 18 ساعت

مشاهده قسمت های رایگان ارزش تقریبی 250 هزار تومان
فالو کردن اینستاگرام

✔️ این دوره حاصل سال ها تجربه تو حوزه برنامه نویسی سوئیفته

هر سوالی دارید میتونید از پشتیبانی بپرسید (کلیک کن)