Проблема iCloud

Пропоную вашій увазі статтю Кайла Бакстера, простого розробника під iOS, який працює над своїм додатком для iPad. У своєму блозі Кайл розповідає про проблему, з якою стикаються багато розробників у процесі інтеграції iCloud у свій додаток.


Протягом останніх двох місяців я був зайнятий роботою над оновленням свого додатку Basil. Найбільше мене цікавила можливість додавання синхронізації в додаток. Зрозуміло, з усіх сервісів синхронізації я найбільше схилявся до iCloud. Але я не міг здогадатися, що процес впровадження цього чудового сервісу в мій додаток виявиться так складний.


Якщо вірити Apple, то iCloud обіцяє багато всього і відразу: синхронізовані між усіма вашими пристроями контакти, календарі, резервні копії, музика, документи, дані додатків автоматично потрапляють на всі ваші пристрої де б ви не знаходилися. Немає необхідності думати про переміщення файлів, синхронізацію з iTunes та іншу білиберду, якою ми займалися до появи iCloud. За запевненням Apple, вся актуальна інформація буде доставлена до вас без необхідності вчинення зайвих дій. Ідея, що лежить в основі цього сервісу, - ніколи не піклуватися про переміщення контенту - вкрай близька мені і саме цього я хотів домогтися в наступному оновленні свого додатку.

Але на жаль, мене чекало розчарування. Перше, що засмутило - це обмежена синхронізація між iOS і OS X пристроями. Можливо, це не особливо відчутна проблема для деяких розробників, але якщо ваш додаток працює на безлічі пристроїв від Apple і однією з його ключових функцій є синхронізація через iCloud, ви неодмінно стикалися з цією проблемою. Наприклад, Марко Армент, розробник Instapaper, вибрав для синхронізації статей між пристроями iCloud. Марко необхідно домогтися від його програми однаково хорошої роботи на Mac, iPhone і iPad, щоб його користувачі могли, додаючи різні статті на одному пристрої, продовжувати їх читання на іншому. Також у його додатку є чудовий букмарклет «Читати пізніше», що працює в браузері будь-якого вашого пристрою і дозволяє з браузера додавати статті в Instapaper, навіть якщо на пристроях не встановлено відповідний додаток. При включенні синхронізації через iCloud до програми, користувачеві для додавання будь-якої статті з браузера до сервісу за допомогою букмарклету, необхідно мати Instapaper на своєму пристрої, інакше стаття просто не додасться до сервісу. З аналогічною ситуацією зіткнувся і я при роботі над таким же букмарклетом «Додати в Basil» у своєму додатку. Тепер, коли ви торкаєтеся цього букмарклету в своєму браузері, запускається встановлений Instapaper і всі програми, що мають графу «Додати в Instapaper», будуть робити те ж саме.

Instapaper не став би настільки популярним, не будь в ньому тих соціальних функцій, які є сьогодні. Наприклад, можливість стежити за статтями, які читаються вашими друзями. Але це зовсім не означає, що iCloud і пропонований ним функціонал поганий. Створюючи iCloud, Apple не ставила перед собою за мету створення мультиплатформенного сервісу синхронізації, на якому розробники могли б побудувати свій бізнес. Apple прагне зробити свою платформу кращою і простішою у використанні. Але ці обмеження створені для того, щоб змусити розробників працювати над своїми додатками ще активніше, і в разі, якщо їх продукт вийде за рамки простого iOS/OS X програми, вони б не коливалися, зупинившись перед вибором сервісу синхронізації.

Але незважаючи на деякі обмеження, iCloud є ідеальним інструментом для самого різного застосування. Багато розробників не мають наміру розширювати застосування своїх додатків за межами iOS/OS X або для доступу до даних поза цими платформами. Для таких розробників iCloud - ідеальний інструмент. Всі дані зберігаються в одному місці і користувач завжди має до них доступ. Проте робота з iCloud для розробників непроста. У відповідних інструментах при роботі над створенням програми немає перемикача, який просто активує iCloud, в той час як Apple говорить про непотрібність особливих технічних знань у розробників для включення роботи iCloud, замовчуючи про масу підводних каменів, з якими доведеться зіткнутися розробникам.

Так що, як тільки розробник наважується піти шляхом оснащення свого додатку синхронізацією iCloud, він приречений на зіткнення з масою дрібних складних завдань, які йому належить вирішити для забезпечення користувача простим перемикачем синхронізації iCloud. Можливо цього і слід було очікувати, оскільки синхронізація даних не найпростіша штука.

Я, як користувач і як розробник, хочу бачити на всіх використовуваних мною пристроях повноцінно працює iCloud, проте реальність така, що розробнику, який зупинився перед вибором впровадження в свій додаток iCloud або будь-якого іншого сервісу синхронізації, доведеться вибирати між комфортом для користувача, майбутнім свого додатку і простотою впровадження сервісу в додаток.


COM_SPPAGEBUILDER_NO_ITEMS_FOUND