آموزش ساخت یک اپلیکیشن آیفون (بخش هشتم) – به زبان ساده


در این بخش از سری مقالات ساخت اپلیکیشن آیفون یک فریمورک به پروژه خود اضافه میکنیم تا کامپوننتهایی عرضه کنیم که از نظر بصری سفارشیسازی بیشتری داشته باشند. کدهای این کامپوننتها قبلاً نوشته شده است. در بخش قبلی یک طرحبندی سلول سفارشی را با استفاده از ابزارهای دیداری اینترفیسساز ساختیم. برای مطالعه بخش قبلی به لینک زیر رجوع کنید:
یکی از مهمترین اهداف این سری مقالات آموزشی این است که یک اپلیکیشن را تا حد امکان با استفاده از ابزارهای دیداری بسازیم، و در عین حال کمترین کد ممکن را نیز بنویسیم. ابزارهای دیداری مانند هر چیز دیگری در دنیای رایانه (شامل گوشیهای هوشمند) تنها زمانی کار میکنند که فرد دیگری کدهایی را در پشت صحنه نوشته باشد. تا به اینجا ما روی استفاده از «اینترفیسساز» (Interface Builder) مربوط به Xcode متمرکز شدهایم که یک ابزار دیداری برای ویرایش طرحبندی است. در اینترفیسساز میتوانیم نماها را بکشیم و خصوصیتها را تعیین کنیم، چون فرد دیگری قبلاً کد مربوط به کارکرد اینها را نوشته است.
برای تنظیم فریمورک به گیت اعلام میکنیم که آن را از ریپازیتوری مربوطه روی اینترنت به صورت محلی برای ما کلون کند.
ما در این راهنما استفاده زیادی از فناوریهای مختلف داشتهایم. این فرایند نیز سرراست و سریع است. ما همه گامها را به دقت توصیف کردهایم، چون این یک سرزمین کاملاً جدید است.
ماژول فرعی، پروژه و فریمورک
در انتهای این راهنما، تغییرها را با استفاده از سیستم کنترل نسخه Git کامیت میکنیم. پروژه ما در ریپازیتوری مربوط به خود قرار دارد. گیت از طریق استفاده از «ماژولهای فرعی» (Submodules) ریپازیتوریهای دیگر در پروژه اصلی، برخی تسهیلات دیگر را نیز در اختیار ما قرار میدهد تا تاریخچه نسخه برای هر کدام به صورت جداگانه مدیریت میشود.
ما قصد داریم فریمورک BFWControls را به پروژه خود اضافه کنیم. این کار نیازمند سه گام زیر است:
- ریپازیتوری BFWControls را به عنوان یک ماژول فرعی به ریپازیتوری گیت خود اضافه کنید.
- فایل پروژه مربوط به BFWControls را به پروژه اصلی Xcode اضافه کنید.
- BFWControls.framework را به فازهای build پروژه اضافه کنید.
افزودن یک گروه/پوشه به Xcode
در Xocde روی فایل پروژه آبیرنگ در ابتدای بخش ناوبری پروژه Control+Click کنید. گزینه New Group را از منوی بازشدنی انتخاب کنید.
Xcode یک گروه جدید (یک آیکون پوشه زردرنگ) با نام New Group ایجاد میکند. یک بار روی نام کلیک کنید تا name را به حالت ویرایش درآورد.
این نام را به Submodules تغییر دهید. گروه Submodules را به سمت پایین بکشید و تا قبل از گروه Submodules بیاورید.
مواظب باشید که آن را درون گروه دیگری نکشید، اما اگر چنین اتفاقی افتاد، میتوانید آن را دوباره به مکان صحیح درگ کنید. روی گروه جدید Submodules همراه با فشردن کلید Control کلیک کنید و گزینه Show in Finder را در منوی بازشدنی انتخاب کنید.
ترمینال
اپلیکیشن Terminal را روی مک باز کنید. آن را میتوانید در پوشه Applications بیابید. در ترمینال ابتدا باید دایرکتوری را عوض کنیم و به پوشه جدید Submodules برویم. بدین منظور در پنجره ترمینال، دستور cd را وارد کنید و یک فاصله بدهید:
اینک باید مسیر پوشه Submodules را بدانیم. به جای وارد کردن آن کافی است پوشه Submodules را از Finder به پنجره ترمینال کشیده و رها کنید.
بدین ترتیب مسیر پوشه در ترمینال ظاهر میشود.
دکمه Return را بزنید تا به ترمینال اعلام کنید که دستور را اجرا کند.
افزودن یک ماژول فرعی
ما باید یک دستور دیگر در ترمینال وارد کنیم تا به گیت اعلام کنیم که ماژول فرعی BFWControls را به این پوشه اضافه کند. به این منظور باید URL مربوط به ریپازیتوری BFWControls را بدانیم. از مرورگر وب استفاده کنید تا به دنبال BFWControls بگردید. دو نتیجه اول معمولاً وبسایتهای github.com و bitbucket.org هستند.
این سایتها ریپازیتوریهایی برای استفاده عمومی و خصوصی میزبانی میکنند. BFWControls یک ریپازیتوری عمومی و متنباز است یعنی هر کسی میتواند از آن استفاده کند و حتی کدهایی برای بهبود آن بنویسید و با درخواست pull کد مربوط به تغییراتی که ایجاد کرده است را در پروژه ادغام کند.
روی لینک گیتهاب کلیک کنید. بدین ترتیب به صفحه گیتهاب BFWControls میروید که شامل لینکهایی برای کامیتها، فایلها و موارد دیگر است. ما با هیچکدام اینها کاری نداریم. تنها چیزی که نیاز داریم لینک این ریپازیتوری است.
در سمت راست روی دکمه Clone or Download کلیک کنید، بدین ترتیب URL-ی نمایش پیدا میکند که شامل لینک به ریپازیتوری است. در سمت راست متن لینک، یک دکمه برای کپی کردن آن وجود دارد. روی دکمه کلیک کنید. البته میتوانید متن لینک را به صورت دستی نیز انتخاب و کپی کنید:
به ترمینال بازگردید و در ابتدای دستور خود عبارتهای زیر را وارد کنید:
git submodule add
مطمئن شوید که پس از آخرین کلمه یک فاصله وجود دارد و سپس گزینه Paste را از منوی Edit انتخاب کنید تا دستور تکمیل شود.
دکمه Return را بزنید. گیت اقدام به کلون کردن ریپازیتوری در پوشه Submodules که ایجاد کردهایم میکند.
بدین ترتیب کار ما در ترمینال پایان یافته است و میتوانید آن را ببندید. کار ما با وبسایت گیتهاب نیز تمام شده و میتوانید برگه مربوطه مرورگر را ببندید؛ بدین ترتیب ما با موفقیت ریپازیتوری BFWControls را به عنوان یک ماژول فرعی در ریپازیتوری خود اضافه کردیم.
افزودن فایل پروژه
نگاهی به پوشه Submodules در Finder داشته باشید. این پوشه هم اکنون یک پوشه دیگر به نام BFWControls نیز دارد. آن را باز کنید تا فایل BFWControls.xcodeproj را ببینید. این فایل پروژه است و باید به پروژه Xcode اضافه شود.
فایل BFWControls.xcodeproj را از Finder دوباره به Xcode و گروه Submodules بکشید.
فایل BFWControls.xcodeproj اینک باید در پروژه Xcode نمایش یافته باشد.
افزودن یک فریمورک
اکنون ما پروژه BFWControls Xcode را به پروژه خود اضافه کردهایم. پروژه BFWControls یک framework برای ما ایجاد میکند که میتواند از سوی اپلیکیشنهای دیگر مانند اپلیکیشن ما مورد استفاده قرار گیرد. اکنون کافی است به پروژه اعلام کنیم که از این فریمورک استفاده کند.
یک بار روی آیکون آبی پروژه در Project Navigator کلیک کنید. مطمئن شوید که آیکون اپلیکیشن زیر برگه Targets و General انتخاب شده است.
پنل بزرگ میانی را اسکرول کنید تا به بخش Embedded Binaries برسید. روی دکمه + زیر آن کلیک کنید.
در لیستی که نمایان میشود، گزینه فوقانی BFWControls.framework را انتخاب کنید. دقت کنید گزینه BFWControls Demo.app را انتخاب نکنید.
روی دکمه Add کلیک کنید؛ Xcode در این مرحله BFWControls.framework را به Embedded Binaries و Linked Frameworks اضافه میکند.
اپلیکیشن را اجرا کرده و بررسی کنید که آیا همه بیلدها و اجراها مانند قبل هستند یا نه. احتمالاً متوجه خواهید شد که زمان build اولیه طولانیتر شده است، چون کد BFWControls نیز ساخته میشود.
البته با باز کردن اپلیکیشن هنوز از فریمورک استفاده نکردهاید، اما در ادامه قصد انجام این کار را داریم.
کامیت کردن تغییرات
همانند بخشهای قبلی در انتهای مقاله تغییرهایی را که در پروژه ایجاد کردهایم، کامیت میکنیم تا ذخیره شوند. به این منظور:
- گزینه Commit Changes را از Source Control انتخاب کنید.
- یک توضیح مانند زیر وارد کنید:
Added BFWControls submodule and framework - روی دکمه Commit کلیک کنید.
نکته: فایلهای تغییر یافته روی رایانه شما ممکن است کمی متفاوت باشند.
سخن پایانی
اپلیکیشن ما هم اینک ماژول فرعی BFWControls را دارد که در Git یکپارچه شده است و BFWControls.framework حاصل نیز با استفاده از Xcode در اپلیکیشن ما ادغام شده است. ما در بخش قبلی (هفتم) یک طرحبندی برای سلول نمای جدولی در یک فایل جدید به نام NewsTableViewCell ساختیم در بخش بعدی (نهم) از BFWControls.framework برای بارگذاری طرحبندی سلول سفارشی در استوریبورد استفاده خواهیم کرد. برای مطالعه بخش بعدی به لینک زیر رجوع کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامه نویسی Swift (سوئیفت) برای برنامه نویسی iOS
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- آموزش برنامه نویسی سوئیفت (Swift): متغیر، ثابت و انواع داده – بخش اول
- آرایه ها در زبان برنامه نویسی سوئیفت (Swift) — به زبان ساده
==