Zamknij reklame

Podczas swojego ostatniego przemówienia na WWDC w 2011 roku Steve Jobs przedstawił usługę, która wciąż przeraża wielu programistów. To nikt inny jak iCloud, zbawienny następca kłopotliwego MobileMe. Jednak nawet iCloud nie jest pozbawiony błędów. A deweloperzy się buntują…

Steve Jobs po raz pierwszy zaprezentował usługę iCloud w czerwcu 2011 r., usługa została uruchomiona cztery miesiące później i działa już od około półtora roku. Z pozoru w miarę sprawna usługa, która według słów legendarnego wizjonera „po prostu działa” (a przynajmniej powinna), ale w środku nieokiełznany mechanizm, który często robi, co chce, a twórcy nie mają skutecznej broni przeciwko temu.

„Wszystko dzieje się automatycznie i bardzo łatwo jest podłączyć aplikacje do systemu przechowywania iCloud” Jobs powiedział wówczas. Gdy twórcy przypomną sobie teraz jego słowa, pewnie będą musieli się najeżyć. „iCloud po prostu w naszym przypadku nie zadziałał. Spędziliśmy nad tym naprawdę dużo czasu, ale przy synchronizacji iCloud i Core Data wystąpiły problemy, których nie mogliśmy rozwiązać.” przyznał szef studia Black Pixel, które odpowiada m.in. za znany czytnik RSS NetNewsWire. Dla niej iCloud powinien być idealnym rozwiązaniem do synchronizacji, zwłaszcza w momencie, gdy Google ma zamiar zamknąć swój Google Reader, ale zakład na usługę Apple nie wypalił.

Nic nie działa

Zaskakujące jest, że serwis, który ma ponad 250 milionów użytkowników i jest tym samym jednym z największych tego typu na świecie, ma takie problemy. Pobieżne spojrzenie na sprawę można by wytykać palcem deweloperów, jednak na razie są w tym niewinni. iCloud próbuje wdrożyć wiele z nich w swoich aplikacjach, ale ich próby często kończą się niepowodzeniem. Ponieważ iCloud ma poważne problemy z synchronizacją.

[do action="quote"]Nie mogę nawet zliczyć wszystkich programistów, którzy napotkali problemy i ostatecznie się poddali.[/do]

„Kilkakrotnie przepisałem kod iCloud, mając nadzieję, że znajdę działające rozwiązanie” napisał deweloper Michael Göbel. Nie znalazł jednak rozwiązania, w związku z czym nie może jeszcze promować swoich aplikacji, a raczej App Store. „Nie mogę nawet zliczyć wszystkich programistów i firm, które napotkały te same problemy, co ja i ostatecznie się poddały. Po utracie setek tysięcy danych użytkowników po prostu całkowicie porzucili iCloud.”

Największym problemem Apple z iCloud jest synchronizacja baz danych (Core Data). Pozostałe dwa rodzaje danych, które można synchronizować za pośrednictwem chmury Apple – ustawienia i pliki – działają w granicach bez żadnych problemów. Jednak Core Data zachowuje się całkowicie nieprzewidywalnie. Jest to platforma wysokiego poziomu, która umożliwia synchronizację wielu baz danych na różnych urządzeniach. „iCloud obiecał rozwiązać wszystkie problemy z synchronizacją baz danych dzięki obsłudze Core Data, ale to po prostu nie działa” powiedział jeden z czołowych deweloperów, który nie chciał pozostać anonimowy, aby utrzymać dobre relacje z Apple.

Jednocześnie Apple całkowicie ignoruje te problemy, iCloud nadal reklamuje się jako proste rozwiązanie, a użytkownicy żądają go od programistów. Jednak pomimo największych wysiłków programisty dane użytkowników znikają w niekontrolowany sposób, a urządzenia przestają się synchronizować. „Rozwiązanie tych problemów często zajmuje wiele godzin, a niektóre mogą trwale uszkodzić Twoje konta” inny wiodący programista pochyla się nad Apple i dodaje: „Ponadto AppleCare nie jest w stanie rozwiązać tych problemów z klientami”.

„Cały czas zmagamy się z połączeniem Core Data i iCloud. Cały ten system jest nieprzewidywalny, a deweloper często ma ograniczone możliwości wpływania na jego funkcjonowanie.” opisuje czeskie studio deweloperskie Kliknij Sztuka, który utwierdził nas w przekonaniu, że ze względu na utrzymujące się problemy rezygnuje z tego rozwiązania i pracuje nad własnym, w którym zamiast synchronizacji baz danych jako takiej będzie wykorzystywał synchronizację plików. Będzie mógł wtedy wykorzystać do tego iCloud, gdyż synchronizacja plików odbywa się za jego pośrednictwem bez żadnych problemów. Przecież potwierdzają to również twórcy z Jumsoft: „iCloud to bez wątpienia świetne narzędzie do bezpośredniego przechowywania plików”. Jednak Jumsoft potrzebuje niestety Core Data do swojej dobrze znanej aplikacji Money, a to jest przeszkodą.

[do action="quote"]iCloud i Core Data to najgorszy koszmar każdego programisty.[/do]

Wiele problemów wynika również z nieoczekiwanych sytuacji, które mogą łatwo wystąpić, na przykład gdy użytkownik wylogowuje się z jednego konta Apple ID na swoim urządzeniu i loguje się za pomocą innego. Apple w ogóle na nich nie liczy. „Jak rozwiązać problem, gdy użytkownik niezalogowany do iCloud włącza aplikację, następnie łączy się z iCloud i ponownie uruchamia aplikację?” on zapytał z jednym programistą na forach Apple.

Wszystkie problemy z iCloud kończą się niezadowoleniem użytkowników aplikacji, którzy tracą dane, podczas gdy programiści często po prostu bezradnie się przyglądają. „Użytkownicy skarżą się do mnie i oceniają aplikacje jedną gwiazdką” Żalił się na forach Apple programista Brian Arnold, który wciąż nie otrzymał od Apple wyjaśnień na temat tego, co zrobić z podobnymi problemami i dlaczego w ogóle do nich dochodzi. A fora są pełne takich skarg dotyczących synchronizacji iCloud.

Niektórzy programiści już tracą cierpliwość do iCloud i nic dziwnego. „iCloud i Core Data to najgorszy koszmar każdego programisty” powiedział za Poboczy anonimowy deweloper. „To frustrujące, czasami doprowadzające do szału i warte niekończących się godzin rozwiązywania problemów”.

Apple milczy. Sam omija problemy

Być może nie ma się co dziwić, że problemy Apple’a z iCloud mijają tak, jakby nic się nie stało. Apple praktycznie nie wykorzystuje w swoich aplikacjach problematycznych Core Data. W rzeczywistości istnieją dwie usługi iCloud – jedna obsługująca usługi Apple i druga oferowana programistom. Aplikacje i usługi, takie jak iMessage, Mail, kopia zapasowa iCloud, iTunes, Photo Stream i inne, są zbudowane w oparciu o zupełnie inną technologię niż ta dostępna dla zewnętrznych programistów. To znaczy ten, z którym występują ciągłe problemy. Aplikacje z pakietu iWork (Keynote, Pages, Numbers) korzystają z tego samego interfejsu API, co aplikacje innych firm, ale tylko w celu znacznie prostszej synchronizacji dokumentów, nad czym Apple bardzo się stara, aby działało. Kiedy wpuścili iCloud i Core Data do swojej aplikacji w Cupertino, nie są lepsi pod względem niezawodności od zewnętrznych programistów. Aplikacja Trailers, która do synchronizacji wykorzystuje Core Data, mówi sama za siebie, a użytkownicy regularnie gubią jakieś rekordy.

Jednak w przypadku przyczep, które nie są tak popularne, problemy te można stosunkowo łatwo utracić. Co jednak powinni powiedzieć twórcy najpopularniejszych aplikacji swoim użytkownikom, którzy po prostu muszą polegać na problematycznych Core Data w iCloud, ale często nie mogą zagwarantować funkcjonalności, którą Apple stale reklamuje w swoich reklamach? Apple na pewno im nie pomoże. „Czy ktoś z Apple może skomentować tę sytuację?” on zapytał bezskutecznie na forum programista Justin Driscoll, który został zmuszony do zamknięcia swojej nadchodzącej aplikacji z powodu zawodności iCloud.

W ciągu roku Apple nie pomaga deweloperom, więc wszyscy liczyli, że coś się wyjaśni przynajmniej na zeszłorocznej konferencji WWDC, czyli konferencji przeznaczonej dla programistów, ale i tutaj Apple nie wniosło zbyt wiele pomocy pod ogromną presją deweloperów. Na przykład dostarczył przykładowy kod, którego można użyć do synchronizacji danych podstawowych, ale nie był on kompletny. Znów brak znaczącej pomocy. Co więcej, inżynierowie Apple namawiali programistów, aby poczekali na iOS 6. „Przejście z iOS 5 na iOS 6 sprawiło, że wszystko stało się o XNUMX% lepsze” potwierdzone przez anonimowego dewelopera, „ale nadal jest daleko od ideału”. Według innych źródeł Apple w zeszłym roku zatrudniało zaledwie czterech pracowników opiekujących się Core Data, co jasno wskazywałoby, że Apple nie jest zainteresowany tym obszarem. Spółka nie chciała jednak komentować tych informacji.

Do widzenia i szalik

Po wszystkich wspomnianych perypetiach nie jest zaskakujące, że wielu programistów powiedziało iCloudowi „nie”, choć prawdopodobnie z ciężkim sercem. To właśnie iCloud miał w końcu przynieść coś, za czym tęsknili deweloperzy – proste rozwiązanie, które zapewni identyczne bazy danych i ich stałą synchronizację na dwóch lub większej liczbie urządzeń. Niestety, rzeczywistość jest inna. „Kiedy spojrzeliśmy na iCloud i Core Data jako rozwiązanie dla naszej aplikacji, zdaliśmy sobie sprawę, że nie możemy z nich korzystać, ponieważ nic nie będzie działać” powiedział twórca kilku najlepiej sprzedających się aplikacji na iPhone'a i Maca.

Kolejnym powodem, dla którego niełatwo jest porzucić iCloud, jest fakt, że Apple zauważa aplikacje korzystające z jego usług (iCloud, Game Center), a całkowicie ignoruje te, które nie mają nic Apple w App Store. iCloud to także dobre rozwiązanie z marketingowego punktu widzenia.

Na przykład Dropbox jest oferowany jako możliwa alternatywa, ale nie jest już tak przyjazny dla użytkownika. Z jednej strony użytkownik musi założyć kolejne konto (iCloud jest dostępny automatycznie przy zakupie nowego urządzenia), z drugiej strony wymagana jest autoryzacja, aby aplikacja mogła działać, co również nie udaje się w przypadku iCloud. I na koniec – Dropbox oferuje synchronizację dokumentów, a to po prostu nie jest to, czego szukają programiści. Chcą synchronizować bazy danych. „Najpopularniejszy obecnie Dropbox sprawdził się w synchronizacji danych. Ale jeśli chodzi o synchronizację bazy danych, jesteśmy zależni od iCloud” przyznaje Roman Maštalíř z Touch Art.

[do action="quote"]Chciałbym powiedzieć Apple, że naprawili wszystko w iOS 7, ale nie do końca w to wierzę.[/do]

Twórcy aplikacji 2Do nie mieli jednak cierpliwości, w związku z licznymi negatywnymi doświadczeniami z iCloud, w ogóle nie wypróbowali usługi Apple i od razu wymyślili własne rozwiązanie. „Nie używamy iCloud ze względu na wszystkie problemy. To bardzo zamknięty system, nad którym nie moglibyśmy mieć takiej kontroli, jaką byśmy chcieli” – dodał. powiedział nam deweloper Fahad Gillani. „Do synchronizacji wybraliśmy Dropbox. Nie korzystamy jednak z synchronizacji dokumentów, napisaliśmy dla niego własne rozwiązanie do synchronizacji.

Inne czeskie studio, Madfinger Games, również nie ma iCloud w swoich grach. Twórca popularnych tytułów Dead Trigger i Shadowgun nie korzysta jednak z usługi Apple’a z nieco innych powodów. „Posiadamy własny oparty na chmurze system zapisywania pozycji w grze, ponieważ chcieliśmy mieć możliwość przenoszenia postępu gry pomiędzy platformami.” David Kolečkář ujawnił nam, że ze względu na rozwój gier na iOS i Androida dla Madfinger Games, iCloud nigdy nie był rozwiązaniem.

Czy będzie rozwiązanie?

Z biegiem czasu wielu programistów powoli traci nadzieję, że Apple znajdzie rozwiązanie. Na przykład zbliża się kolejne WWDC, ale ponieważ Apple nawet teraz praktycznie nie komunikuje się z programistami, nie oczekuje się, że przyjdzie na WWDC z otwartymi ramionami, pełnymi rad i odpowiedzi. „Jedyne, co możemy zrobić, to wysyłać raporty o błędach do Apple i mieć nadzieję, że je naprawią” ubolewał nad anonimowym programistą iOS, a inny powtórzył jego zdanie: „Chciałbym powiedzieć Apple, że naprawili wszystko w iOS 7 i po dwóch latach można wreszcie używać iCloud bez problemów, ale nie bardzo w to wierzę”. Jednak to właśnie iOS 7 powinien być tematem przewodnim tegorocznej edycji WWDC, więc deweloperzy mogą mieć przynajmniej nadzieję.

Jeśli Apple nie zaoferuje rozwiązania problemów iCloud w nowej wersji swojego systemu operacyjnego, może to być wirtualny gwóźdź do trumny niektórych projektów. Jeden z programistów, który do tej pory był gorącym zwolennikiem iCloud, mówi: „Jeśli Apple nie naprawi tego w iOS 7, będziemy musieli porzucić statek”.

Źródło: TheVerge.com, TheNextWeb.com
.