بستن آگهی

در آخرین سخنرانی خود در WWDC در سال 2011، استیو جابز سرویسی را معرفی کرد که هنوز هم بسیاری از توسعه دهندگان را به وحشت می اندازد. این کسی نیست جز iCloud، جانشین موفق MobileMe مشکل‌دار. با این حال، حتی iCloud نیز بدون خطا نیست. و توسعه دهندگان در حال شورش هستند…

استیو جابز برای اولین بار iCloud را در ژوئن 2011 دموی کرد، این سرویس چهار ماه بعد راه اندازی شد و اکنون حدود یک سال و نیم است که کار می کند. در ظاهر، یک سرویس نسبتاً روان که به قول افسانه‌ای افسانه‌ای، «فقط کار می‌کند» (یا حداقل باید باشد)، اما در درون، مکانیزمی رام‌نشده است که اغلب آن‌چه را که می‌خواهد انجام می‌دهد و توسعه‌دهندگان هیچ سلاح مؤثری در برابر آن ندارند. آی تی.

"همه چیز به طور خودکار اتفاق می افتد و اتصال برنامه های خود به سیستم ذخیره سازی iCloud بسیار آسان است." جابز در آن زمان گفت. وقتی توسعه‌دهندگان اکنون سخنان او را به خاطر می‌آورند، احتمالاً مجبورند برس کنند. iCloud فقط برای ما کار نکرد. ما واقعاً زمان زیادی را صرف آن کردیم، اما همگام‌سازی iCloud و Core Data این مشکلات را داشت که نتوانستیم آنها را حل کنیم. او اعتراف کرد رئیس استودیوی بلک پیکسل، که برای مثال، مسئول RSS خوان معروف NetNewsWire است. برای او، iCloud باید راه‌حل ایده‌آلی برای همگام‌سازی می‌بود، مخصوصاً در زمانی که گوگل در شرف بستن Google Reader است، اما شرط‌بندی روی سرویس اپل جواب نداد.

هیچ چیز کار نمی کند

جای تعجب است که سرویسی که بیش از 250 میلیون کاربر دارد و در نتیجه یکی از بزرگترین در نوع خود در جهان است، چنین مشکلاتی دارد. با نگاهی گذرا به موضوع، می توان انگشت خود را به سمت توسعه دهندگان گرفت، اما آنها در حال حاضر در این مورد بی گناه هستند. iCloud سعی می کند بسیاری از آنها را در برنامه های خود پیاده سازی کند، اما تلاش آنها اغلب با شکست ختم می شود. زیرا iCloud با همگام سازی مشکلات جدی دارد.

[do action=”quote”]من حتی نمی توانم تمام توسعه دهندگانی را که به مشکل برخوردند و در نهایت منصرف شدند، بشمارم.[/do]

"من چندین بار کد iCloud خود را به امید یافتن راه حلی بازنویسی کردم." او نوشت توسعه دهنده مایکل گوبل با این حال، او راه حلی پیدا نکرده است، و بنابراین او هنوز نمی تواند برنامه های خود، یا بهتر است بگوییم فروشگاه App را به بازار عرضه کند. من حتی نمی‌توانم همه توسعه‌دهندگان و شرکت‌هایی را بشمارم که با مشکلات مشابه من مواجه شدند و در نهایت منصرف شدند. پس از از دست دادن صدها هزار داده کاربر، آنها به سادگی iCloud را به کلی رها کردند.

بزرگترین مشکل اپل با iCloud همگام سازی پایگاه داده (Core Data) است. دو نوع دیگر از داده هایی که می توانند از طریق ابر اپل همگام شوند - تنظیمات و فایل ها - بدون هیچ مشکلی در محدوده کار می کنند. با این حال، Core Data کاملاً غیرقابل پیش بینی رفتار می کند. این یک چارچوب سطح بالا است که به شما امکان می دهد چندین پایگاه داده را در بین دستگاه ها همگام سازی کنید. "iCloud قول داده است که تمام مشکلات همگام سازی پایگاه داده را با پشتیبانی از Core Data حل کند، اما کار نمی کند." یکی از توسعه دهندگان برجسته، که برای حفظ روابط خوب با اپل، مایل به ذکر نام نیست، گفت.

در عین حال، اپل به طور کامل این مشکلات را نادیده می گیرد، iCloud به تبلیغات خود به عنوان یک راه حل ساده ادامه می دهد و کاربران آن را از توسعه دهندگان مطالبه می کنند. اما علی‌رغم تلاش‌های سازنده، داده‌های کاربران به‌طور غیرقابل کنترلی ناپدید می‌شوند و دستگاه‌ها همگام‌سازی را متوقف می‌کنند. حل این مشکلات اغلب ساعت‌ها طول می‌کشد و برخی می‌توانند برای همیشه حساب‌های شما را خراب کنند. یکی دیگر از توسعه دهندگان برجسته به اپل متمایل شده و اضافه می کند: علاوه بر این، AppleCare قادر به حل این مشکلات با مشتریان نیست.

ما همیشه با ترکیب Core Data و iCloud مبارزه می کنیم. کل این سیستم غیرقابل پیش بینی است و توسعه دهنده اغلب گزینه های محدودی برای تأثیرگذاری بر عملکرد آن دارد." استودیوی توسعه چک را توصیف می کند هنر را لمس کنید، که به ما تأیید کرد که به دلیل مشکلات مداوم، این راه حل را رها کرده و به تنهایی کار می کند، که در آن به جای همگام سازی پایگاه داده، از همگام سازی فایل ها استفاده می کند. سپس او می تواند از iCloud برای این کار استفاده کند، زیرا همگام سازی فایل ها از طریق آن بدون هیچ مشکلی انجام می شود. پس از همه، این نیز توسط توسعه دهندگان از Jumsoft تایید شده است: iCloud بدون شک یک ابزار عالی برای ذخیره سازی مستقیم فایل است. با این حال، متأسفانه Jumsoft برای برنامه معروف Money خود به Core Data نیاز دارد و این یک مانع است.

[do action="quote"]iCloud و Core Data بدترین کابوس هر توسعه دهنده هستند.[/do]

بسیاری از مشکلات همچنین از موقعیت‌های غیرمنتظره‌ای ناشی می‌شوند که می‌توانند به راحتی رخ دهند، مانند زمانی که کاربر از یک Apple ID در دستگاه خود خارج می‌شود و از طریق دیگری وارد می‌شود. اپل اصلا روی آنها حساب نمی کند. وقتی کاربری که به iCloud وارد نشده است، برنامه را روشن می کند، سپس به iCloud متصل می شود و دوباره برنامه را راه اندازی می کند، چگونه می توان مشکل را حل کرد؟ او درخواست کرد با یک توسعه دهنده در انجمن های اپل.

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

برخی از توسعه دهندگان در حال حاضر صبر خود را با iCloud از دست داده اند و جای تعجب نیست. "iCloud و Core Data بدترین کابوس هر توسعه دهنده هستند." گفت: در آستانه توسعه دهنده بی نام "این ناامید کننده است، گاهی اوقات دیوانه کننده است و ارزش ساعت های بی پایان عیب یابی را دارد."

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

شاید تعجبی نداشته باشد که مشکلات اپل با iCloud به گونه ای است که گویی هیچ اتفاقی نیفتاده است. اپل عملا از Core Data مشکل ساز در برنامه های خود استفاده نمی کند. در واقع دو iCloud وجود دارد - یکی که خدمات اپل را تقویت می کند و دیگری که به توسعه دهندگان ارائه می شود. برنامه‌ها و خدماتی مانند iMessage، Mail، پشتیبان‌گیری iCloud، iTunes، Photo Stream و موارد دیگر بر اساس فناوری کاملاً متفاوتی نسبت به آنچه در دسترس توسعه‌دهندگان شخص ثالث است ساخته شده‌اند. یعنی همانی که دائماً با آن دردسر است. برنامه‌های بسته iWork (Keynote، Pages، Numbers) از همان API برنامه‌های شخص ثالث استفاده می‌کنند، اما فقط برای همگام‌سازی اسناد بسیار ساده‌تر، که اپل برای انجام آن بسیار دقت می‌کند. وقتی آنها iCloud و Core Data را به برنامه خود در کوپرتینو اجازه می دهند، از نظر قابلیت اطمینان بهتر از توسعه دهندگان شخص ثالث نیستند. اپلیکیشن Trailers که از Core Data برای همگام‌سازی استفاده می‌کند، خودش صحبت می‌کند و کاربران مرتباً برخی از رکوردها را از دست می‌دهند.

با این حال، با تریلرها، که تقریباً به همان اندازه محبوب نیستند، از دست دادن این مشکلات نسبتاً آسان است. اما پس از آن، توسعه‌دهندگان محبوب‌ترین برنامه‌ها به کاربران خود، که به سادگی باید به Core Data مشکل‌ساز در iCloud تکیه کنند، اما اغلب نمی‌توانند نوع عملکردی را که اپل دائماً در تبلیغات خود تبلیغ می‌کند، تضمین کنند، چه باید بگویند؟ اپل مطمئنا به آنها کمک نخواهد کرد. "آیا کسی از اپل می تواند در مورد این وضعیت اظهار نظر کند؟" او درخواست کرد در انجمن ناموفق، توسعه دهنده جاستین دریسکول، که مجبور شد برنامه آینده خود را به دلیل iCloud نامعتبر خاموش کند.

در طول سال، اپل به توسعه دهندگان کمک نمی کند، بنابراین همه امیدوار بودند که حداقل در WWDC سال گذشته، یعنی کنفرانسی که برای توسعه دهندگان در نظر گرفته شده بود، چیزی حل شود، اما حتی در اینجا نیز اپل تحت فشار بسیار زیاد توسعه دهندگان کمک زیادی نکرد. به عنوان مثال، او کد نمونه ای را ارائه کرد که می توان از آن برای همگام سازی Core Data استفاده کرد، اما هنوز کامل نشده بود. باز هم، هیچ کمک قابل توجهی. علاوه بر این، مهندسان اپل از توسعه دهندگان خواستند تا منتظر iOS 6 باشند. انتقال از iOS 5 به iOS 6 همه چیز را XNUMX% بهتر کرد. توسط یک توسعه دهنده ناشناس تایید شده است، "اما هنوز با ایده آل فاصله زیادی دارد." طبق منابع دیگر، اپل در سال گذشته تنها چهار کارمند داشت که از Core Data مراقبت می کردند، که به وضوح نشان می دهد که اپل به این حوزه علاقه ای ندارد. با این حال، این شرکت از اظهار نظر در مورد این اطلاعات خودداری کرد.

خداحافظ و روسری

پس از تمام فراز و نشیب های ذکر شده، جای تعجب نیست که بسیاری از توسعه دهندگان به iCloud نه گفتند، هرچند احتمالاً با دلی سنگین. این iCloud بود که قرار بود سرانجام چیزی را که توسعه دهندگان آرزوی آن را داشتند به ارمغان بیاورد - راه حلی ساده که پایگاه داده های یکسان و همگام سازی مداوم آنها را در دو یا چند دستگاه تضمین می کند. متاسفانه واقعیت چیز دیگری است. وقتی به iCloud و Core Data به عنوان راه حلی برای برنامه خود نگاه کردیم، متوجه شدیم که نمی‌توانیم از آن استفاده کنیم زیرا هیچ چیز کار نمی‌کند. توسعه دهنده برخی از پرفروش ترین اپلیکیشن های آیفون و مک گفت.

دلیل دیگری که چرا iCloud به راحتی رها نمی شود این واقعیت است که اپل به برنامه هایی که از خدمات آن استفاده می کنند (iCloud، Game Center) توجه می کند و به طور کامل برنامه هایی را که هیچ چیزی اپل در اپ استور ندارند نادیده می گیرد. iCloud از نقطه نظر بازاریابی نیز راه حل خوبی است.

به عنوان مثال، Dropbox به عنوان یک جایگزین ممکن ارائه شده است، اما دیگر آنقدرها کاربر پسند نیست. از یک طرف، کاربر باید یک حساب کاربری دیگر راه اندازی کند (iCloud با خرید یک دستگاه جدید به طور خودکار در دسترس است) و از طرف دیگر، قبل از اینکه برنامه بتواند کار کند، مجوز لازم است که در iCloud نیز از کار می افتد. و در نهایت - Dropbox همگام سازی اسناد را ارائه می دهد، که به سادگی آن چیزی نیست که توسعه دهندگان به دنبال آن هستند. آنها می خواهند پایگاه های داده را همگام سازی کنند. "Dropbox که در حال حاضر بیشترین استفاده را دارد، خود را برای همگام سازی داده ها ثابت کرده است. اما وقتی نوبت به همگام سازی پایگاه داده می رسد، ما به iCloud وابسته هستیم." رومن Maštalíř از Touch Art را می پذیرد.

[do action="quote"]می‌خواهم به اپل بگویم که همه چیز را در iOS 7 حل کرده است، اما من واقعاً این را باور ندارم.[/do]

با این حال، توسعه دهندگان برنامه 2Do حوصله نداشتند، به دلیل تجربیات منفی متعدد با iCloud، آنها به هیچ وجه سرویس اپل را امتحان نکردند و بلافاصله راه حل خود را ارائه کردند. ما به دلیل تمام مشکلات از iCloud استفاده نمی کنیم. این یک سیستم بسیار بسته است که ما نمی‌توانیم آنقدر که می‌خواهیم روی آن کنترل داشته باشیم." توسعه دهنده فهد گیلانی به ما گفت. "ما Dropbox را برای همگام سازی انتخاب کردیم. با این حال، ما از همگام سازی اسناد آن استفاده نمی کنیم، ما راه حل همگام سازی خودمان را برای آن نوشتیم."

یکی دیگر از استودیوهای چک به نام Madfinger Games نیز iCloud را در بازی های خود ندارد. با این حال، سازنده عناوین محبوب Dead Trigger و Shadowgun به دلایل کمی متفاوت از سرویس اپل استفاده نمی کند. ما سیستم مبتنی بر ابر خودمان را برای ذخیره موقعیت‌های درون بازی داریم، زیرا می‌خواستیم بتوانیم پیشرفت بازی را بین پلتفرم‌ها انتقال دهیم.» David Kolečkář به ما فاش کرد که به دلیل توسعه بازی برای iOS و Android برای Madfinger Games، iCloud هرگز راه حلی نبود.

آیا راه حلی وجود خواهد داشت؟

با گذشت زمان، بسیاری از توسعه دهندگان کم کم امید خود را نسبت به ارائه راه حل اپل از دست می دهند. به عنوان مثال، WWDC بعدی در راه است، اما از آنجایی که اپل حتی در حال حاضر عملاً با توسعه دهندگان ارتباط برقرار نمی کند، انتظار نمی رود که او با آغوش باز و پر از مشاوره و پاسخ به WWDC بیاید. تنها کاری که می‌توانیم انجام دهیم این است که به ارسال گزارش‌های باگ به اپل ادامه دهیم و امیدواریم که آنها آن‌ها را برطرف کنند. یک توسعه‌دهنده iOS که نامش فاش نشده، ابراز تاسف کرد و دیگری نیز احساسات او را تکرار کرد: من خیلی دوست دارم به اپل بگویم که آنها همه چیز را در iOS 7 اصلاح کردند و iCloud بالاخره بعد از دو سال بدون مشکل قابل استفاده است، اما من واقعاً این را باور ندارم. اما این iOS 7 خواهد بود که باید موضوع اصلی WWDC امسال باشد، بنابراین توسعه دهندگان می توانند حداقل امیدوار باشند.

اگر اپل در نسخه جدید سیستم عامل خود راه حلی برای مشکلات iCloud ارائه نکند، می تواند برای برخی پروژه ها میخ خیالی باشد. یکی از توسعه دهندگانی که تاکنون از iCloud حمایت کرده است می گوید: اگر اپل این مشکل را در iOS 7 برطرف نکند، ما مجبور خواهیم شد که کشتی را رها کنیم.

منبع: TheVerge.com, TheNextWeb.com
.