یک سیستم عامل پیشرفته با پیشرفت روز افزون خود حجیمتر – که موجب اشغال فضای بیشتری بر روی دستگاه شماست – میشود. فضای ذخیره سازی چه طور؟ خوب، میزان فضای تلفنهای هوشمند و تبلتها ثابت است و افزایش نمییابد. اندازهی آن برای مدلهای پایه ۸ یا ۱۶ گیگابایت، برای مدلهای حرفهای ۶۴ گیگابایت و برای مدلهای فوق حرفهای ۱۲۸ گیگابایت است.
تا الان بعد از هر به روز رسانی اصلی سیستم عامل، کاربرانی که دستگاه آنها در پایین هرم فضای ذخیره سازی قرار داشت، با کمبود فضا مواجه میشدند. برای درک واضح و بهتر این مسئله میتوان به صاحبان مدل ۸ گیگابایتی موبایل جدید Sony Xperia M4 Aqua اشاره کرد که دقیقاً ۱.۲۶ گیگابایت فضای آزاد در اختیار دارند! آخرین نسخهی اندروید به خودی خود نیمی از این حجم را در دست میگیرد، و سونی هم برای نصب رابط کاربری و دیگر برنامههای خود ۲ گیگابایت دیگر اشغال میکند. شما در مقابل این مسئله هیچ کاری نمیتوانید بکنید مگر این که دستگاه خود را روت کرده و وارانتی آن را باطل کنید، اما خوش بختانه کاربران در این مدل میتوانند از کارتهای microSD استفاده کرده و نیاز خود را رفع کنند!
اگرچه این قضیه در مورد آیفون و آیپد صادق نیست. نخستین به روز رسانی iOS 8 یک گیگابایت حجم داشت که وابسته به روش به روز رسانی دستگاه قبل از شروع مراحل نصب مجموعاً برای این کار ۵ گیگابایت فضا لازم بود. دارندگان دستگاههای ۸ گیگابایتی iOS 8 بعد از به روز رسانی با غافلگیری بدی رو به رو شدند، چرا که تنها ۳ گیگ فضای آزاد در این دوره و زمانه بسیار ناچیزه است، به خصوص که امکان استفاده از microSD هم وجود ندارد.
با iOS 9، اپل چند روش برای حل این مسئله در نظر گرفته که موجب خرسندی بیش از پیش کاربران و توسعه دهندگان میشود. در نطق اصلی WWDC روز گذشته، فهمیدیم که iOS 9 فضای کمی معادل ۱.۳ گیگ برای نصب اشغال میکند. البته iOS 9 بتا که در حال حاضر موجود است، ارتقای سنگینی است و میتواند با نصب پیشرفتهی خود فضایی به اندازهی ۴ گیگ از یک آیفون ۱۶ گیگی را در بر بگیرد. هر چند خوش بختانه این فقط مربوط به نسخهی بتاست و انتظار میرود در نسخهی نهایی iOS 9 این حجم کمتر شود.
چه چیزی iOS را در هر چیزی این قدر سبک و کارآمد میکند؟ در ابتدا، روشی که اپها در دستگاههای مختلف توزیع میشوند توافقی است و باعث ایجاد یک مسئله میشود. هنگامی که اپل اپلیکیشنهای پیشفرض را بر روی iOS قرار میدهد، یا شما این اپها را از اپ استور دریافت میکنید، محتوایی که دانلود میکنید شامل همهی چیزهای مورد نیاز برای همهی دستگاههای iOS پشتیبانی شده است. پس اگرچه شما از یک آیفون 5s چهار اینچی ۶۴ بیتی استفاده میکنید ولی اپلیکیشنی که دانلود میکنید شامل دادههای مورد نیاز برای پشتیبانی در دستگاهی سه برابر بزرگتر یعنی آیفون 6 پلاس، و کدهای ۳۲ بیتی برای دستگاههای قدیمیتر هم هست. این قضیه ایرادی ندارد؟
البته که اپل متوجه نامناسب بودن این روش شده و به همین دلیل iOS را با ویژگی به نام App Thining طراحی کرده است. App Thining مجموعهای از سه مکانیزم است که توسعه دهندگان با استفاده از آنها میتوانند بدون از دست دادن کیفیت برنامههای خود اندازهی اپلیکیشنها را کاهش دهند.
در ابتدا، اپل اجازه میدهد توسعه دهندگان نسخههای کامل اپلیکیشنهای خود را در اپ استور آپلود کنند ولی آرتورک آن برای هر دستگاه خاص علامت گذاری شده و در یک Asset Catalog نگهداری میشود. اپ استور این کاتالوگ را خوانده و نسخهی مربوط به آن دستگاه را برای دانلود در اختیار کاربر قرار میدهد. دادههای بالقوهی ذخیره شده در سراسر قلمرو iOS بی نظیر عمل میکنند.
در ثانی، این ویژگی امکان دستیابی بخش بخش به اپلیکیشنهای طراحی شده را فراهم میکند، آنجا که بخشهای عظیمی از اجزا به هنگام نیاز دانلود میشوند و پس از انجام وظایف خود به طور خودکار از بین میروند. در مثالی از اسناد اپل، یک بازی با علامتهای خاصی به سطحوح مختلف تقسیم میشود و توسعه دهندگان میتوانند به هنگام نیاز آنها را شناسایی کرده و حتی آن بخش از محتوای اضافه را که میخواهند از دستگاه حذف کنند.
ویژگی کلیدی اما کامپایل به هنگام درخواست اپل است که بیتکد (Bitcode) نامیده میشود. توسعه دهندگان دیگر کدهای دودویی از پیش کامپایل شده را آپلود نمیکنند اما به جای آن، یک «واسط ارائه» – احتمالاً بستهای متشکل از کد اصلی و منابع – بر اساس دستگاه کاربر کار کامپایل را انجام میدهد. یک مزیت این روش این است که توسعه دهندگان به صورت خودکار از آخرین بهبودهای کامپایلر اپل بدون نیاز به ثبت یا اعمال دوبارهی برنامههایشان، بهره میبرند. بیتکد هنوز یک گزینهی اختیاری برای اپلیکیشنهای iOS است، اگرچه برای اپهای اپل واچ یک ضرورت میباشد.
این بود راه حل اپل برای رفع مشکل فضا. پاییز امسال با آمدن iOS 9خواهیم دید که این تلاشها پاسخگوی مسئله است یا خیر.