[ad_1]
اپل مدتها است که برای رونمایی آخرین دستاوردهایش در حوزه نرمافزار از کنفرانس جهانی توسعهدهندگان موسوم به WWDC بهره میگیرد. تمرکز رویداد مذکور معمولا بر سیستمعاملها و سرویسهای این شرکت معطوف است و رویداد امسال نیز از این قاعده مستثنی نبود. اپل در رویدادی دوساعته قابلیتهای جدید نرمافزاری فراوانی رونمایی کرد؛ اما دراینمیان، قابلیتی موسوم به ایکسکد کلاد (Xcode Cloud) بیش از هر قابلیت دیگری نظر مخاطبان اصلی این رویداد، یعنی توسعهدهندگان را به خود جلب کرد؛ قابلیتی که درصورت تحقق وعدهها، میتواند نقش بسزایی در سرعت و دقت و کیفیت توسعه نرمافزارها ایفا کند.
بهطورکلی، کنفرانس جهانی توسعهدهندگان اپل (WWDC) همیشه فرصتی برای دیدهشدن ویژگیهایی است که در آینده میتوانند در اکوسیستم و سیستمعاملهای آینده کوپرتینوییها بهکار روند و کیفیت استفاده و تولید نرمافزار را دستخوش تغییرات بنیادی کنند. با گذار از مشکلات اخیر مرتبط با حق کمیسیون اپ استور، همواره روابط اپل با توسعهدهندگان بسیار نزدیک بوده است؛ بهطوری که به گمان بسیاری، اکوسیستم اپل میتواند گنجینهای برای توسعهدهندگان باشد و درمقابل اپل نیز بهواسطه همین روابط نزدیک بیشترین بهره را میبرد.
در رویداد امسال، اپل ایکسکد کلاد را بهعنوان ویژگی جدید ابزار توسعه یکپارچه این شرکت موسوم به Xcode رونمایی کرد. این شرکت معتقد است استفاده از ویژگی مذکور ساختن برنامهها را آسانتر میکند. احتمالا ایکسکد کلاد سرفصلی جدید در ساخت برنامههای iOS و سایر سیستمعاملهای اپل خواهد بود که از قرار معلوم، اپل نیز حساب ویژهای روی آن باز کرده است. برخی از مهندسان اپل در مصاحبه با دیجیتالترندز اعلام کردهاند برای ایکسکد کلاد بسیار هیجان زدهاند و از این موضوع ناراحتاند که توسعهدهندگان نتوانستند در کنفرانس WWDC حضور داشته باشند و این قابلیت را از نزدیک آزمایش کنند.
ایکسکد کلاد (Xcode Cloud) چیست؟
مطالعهای اجمالی از Twittersphere نشان میدهد تعداد زیادی از توسعهدهندگان منتظر اطلاعات تکمیلی درباره ایکسکد کلاد و انتشار نهایی آن هستند؛ اما بهواقع ایکسکد کلاد دقیقا چیست و چرا اپل کانون توجهش را روی آن معطوف کرده است؟ برای فهمیدن این موضوع، اخیرا دیجیتالترندز با دو مهندس اپل و برخی از توسعهدهندگان مصاحبه کرده است تا با استناد به آن، متوجه شویم چگونه ایکسکد کلاد ممکن است روی فرایند توسعه برنامهها تأثیر گذارد و نگرانی توسعهدهندگان درباره قابلیت یادشده را بشنویم و معنی آن را برای آینده برنامهها بهتر درک کنیم.
بیایید از ابتدا شروع کنیم. برای ساختن برنامههایی برای سیستمعاملهای اپل توسعهدهندگان از محیط توسعه یکپارچه ساخت اپل به نام Xcode بهره میگیرند. اپل ایکسکد را نخستینبار سال ۲۰۰۳ رونمایی کرد و دردسترس توسعهدهندگان قرار داد. با گذشت تقریبا دو دهه، ایکسکد همچنان یکی از نرمافزارهای مهم موجود در اکوسیستم اپل است و درواقع، ایکسکد کلاد یکی از بهروزرسانیهای بزرگ آن در سالیان اخیر محسوب میشود که قابلیتهای جدیدی برای توسعهدهندگان بهارمغان میآورد. این بهروزرسانی قصد دارد بسیاری از توسعهدهندگان را باردیگر به برنامه توسعه یکپارچه اپل بازگرداند؛ توسعهدهندگانی که در گذشته بهدلیل برخی مشکلات مجبور بودند ایکسکد را ترک کنند.
اپل ایکسکد کلاد را ابزاری معرفی میکند که تمامی قابلیتهای ابزارهای پیچیده پیشین را یکپارچه دردسترس توسعهدهندگان قرار میدهد. ویلی هاجز، مدیر ابزار و فناوریهای اپل، درباره اشتیاق اپل برای توسعه ایکسکد مبتنیبر فضای ابری میگوید:
دیدیم وظایفی مانند توزیع برنامهها برای آزمایشکنندگان نسخه بتا، نظیر مدیریت بازخورد و گزارشهای خرابی وجود دارد که برای ساخت برنامههای عالی بسیار مهم هستند. متوجه شدیم اکثر توسعهدهندگانمان به یکپارچهسازی پیوسته (CI) و استفاده از ساخت و فرایند آزمایش خودکار علاقهمندند تا دائما کیفیت نرمافزارشان را هنگام توسعه زیرنظر داشته باشند. این دقیقا مشکلاتی است که قرار است ایکسکد کلاد برطرف شود. ایکسکد کلاد به توسعهدهندگان اجازه میدهد چندین آزمایش خودکار را همزمان انجام دهند و از یکپارچهسازی پیوسته (CI) استفاده میکند تا کد برنامه بهسرعت تکرار و بهروز شود.
افزونبراین، توزیع ساخت برنامه برای آزمایشکنندگان بتا را ساده میکند و به توسعهدهندگان امکان میدهد از بازخوردهای مربوط به برنامهشان باخبر شوند. این ابزار بهجای استفاده از کامپیوترهای مک، برنامههایی در فضای ابری ایجاد میکند تا بار اضافی را کاهش دهد و امکان ایجاد گردش کار پیشرفته را فراهم کند که بسته به شرایط تنظیمشده بهطور خودکار شروع و متوقف میشود. میخواستیم این ابزارها و خدمات را دردسترس تمامی توسعهدهندگان قرار دهیم؛ زیرا نسخه مبتنیبر فضای ابری قابلیتهایی را در خود دارد که تاکنون بیشتر در سطح پیشرفته دراختیار توسعهدهندگان بوده است تا این فرایندها را بهعنوان بخشی از روند کار خود انجام دهند.
با استناد به گفته مهندسان اپل، تا اینجا متوجه شدیم ایکسکد کلاد واقعا اهداف جاهطلبانهای دنبال میکند و کاملا امیدوارکننده بهنظر میرسد؛ اما نظر مخاطبان هدف، یعنی توسعهدهندگان، دراینباره چیست؟ اغلب توسعهدهندگان از ارائه ابزار تخصصی یکپارچه هیجانزده هستند. برای مثال، دنیس تله زکین، مهندس نرمافزار برنامه ClearVPN میگوید: «اکنون قابلیتهای کاملا تخصصی ادغام شده است که قبلا در ابزار اصلی برای ساخت برنامه استفاده میشود و بهموجب آن، دیگر به یافتن گزینههای شخص ثالث و افزودن مراحل اضافی به روند کار آنها نیازی نیست. وی درادامه افزود:
به Xcode Cloud بسیار علاقهمند بودم؛ زیرا تاکنون مشکلات مختلفی با CIهای دیگر داشتهام. بهعنوان مثال، پیکربندی مایکروسافت آژور دشوار و اقدامات گیتهاب گران است.
بهطورکلی، با استفاده از تمام ابزارهایی که در ایکسکد کلاد ادغام شدهاند، تکیه بر ابزارهای توسعه مشابه و نامطمئن عقلانی بهنظر نمیرسد. البته اپل نیز خوشحال خواهد شد توسعهدهندگان را از رقبایش دور کند. بااینحال، هاجز اصرار میکند هدف اپل چیز متفاوتی بوده است. وی بیان کرد:
انگیزه ایجاد ایکسکد کلاد از مشاهدههای ما حاصل شد. درحالیکه گروهی از کاربران به سرور ایکسکد وفادار بودند، بیشتر توسعهدهندگان هنوز CI را پیادهسازی نکرده بودند؛ بنابراین، بررسی موانع را شروع کردیم و به این نتیجه رسیدیم ارائه CI مبتنیبر فضای ابری بهترین روش برای پذیرش گسترده CI بهعنوان روش است؛ بهخصوص برای توسعهدهندگان کوچکتر که راهاندازی و مدیریت سرورهای ساخت اختصاصی برای آنها مشکل بزرگتری بود.
گفتنی است یکپارچهسازی پیوسته یا ادغام مداوم (CI) روشی است که ادغام تغییرات کد از چندین مشارکتکننده در پروژهای نرمافزاری را خودکار انجام میدهد. این بهترین روش اصلی DevOps است که به توسعهدهندگان اجازه میدهد تغییرات کد را بهطور مرتب در مخزن مرکزی ادغام و در آنجا اجرا و آزمایش کنند. اسکات اولچوفسکی، مدیر ارشد محصولات و بنیانگذار Plex، معتقد است ایکسکد کلاد برای توسعهدهندگان چیزی بیش از CI است. وی میگوید مزایای ابزار توسعه جدید اپل بهطور بالقوه گسترده است. اولچوفسکی بیان کرد:
دیدن ابزارها و خدماتی مانند ایکسکد کلاد که مستقیما در پلتفرم توسعه یافته و ادغام شدهاند، ما را هیجانزده میکند؛ زیرا این امر واقعا کمک میکند در توسعه و کیفیت (تضمین کیفیت) و سایر تلاشها کارایی بیشتری داشته باشیم.
هاجز دراینباره میگوید:
بخشی از این افزایش کارایی در ابزارهای همکاری ایکسکد کلاد نهفته است. هریک از اعضای تیم میتواند تغییرات پروژه اعمالشده سایر همکارانش را مشاهده و با انتشار بهروزرسانی کد، نوتیفیکیشنها را ارسال کند. باتوجهبه این موضوع که همهگیری ویروس کرونا ازنظر فیزیکی تیمها را در سراسر کره زمین جدا کرده است، زمانبندی ارائه این قابلیت بسیار مناسب خواهد بود. درواقع، مدتها است بهمعنای واقعی کلمه در این مسیر بودهایم؛ بنابراین، فکر میکنم زمانبندی در این زمینه اتفاقا مناسب باشد. این قطعا پروژهای بلندمدت است که قبل از اتفاقات ناگوار اخیر بهخوبی در حال انجام بود.
قطعا اگر چیزی وجود داشته باشد که اپل در آن بسیار ماهر باشد، ایجاد اکوسیستمی از برنامهها و محصولات است که یکپارچه با یکدیگر کار میکنند؛ ازاینرو، جای تعجب نیست ایکسکد کلاد نیز همان ماهیت را منعکس میکند؛ زیرا برای آزمایشکنندگان نسخه بتا به TestFlight متصل میشود و به توسعهدهندگان امکان میدهد ساخت چندین دستگاه مجازی اپل را بهطور موازی اجرا کنند و با App Store Connect بهخوبی کار میکند. برای بسیاری از توسعهدهندگان، این ادغام میتواند بهشدت تأثیر مثبتی بر کارهایشان بگذارد.
ویتالی بودنیک، مهندس نرمافزار در MacPaw’s Setapp، بر این باور است داشتن همهچیز در یک مجموعه بهمعنای اختصاص زمان بیشتر در برنامهنویسی و صرف زمان کمتر برای دستکاری ابزارها و گزینههای مختلف است. بوگدان میهیلیف، یکی دیگر از توسعهدهندگان از Gemini Photos، میگوید بهلطف قابلیتهای ادغامشده روند توزیع برنامه سریعتر و روانتر از حالحاضر انجام میشود.
اپل ایکسکد کلاد را چیزی میداند که میتواند زندگی را برای توسعهدهندگان بزرگ و کوچک بهبود بخشد. آلیسون تریسی، توسعهدهنده اصلی Xcode Cloud، به نحوه ایجاد موقعیتهای جدید برای توسعهدهندگان کوچک اشاره کرد و گفت:
با مجموعهای از گزینههایی که هنگام تنظیم گردش کار در تجربه پیکربندی برایتا وجود خواهد داشت، از نیازهای توسعهدهندهای کوچک که فروشگاهی کوچک راهاندازی کرده یا کسی که درصدد CI جدید است، میتوانید پشتیبانی کنید. این از فرایند پردازشی چهارمرحلهای ساده تا یکپارچهسازی برنامهها و ابزارهای مک مانند Slack و داشبورد را بهلطف APIهای داخلی شامل میشود.
قیمتگذاری ایکسکد کلاد
تاکنون، اپل از افشای جزئیات قیمتگذاری ایکسکد کلاد خودداری کرده است و ظاهرا اطلاعات بیشتر تا پاییز سال جاری دردسترس نخواهد بود. بسیاری از توسعهدهندگانی که با آنها مصاحبه شد، تا حدودی نگران این موضوع بودند که بهنظر میرسد کمی از هیجان آنان را درباره قابلیتهای جدید این ابزار توسعه کاهش داده است. همچنین، سؤالاتی درباره ارزش Xcode Cloud برای تیمهای سازندهای مطرح شده است که برای اکوسیستم اپل و غیراپل برنامه ایجاد میکنند؛ زیرا درحالحاضر، Xcode فقط در کامپیوترهای مک اجرایی است.
الکس استیونسونپرایس، مدیر مهندسی در Plex، برنامههایی برای مک، ویندوز، اندروید، iOS و لینوکس و بسیاری از سیستمهای دیگر توسعه میدهد. وی معتقد است برنامههای مختلف Plex را تیمهای مختلف با استفاده از ابزارهای مختلف میسازند؛ بنابراین، ایکسکد کلاد سرفصلی جدید و عالی برای توسعه نرمافزار برای اکوسیستم اپل محسوب میشود؛ اما درحقیقت استفاده زیادی برای تیمهای غیراپلی نخواهد داشت؛ زیرا آنها از ایکسکد استفاده نخواهند کرد.
تعجبآور نیست اپل به ارائه ابزار برای اکوسیستمهای رقیب علاقه کمی داشته باشد. اگر میخواهید هنگام ساخت برنامه اندروید از مزایای ایکسکد کلاد بهرهمند شوید، دیگر شانس ندارید و ایکسکد بدینترتیب همیشه محدود شده است. این امر مشکلاتی برای توسعهدهندگانی میتواند ایجاد کند که در iOS و اندروید یا هر تعداد از سیستمعاملهای دیگر برنامه یکسانی دارند.
در مصاحبه با سایر توسعهدهندگان، آنها گفتند باید منتظر بمانند و ببینند مزایای ایکسکد کلاد در واقعیت چگونه پیادهسازی خواهد شد. استفاده از آن برای توسعهدهندگان انفرادی نیز جای تردید دارد؛ زیرا تعدادی از ویژگیهای آن بهسمت تیمهایی با چند عضو گرایش دارد. بهعنوان مثال، لوکاس بورگستلر، توسعهدهنده برنامههایی مانند Fiery Feeds و Tidur، بیان میکند استفاده از ابزار ایکسکد کلاد به برخی شرایط بستگی دارد. بورگستلر خاطرنشان میکند ممکن است از تمامی ویژگیهای جدید استفاده نکند. بااینحال، بسیار خوشحال است که اپل این ویژگی را به Xcode اضافه میکند.
قطعا ایکسکد کلاد در آغاز راه قرار دارد و مانند بسیاری دیگر از بهروزرسانیها و ویژگیهای جدید اعلامشده در WWDC 2021، نظیر iOS 15 و مکاواس مانتری، فعلا فقط برای آزمایشکنندگان نسخه بتا دردسترس است. با وجود نگرانیها و خاطرات ناگوار از ارائه ابزار توسعهدهنده مشابه، بهنظر میرسد فِرمورک مک کاتالیست مزایای بسیار بیشتری از معایبش دارد و آینده درخشانی را تداعی میکند.
درحقیقت، هیچیک از این توسعهدهندگان در مصاحبه نمیگفتند ایکسکد کلاد چیزی برای ارائه ندارد و این نشان میدهد بهبودهای فراوانی برای اکثر افرادی وجود خواهد داشت که بهمنظور ایجاد برنامه برای اکوسیستم اپل تلاش میکنند؛ البته بهشرطی که اپل نیز بهدلیل نیاز به توسعهدهنده به بهبود آن ادامه بدهد و تا زمانیکه قیمت آن بهشدت گران نباشد، ابزار توسعه مذکور میتواند برگبرندهای برایش باشد و بهترین راه برای فهمیدن آن، بازخورد اولیه از توسعهدهندگانی است که بهزودی از این ابزار بهرهمند میشوند.