r   e   k   l   a   m   a
r   e   k   l   a   m   a

Kowal zawinił, Cygana powiesili: polska kostka DICE+ wcale nie jest bezużyteczna

Strona główna AktualnościOPROGRAMOWANIE

Polską kostkę do mobilnych gier DICE+ testowaliśmy dwa lata temu, przyznając temu produktowi wysoką ocenę, 4,5/5. Sprzedawany za 150 zł gadżet przez ten czas nie zmienił się znacząco. Ot, pojawiło się nieco nowych gier, darmowych i płatnych, które całkiem sprawnie wykorzystują ten sprzęt. Zmieniło się jednak środowisko mobilne – nowe wersje Androida i iOS-a stać się miały z DICE+ niekompatybilne, czyniąc z kostki coś, co można użyć tylko jako ładny przycisk do papieru. Tak można by przynajmniej sądzić po reakcjach na opublikowany kilka dni temu tekst p. Sławomira Wilka, „Polska kostka DICE+ stała się bezużyteczna”, w której autor stwierdził, że kostki nie da się używać na większości iPadów i nowych tabletach z Androidem. W ślad za tym poszły inne serwisy, deklarując, że DICE+ umarło, że jest tylko gratem.

Narzekania na kompatybilność DICE+ towarzyszyły gadżetowi już od premiery. Wspomniany pan Wilk już w 2013 roku określił premierę kostki „falstartem”, pisząc: jest tylko jeden minus tego przedsięwzięcia. Z listy tabletów kompatybilnych z DICE+ wyrzucono iPada 2. Dlaczego jednak ktoś miałby wyrzucić jeden z najpopularniejszych wówczas na rynku tabletów Apple'a, który sprzedał się w kilkudziesięciu milionach egzemplarzy? Autor nie potrafił tego zrozumieć – deliberował, że pominięcie iPada 2 przez twórców kostki jest więc całkowicie niezrozumiałe. Nawet jeśli na drodze stanęły problemy techniczne, należało zrobić wszystko, aby je ominąć. W informatyce nie ma słowa "nie da się", tym bardziej, jeśli tworzymy tak innowacyjny produkt, jak DICE+.

Wystarczy jednak choć trochę znać się na technologiach mobilnych, by wiedzieć, że zarzuty stawiane wtedy twórcom kostki są zupełnie bezpodstawne. iPad 2 nie obsługuje protokołu Bluetooth 4.0 Low Energy (BLE). Wsparcie dla niego pojawiło się dopiero w iPadzie 3. Twierdzenie zaś, że w informatyce nie ma słowa „nie da się” jest już zupełnie niedorzeczne – czyżby p. Wilk oczekiwał, że autorzy prostego gadżetu wymyślą autorski protokół oszczędnej energetycznie komunikacji radiowej, który będzie działał z jego iPadem? A może powinni skorzystać ze zwykłego Bluetootha, robiąc w ten sposób kostkę do gry, którą trzeba by było specjalnie parować z tabletami, która rozłączałaby się nieustannie i rozładowywałaby po kilku godzinach pracy? BT LE jako standard mobilny powstał właśnie specjalnie do obsługi prostych sensorów, gadżetów, które dysponują małymi zasobami energii, pracowały nad nim setki inżynierów z dziesiątek firm. Podłączyć DICE+ do iPada 2 po prostu się nie da, tak samo, jak nie da się podłączyć do iPada 2 praktycznie żadnej opaski fitness.

r   e   k   l   a   m   a

DICE+ działało jednak dobrze na nowocześniejszych urządzeniach z iOS-em, aż do wydania wersji 9. mobilnego systemu Apple'a. Firma z Cupertino, kompletnie się nie troszcząc o kompatybilność z wcześniej wydanym sprzętem, wprowadziła kilka zmian do swoich interfejsów programowania obsługujących BLE. Efekt? „Posypała się” zdecydowana większość aplikacji obsługujących BLE, w tym także aplikacja Board Games!, służąca do zarządzania kostką i grami dla niej. Można powiedzieć, że przecież producent kostki mógł poprawić swoją aplikację, iOS9 był przecież po to właśnie udostępniany przez wiele miesięcy wcześniej deweloperom – tyle sprawa jest nieco bardziej skomplikowana.

Problem z iPadami wynika z porzucenia dwóch metod w iOS-ie 9. Z oficjalnego API wyleciały retrievePeripherals: i retrieveConnectedPeripherals:. Zastąpiły je metody retrievePeripheralsWithIdentifiers: oraz retrieveConnectedPeripheralsWithServices:. Już w iOS-ie 8 starsze metody zostały uznane za przestarzałe (deprecated), wciąż jednak działały. W iOS-ie 9 ich wywołanie powodowało awarię aplikacji przy starcie lub podczas łączenia z urządzeniem.

Sęk jednak w tym, że to samo Apple zalecało stosowanie wspomnianych metod w swoich poradnikach dobrych praktyk dla programistów – i jeśli ktoś nie zapoznał się dokładnie z nowymi API, to miał problem. Awarie dotknęły więc dziesiątki aplikacji, nie tylko DICE+, ale i znacznie większych producentów, jak choćby Garmina.

Świat gier tabletowych nie kończy się jednak na iPadzie. Zdaniem p. Wilka, problemy występują także na Androidzie. Twierdzi: otóż po włączeniu aplikacji pojawia się krótki filmik, po czym aplikacja nagle wyłącza się i następuje powrót do pulpitu. Sprawdzone na urządzeniach z systemem iOS i Android, winą obarczając nieaktualną aplikację – (…) podobnie z wersją na Androida, która ostatni raz była aktualizowana w listopadzie 2013 roku, czyli dwa miesiące po pojawieniu się kostki w sprzedaży. Tymczasem dziś w sprzedaży są tablety z systemem w wersji 5, a pojawiła się już szóstka.

Na google'owym systemie mobilnym tymczasem żadnych radykalnych zmian w API związanym z Bluetoothem LE nie wprowadzano. Aplikacje, które działały na Androidzie 4.4, działały też na Androidze 5.x i 6.x. Problem jest w czymś innym – wiele sprzętowych implementacji BLE w niektórych czipsetach było nie do końca zgodnych ze standardem. Po prostu DICE+ nie będzie działała z każdym androidowym tabletem – i to już nie z winy producenta. Podobne problemy występują z innymi gadżetami. Nawet Intel sobie nie potrafił z tym poradzić, jego smartzegarek BASIS Peak łączy się jedynie z tymi bardziej znanymi urządzeniami.

Mieliśmy okazję sprawdzić więc ową rzekomą niekompatybilność DICE+. Aplikacja Board Games! uruchamia się bez żadnego problemu na tablecie NVIDIA Shield z Androidem 5.1.1 oraz na smartfonie Elephone P9000, z Androidem 6.0. Gdzie ta niekompatybilność? Ano tylko w sprzęcie. Zresztą sam producent kostki nie ukrywa, że gadżet jest zgodny jedynie z wybranymi urządzeniami. Listę kompatybilnych tabletów publikuje na swojej stronie.

Po publikacji p. Wilka i całej aferze, producent wziął się za przepraszanie klientów, pisząc:

Szczerze przepraszamy za zaistniałą sytuację. Proces aktualizacji wymagał od nas przepisania wszystkich bibliotek, obsługujących kostkę oraz na nowo zaimplementowania ich we wszystkich naszych grach. Niestety, zadanie trochę nas przerosło, kończymy jednak proces submisji i nasze gry będą dostępne w przyszłym tygodniu w AppStore. W przypadku Androida 5.x oraz 6.x nie jesteśmy kompatybilni że wszystkimi urządzeniami ale pracujemy nad tym. Obiecujemy poprawę i prosimy, nie skreślajcie nas jeszcze – ostatnie miesiące ciężko pracowaliśmy, by naprawić błędy.

Oczywiście zmiany nie sprawią, że DICE+ zacznie działać na iPadzie 2. Warto się jednak tutaj zastanowić nad polityką Apple'a, a nie krytykować małego producenta. Wzorem może być Microsoft, gwarantujący na całe długie lata stabilność swoich systemowych interfejsów. Aplikacja na Windows napisana 20 lat temu nawet dziś powinna dać się uruchomić bez przepisywania na najnowszych wersjach systemu – i jeśli ktoś stosował dobre praktyki win32, to zwykle tak jest. W wypadku Apple wystarczą zaś dwa lata, by porzucić wcześniej oficjalnie zalecane metody.

Na samym końcu warto zastanowić się nad jedną rzeczą. A co, jeśli producent DICE+ by upadł, a nabywcy kostki pozostali po prostu z urządzeniem i kilkunastoma całkiem fajnymi grami, które nagle przestały działać? Kto wówczas miałby zapewnić działanie gadżetu? Czy media oskarżyłyby wtedy Apple, że zepsuło działanie gadżetów Bluetooth Low Energy? Przecież naczelnym obowiązkiem producenta systemu operacyjnego jest tworzyć stabilne i przewidywalne środowisko dla niezależnych twórców aplikacji, a nie eksperymentować z wrażliwymi API, psując to co działało dobrze dla kaprysu.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.