آشنایی با امکانات جدید Xcode 11 —— راهنمای کاربردی

۷۲ بازدید
آخرین به‌روزرسانی: ۲۹ شهریور ۱۴۰۲
زمان مطالعه: ۴ دقیقه
آشنایی با امکانات جدید Xcode 11 —— راهنمای کاربردی

اپل به تازگی نسخه جدیدی از IDE خود را برای توسعه‌دهندگان iOS ،MacOS و IpadOS ارائه کرده است که Xcode 11 نام دارد. ظاهر این نسخه بسیار زیبا است و بیش از پیش به یک محیط توسعه پایدار شباهت یافته است. اگر از نسخه‌های قبلی استفاده کرده باشید، می‌دانید که نسخه‌های پیشین از کرش‌ها، پشتیبانی بد و ارجاعات مستندات ضعیف، چارچوب‌بندی و تکمیل نامناسب کد رنج می‌بردند. عملکرد شبیه‌ساز خود در برخی موارد کاملاً بد بود. Xcode 11 نسخه‌ای عالی است، اما آن هم از برخی مشکلات کامپایل و رفتارهای عجیب ناشی از SDK جدید و پشتیبانی از SwiftUI رنج می‌برد.

قابلیت‌های Xcode 11

در این بخش برخی قابلیت‌هایی که به نسخه جدید IDE رسمی اپل اضافه شده است را با هم مرور می‌کنیم.

حالت تیره

Xcode جدید به همراه یک اینترفیس تیره عرضه شده است که جدیدترین روند در دنیای برنامه‌نویسی است و از سوی دیگر با حس و ظاهر نسخه جدید مک یعنی Catalina نیز که به صوت پیش‌فرض تیره است هماهنگ‌تر به نظر می‌رسد. UI-های تیره در ابتدا برای بهبود عمر باتری روی دستگاه‌های موبایل معرفی شدند و از این رو چیزی است که اساساً در رایانه‌های دسکتاپ به آن نیاز نداریم. اما به هر حال این هم گزینه‌ای است و در صورتی که به آن علاقه‌مند هستید، می‌توانید آن را نگه دارید. در هر حال ظاهر Xcode جدید، فونت‌ها و رنگ‌ها بهتر شده است و از این رو شاید نیازی به تغییر دادن تنظیمات پیش‌فرض نداشته باشید.

ناوبری ساده‌تر و سریع‌تر در کد

بالاخره Xcode پشتیبانی مناسبی برای حرکت در میان هزاران خط کد ارائه کرده است. این مسئله همواره در Xcode جزو مشکلات محسوب می‌شده است و این قابلیت از مدت‌ها پیش مورد نیاز بود. اکنون پرش از یک فایل به فایل دیگر و از یک علامت به علامت دیگر به لطف نوار کناری که قابلیت لینک سریع و بهبود اسکرول کردن را فراهم ساخته، آسان‌تر شده است. قابلیت قبلی بدنام و گاهی کُند «jump to definition» بهبود یافته است. اپل نوید بهبود این قابلیت را با ارائه ارجاع‌های بیشتر به بخش‌های مختلف در کد کامپایل شده نسبت به سورس کد به ما داده است. در این بخش نیز شاهد بهبود اندکی هستیم.

Xcode 11

به نوار کناری برای ناوبری سریع در کد توجه داشته باشید. اگر ماوس را به بخش‌های مختلف کد ببرید، نام متد نمایش خواهد یافت:

Xcode 11

اکنون تلاش کنید کد خود را با علامت‌های سوئیفت مانند زیر علامت‌گذاری کنید:

1// MARK: - CollectionView datasource

Xcode علامت‌ها را در منوی کناری نمایش می‌دهد:

Xcode 11

با کلیک کردن روی آن‌ها می‌توانید مستقیماً به علامت بروید که امکان جذابی است.

پیش‌نمایش تصاویر

Xcode 11

تصاویر از مدت‌ها پیش برای توسعه‌دهندگان حرفه‌ای iOS مشکل عمده‌ای محسوب می‌شدند، بهبود در پشتیبانی و فرمولاسیون تصاویر بسیار دیر صورت گرفته است. Xcode اینک در هنگام کار در بخش استوری‌بورد در پنل Attribute Inspector، پیش‌نمایشی از تصاویر را نشان می‌دهد و تغییر دادن یک ارجاع تصویر حتی در زمان کدنویسی آسان است. کافی است روی تصویر دابل کلیک کنید تا یک popover باز شود که عملکردی بسیار بهتر از قبل محسوب می‌شود.

تقسیم پنجره‌ها و اتصال‌های outlet/action

اینک در Xcode 11 روش استفاده از تقسیم بین UI و کد، بیشتر عمودی است تا افقی. روی صفحه 2۷ اینچی iMac معمولاً به فضای افقی زیادی نیاز نداریم، اما باید اعتراف کرد که حالت عمودی بهتر است. اپل همچنین روش دسترسی به آن را تغییر داده است، اکنون باید از گزینه Assistant در دکمه راست-بالای صفحه استفاده کنیم.

Xcode 11

Swift 5.1 و SwiftUI

در نسخه جدید با برخی قابلیت‌های جالب در سوئیفت و روش کدنویسی UI رو به رو هستیم. مقالات زیادی در مورد این دو قابلیت نوشته شده‌اند و ما نیز در مجله فرادرس در برخی مقاله‌ها این امکانات را برسی کرده‌ایم که در این صفحه (+) می‌توانید مشاهده کنید. SwiftUI یک رویکرد جدید اپل برای ساخت رابط‌های کاربری بدون استفاده از Autolayout است، اما خبر بد این است که این امکان تنها برای iOS 13 عرضه شده است. در سوی دیگر سوئیفت نسخه 5.1 کلیدواژه‌ها و عناصر ساختاری جدیدی را معرفی کرده است.

مدیریت پکیج با Swift Package Manager

مدت‌ها است که اخباری در مورد طراحی یک ابزار مدیریت پکیج اختصاصی از سوی اپل می‌شنیدیم. توسعه‌دهندگان iOS اغلب از CocoaPods استفاده می‌کنند که اساساً همان کار را انجام می‌دهد، یعنی یک ابزار مدیریت وابستگی است. امروزه می‌بینیم که برای هر چیزی یک ابزار مدیریت وابستگی وجود دارد. کافی است به npm و همه ابزارهای خط فرمان دیگر که استفاده آسانی دارند نگاه کنید. اغلب کتابخانه‌های گیت‌هاب برای سوئیفت از سوی گیت میزبانی می‌شوند و آن‌ها را می‌توان از طریق CocoaPods نصب کرد. اکنون این پشتیبانی به ابزار مدیریت وابستگی بومی سوئیفت گسترش یافته است.

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

Xcode اینک از اپلیکیشن‌های چند پلتفرمی پشتیبانی می‌کند. با معرفی Xcode جدید، پورت کردن یک اپلیکیشن iPad مستقیماً به macOS آسان‌تر شده است و می‌توان انتظار عملکرد مناسبی نیز داشت. با این که این امکان یکی از بهترین قابلیت‌های نسخه جدید به حساب نمی‌آید، اما قطعاً ارزش اشاره کردن و امتحان کردن را دارد.

آیا همه چیز به خوبی کار می‌کند؟

شاید اشکالات Xcode تا حدود زیادی کاهش یافته باشد، اما به هر حال چنان که می‌دانید همواره مشکلاتی وجود دارند. ما در Xcode 11 برخی رفتارهای عجیب مشاهده کردیم که به طور عمده ناشی از نسخه جدید سوئیفت و پشتیبانی از SwiftUI بوده است. همچنین برای رفتارهای غیرمنتظره UI را هنگام استفاده از UICollectionView با یک لی‌آوت شبه Masonry مشاهده کردیم و از این رو مجبور شدیم کد را برای iOS 13 با یک گزاره شرطی ساده‌تر بازنویسی کنیم. نکته شگفت‌انگیز دیگر این بود که متوجه شدیم در صورت خالی بودن برچسب UITabBar به طور خودکار از سوی سیستم برای iOS 13 پنهان می‌شوند، در حالی که در iOS 12 چنین چیزی وجود نداشت. از این رو برخی مشخصات اشتباه کوچک و رفتارهای غیرمنتظره وجود داشت، اما مواردی نبوده‌اند که موجب نگرانی شوند.

سخن پایانی

Xcode 11 قطعاً نسخه بسیار بهبودیافته‌ای محسوب می‌شود. این نسخه سریع است و دسترسی به برخی قابلیت‌های کلیدی در آن تسهیل شده است. در این نسخه به Playground و همه ابزارهای مورد نیاز دیگر دسترسی دارید. با توجه به یکپارچه‌سازی SwiftUI احتمالاً برای دیدن این که iOS 13 روی دست کم 90 درصد دستگاه‌ها نصب و اجرا شود نیازمند گذشت زمان هستیم. اپل اخیراً ادعا کرده است که حدود 55% کاربران iPhone از iOS13 استفاده می‌کنند که به نظر می‌رسد برای استقبال و استفاده از این رویکرد جدید برای طراحی و ترکیب‌بندی UI کافی به نظر می‌رسد.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
better-programming
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *