iCloud является поистине удобным сервисом для управления данными на Маках и iOS-устройствах: повторная загрузка разнообразного контента, резервное копирование, бесшовная синхронизация календарей, контактов, закладок, документов и данных сторонних приложений. Однако, последний и, пожалуй, самый важный элемент iCloud работает совсем не так хорошо, как обещает Apple. Особенно для разработчиков.

С момента запуска iCloud прошло уже достаточно много времени, но только сейчас сторонние разработчики начали открыто говорить о трудностях, с которыми они регулярно сталкиваются, пытаясь добавить в свои приложения поддержку облачного сервиса Apple. На этой неделе технологический ресурс The Verge во внушительной статье привел описание основных проблем и процитировал ряд разработчиков. Из-за бездействия яблочной компании они фактических вынуждены бороться с многочисленными багами, потерей или искажением данных.

Хотя пользователи настойчиво требуют интегрировать облачный сервис в приложения, разработчики не могут этого сделать. Усредненное мнение можно описать такой фразой: «оказалось, что iCloud в нашем случае попросту не работал». Например, компания Black Pixel потратила немало времени на попытку добавить в свои программы синхронизацию данных, но каждый раз сталкивались с проблемами, которые не могли решить. О похожих вещах говорили и другие:

«Apple обещала, что поддержка Core Data в iCloud исправит все острые вопросы с синхронизацией баз данных, разбивая каждое изменение на отдельные транзакции. Вот только на самом деле это не работает», — сказал очень известный разработчик, который попросил не называть своего имени, чтобы не испортить хорошие отношения с Apple. С точки зрения пользователей это значит, что данные, несмотря на все усилия разработчиков, могут исчезнуть, а устройства внезапно перестанут синхронизироваться.

Решение этих проблем занимает многие часы, и в некоторых случаях может окончательно испортить ваш аккаунт. Но AppleCare уже не сможет помочь пользователям, которые с столкнутся с чем-нибудь подобным.

Порой, разработчики не могут положиться даже на самые элементарные вещи. По словам ведущего разработчика Pocket Стива Стрезы (Steve Streza), «в действительности синхронизация данных происходит медленно, даже при условии доступности сети работает не всегда надежно или быстро. Вам приходится писать много неочевидного кода, чтобы решить проблемы и обновить содержимое».

В общем, это приводит к тому, что разработчики вместо развития своих приложений и добавления новых полезных функций вынуждены вести активную переписку с каждым клиентом, оправдываться перед ними и даже в некоторых случаях помогать сбросить данные iCloud вручную. Подобные трудно диагностируемые ошибки также негативно отражаются на мнении пользователей и рейтингах в программных магазинах:

«Я слишком часто получал от пользователей жалобы и рейтинги с одной звездой в App Store, — пишет Брайн Арнольд. — Но так до сих пор и не получил вменяемого ответа на вопрос, почему проблема возникает, и как я могу от неё избавиться». Форумы поддержки Apple забиты подобными жалобами.

«Использование Core Data для синхронизации данных с iCloud — худший кошмар разработчика. Это разочаровывает, сводит с ума и требует сотни часов для помощи клиентам». Сложней всего справиться с пользователями, которые требуют добавить поддержку iCloud, увидев рекламу сервиса.

Похоже, Apple просто не верит, что обычные люди способы делать совершенно нелогичные вещи, приводящие к неожиданным последствиям, а также сама редко использует Core Data. Но если это все-таки случается, то компания сталкивается с теми же проблемами. Например, в приложении Movie Trailers периодические «ломается» список избранного.

Но больше всего разработчиков раздражает отсутствие какой-либо внятной реакции со стороны Apple. В большинстве случаев компания либо отмалчивается, либо обещает все исправит в следующих версиях iOS или OS X. На прошлогоднем WWDC представители компании просили подождать до выхода iOS 6, но существенных изменений в этом релизе не случилось. Возможно потому, что в компании над синхронизацией Core Data трудится всего 4 человека, и этого явно не хватает.

Но если все так плохо, почему разработчики до сих пор пытаются реализовать поддержку синхронизации данных через iCloud? Оказывается, на это есть веская причина: Apple любит выделять программы, которые активно используют In-App Purchase, Game Center и другие подобные вещи. Разработчикам это помогает продвигаться в огромном каталоге App Store. «Если вы не добавите iCloud в свое приложение, Apple никогда не поместит его на главную страницу», — пишет разработчик Михаэль Гобель (Michael Gobel).

Разработчикам остается уповать лишь на то, что в будущем Apple все-таки обратит внимание на эту проблему и устранит её. Но даже отсылая массу отчетов об ошибках они не могут оценить прогресс в этом направлении, так как компания сохраняет гордое молчание.


Читайте также: