Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Samsung Google'owi nie podskoczy

Niedawno na portalu pojawił się news dotyczący nowej strategii Google'a związanej z Androidem, a noszącej nazwę Silver. Jest w nim mowa o przejęciu kontroli nad Androidem przez Google. Prócz omówienia plotek i przedstawienia domysłów z tym związanych, jest też mowa o wyjątkowej pozycji, jaką ma obecnie Samsung na rynku urządzeń i usług.

Samsung jest gigantem dość dobrze dywersyfikującym swoje źródła dochodu. Nadmiar gotówki udaje się zaś bez problemu zmarnować, np. produkując nadmiar urządzeń, które stają się konkurencją dla samych siebie, czy rozwijając kolejny rok system Tizen – kiedyś postrzegany jako słuszny następca MeeGo – który do dziś nie doczekał się materializacji w smartfonach. Innym równie dzielnie prowadzonym przedsięwzięciem, o którym zostało napisanych słów parę w newsie, jest dokładanie kolejnych klocków do niezależnego ekosystemu androidowego.

Zastanawia mnie jednak, ilu właścicieli urządzeń Samsunga wie, że jest np. coś poza sklepem Google Play. Myślę, że większość osób kojarzy głównie smartfony, a część nawet wie, że napędzane są Androidem z nakładką TouchWiz i to jest wszystko, co je odróżnia Xperii (no, może jeszcze jakość wykonania obudowy ;) ). Dla mnie jednak wypłynięcie newsa o Silver, to dobra okazja do podzielenia się moimi przemyśleniami i pewnymi doświadczeniami.

r   e   k   l   a   m   a

Robić za kupy

Na rozgrzewkę coś lżejszego, czyli sklep z aplikacjami, jakim go widzą odbiorcy treści. Liczba aplikacji w teorii pokazuje popularność platformy i wyższość nad konkurencją, dlatego jest to jeden z ważniejszych elementów każdego ekosystemu. W praktyce stało się dogmatem to, że atrakcyjności sklepu jest proporcjonalna do jego rozmiaru (nawet jeśli ma się to nijak do jakości zawartości). Na pewno jednak znaczenie mają przychody z tytułu pośrednictwa w dystrybucji, czyli zatrzymywanie przez sklep procentu wartości aplikacji przy jej zakupie przez użytkownika lub pośrednio z tytułu zarabiania na reklamach. Tyle teorii.

W praktyce w kontekście tego wpisu należy się skupić na dwóch konkretnych sklepach. Zacznijmy od tego, co zna większość użytkowników Androida, czyli Google Play. Można się do niego dostać bądź za pośrednictwem przeglądarki, bądź korzystając z dedykowanej aplikacji mobilnej. Interfejs jest poprawny, trzyma się współczesnych trendów, a wersja WWW sensownie wykorzystuje całą szerokość ekranu. Narody nie klękają, bo nie jest to platforma wolna od rzeczy irytujących, bądź niedopracowanych, ale nie kojarzę też zasadniczo negatywnych opinii ze strony użytkowników.

Miało być o Samsungu, więc teraz kolej na sklep, który ma stanowić realną konkurencję dla Google Play, czyli Samsung Apps. Zacznijmy od strony WWW. Pierwsze wyniki, jakie wyświetlają popularne przeglądarki po wpisaniu nazwy sklepu, zwracają odnośnik http://www.samsung.com/pl/samsung-apps/index.do. Strona ta nie pokazuje jednak sklepu, a jedynie podstronę w portalu Samsunga z planszą zachęcającą do odwiedzenia sklepu…

Przymknijmy oko na mało atrakcyjny odnośnik oraz samą stronę i dajmy szansę sklepowi właściwemu. Mamy połowę 2014 roku, a właściwy sklep Samsunga prezentuje się tak atrakcyjnie, jak przeciętny portal sprzed ładnych paru lat. Interfejs jest dość chaotyczny, np. logować się można bezpośrednio na stronie, jak i po przejściu na odrębną stronę logowania (odnośnik na samej górze). Po wybraniu drugiej opcji przycisk cofania w przeglądarce nie potrafi przenieść nas ponownie na stronę główną sklepu, bo po drodze jeszcze było przekierowanie z jakiejś koreańskiej wersji językowej. Poniżej po lewej jest lista kategorii aplikacji – długa i mało atrakcyjna – i z jakiegoś powodu schowane na samym dole bardziej czytelne kafelki, ale tylko dla trzech kategorii. Ogólne poczucie, że strona jest, żeby być, nie żeby zachęcić…

Lepiej prezentuje się wersja mobilna, która z okazji zbliżającej się premiery nowego flagowca (Galaxy S5), w lutym doczekała się przyjemnego odświeżenia. Dla mnie było to szczególnie miłym zaskoczeniem, bo pamiętam, jak wyglądało to wcześniej. Przede wszystkim interfejs został spłaszczony i wykorzystano bardziej żywe kolory. Nie oceniam samej mody na tego typu interfejsy, tylko cieszę się, że aplikacja się rozwija. Sam układ jest zdecydowanie bardziej przemyślany niż wersja WWW (lepszy nawet niż w aplikacji Google Play?). Zamiast jednej długiej listy informacji o aplikacji, są zakładki, które pozwalają szybciej dotrzeć np. do recenzji.

Niestety nawet najładniejszy interfejs jest tylko skorupką. Nie da się nim zastąpić samych aplikacji, a z tym jest obecnie najgorzej. Policzyłem, że mam obecnie na swoim telefonie 44 samemu zainstalowanych aplikacji. W większości są to popularne tytuły, o których wielokrotnie się wspomina w mediach technologicznych. Sprawdziłem, ile z nich znajduje się w Samsung Apps i wyszło, że ledwie 10. Nie sposób ocenić, jak to wygląda u innych użytkowników, ponieważ Samsung nie publikuje nigdzie konkretniejszych informacji (ciekawe czemu…). Jedyne co udało mi się znaleźć w internecie, to informacje z 2011 roku, kiedy Samsung Apps oferowało aplikacje dla telefonów z systemem Bada i było to 13 tys. pozycji.

Pewien obraz tworzą jednak listy promujące. Wśród aplikacji polecanych przez Samsunga znaleźć można: Prince of Persia, aplikację Eurosportu, czy Rzeczpospolitej. Zastanawia mnie jednak czy faktycznie jest się czym chwalić, skoro lista ma w sumie tylko 70 miejsc (7 widoków, a w każdym 10 tytułów), a i tak ostatni widok prezentuje tylko połowę aplikacji i… drugie tyle pustych miejsc.

Jeszcze gorzej jest z listami najpopularniejszych aplikacji płatnych i bezpłatnych. Średnio oceniane Pou (coś a la tamagotchi), siermiężny Hammer, czy dwie inne aplikacje, które w ogóle nie doczekały się oceny. Użytkownicy nielubiący przepłacać najchętniej skanują kody QR i świecą Latarką Free - latarka. Latarka LED. Podświetlenie ekranu. oświetlenie (nie wiedzieć czemu sporo komentarzy zawiera słowo „zainfekowane”). Jestem teraz cholernie kąśliwy, ale pamiętam, jak takim czymś zachęcano dzieci w gimnazjum, żeby ściągnęły grę reklamowaną w MTV…

We need to go deeper!

Dla mnie dużo ciekawszy jest sam proces dodawania aplikacji. Jest bardziej złożony niż u Google'a, przede wszystkim ze względu na testy stabilności i selekcję mająca wyciąć aplikacje potencjalnie niebezpieczne. Czy można by chcieć czegoś więcej niż gwarancja jakości? W końcu dla wielu ta cecha decyduje o wyższości iTunes Apple'a nad sklepem Play. A jednak może rodzić to kontrowersyjne, np. wycięcie odtwarzacza VLC z iTunes za to… że jest na licencji GPL. Kluczowe hasło w samej idei selekcji to „czynnik ludzki”. Jeśli w przypadku Apple'a pojawiają się kłopoty, to…

Pół roku temu pracowałem nad kilkoma aplikacjami, które po uiszczeniu dodatkowej opłaty, miały oferować coś więcej (lub mniej, jeśli to była płatna blokada reklam). Wystarczy zaimplementować odpowiednie API Samsunga. Następnie jest test na sucho i jeśli wszystko gra, można aplikację zgłosić do testów. Na odpowiedź czekać trzeba ok. tygodnia (czasem była na drugi dzień, czasem po dwóch tygodniach). W odpowiedzi dostaje się udokumentowane wyniki testów. Zawierają one informacje na temat wykorzystywanych urządzeń i wersji Androida, a dla każdego z nich informację, czy aplikacja działała poprawnie. Jeśli nie, to opisane są jeszcze przyczyny odrzucenia aplikacji. Do tego też często dołączane są filmy prezentujące czynności, których wykonanie ujawniło błąd. Jak na razie wszystko w porządku, prawda?

Po kilku aplikacjach zaakceptowanych przez pracowników Samsunga, dostałem raport z odrzucenia. Żaden programista tego nie lubi, bo każdy wie, że jest debeściak i jego programy są bezbłędne. Z bólem serca podporządkowałem się i zacząłem przeglądać treść raportu oraz analizować nagrany film. Na filmie widać, jak testująca osoba włącza aplikację, przechodzi do ekranu zakupów, po czym pojawia się błąd. W raporcie czytam:

-itemId : 000001000018
-thirdPartyName : com.sec.android.iap.***
-statusCode : -1007
-errorString : Product does not exist in this store

Ale, że yyy?!

Jak ktoś jeszcze nie dostrzega problemu, to objaśniam. Tester chciał sprawdzić, czy robienie zakupów działa. Zakupy nie działają, ponieważ aplikacji nie ma jeszcze w sklepie. Aplikacji nie ma jeszcze w sklepie, ponieważ nie przeszła jeszcze testów. Aplikacja nie przeszła testów, ponieważ tester wykrył błąd przy robieniu zakupów. Tydzień zmarnowany, ponieważ „czynnik ludzki”… W sumie odrzucili mi w ten sposób 3 aplikacje. Pomogło dopiero dołączanie do aplikacji informacji tłumaczącej, że błąd się nie będzie pojawiał, jeśli aplikacja trafi do sklepu.

Here be dragons

Truizmem będzie, jeśli napiszę, że jeśli coś nie działa, jak należy i nie bardzo wiadomo czemu, zaczyna się szukać pomocy na zewnątrz. Czasem wystarczy odpowiednio silna i zorganizowana społeczność. StackOverflow? Z reguły można tam znaleźć odpowiedzi na większość pytań, często nawet poprawnych i zadowalających. Wszystko pod warunkiem, że inni ludzie korzystają z technologii sprawiających problemy :) .

Tak, znów zgadliście :( , pomocy tam się nie znajdzie. Jedynym miejscem, w którym jest sens jej szukać, jest oficjalne forum Samsunga. Na początek powtórka z rozrywki, czyli ktoś inny ma problem z bezsensownym odrzucaniem. Autor stworzył aplikację specjalnie na konkurs, czas się kończy, a frustracja rośnie. Na szczęście ktoś mu poradził zrobić to, co ja.

Innym razem przeglądając forum, trafiłem na wątek początkującego programisty, w którym pyta jak zaimplementować opłaty. W skrócie rozmowa wygląda tak:

– Jak zaimplementować?
– Przeczytaj dokumentację.
– Już to zrobiłem, ale nie jest ona zbyt czytelna
– Naucz się SDK Androida.

Not sure if we need to go deeper…

Napisałem, że kiedy coś nie działa, jak powinno, zaczyna się szukać pomocy na zewnątrz. Tylko dlaczego coś nie działa, jak powinno? Dlaczego ludzie szukają pomocy przy rzeczach trywialnych? Implementacja mechanizmów Googla sprawdza się najczęściej do wyszukania odpowiedniego poradnika na portalu dla programistów i uzupełnienia kodu krok po kroku według zaleceń. Kiedy przyszło mi zaimplementować to samo z API Samsunga, jedyne co dostałem, to niedziałająca aplikacja przykładowa, 20 stron w PDF-ie, gdzie wymieszane były kawałki dokumentacji, komentarze dla programistów i wskazówki błędnie sugerujące stosowanie flag oraz pliki z kodem źródłowym, zamiast pojedynczej biblioteki… To ostatnie w sumie trochę mnie uratowało, bo przy szczątkowej dokumentacji, nie byłbym w stanie zrozumieć zasady działania opłat, bez zaglądania do tego kodu. Żeby jednak programista nie czuł się zbyt komfortowo, jakoś kodu była odpowiednio wątpliwa.

Jeśli potrzebujesz więcej niż trzech poziomów wcięcia, twój kod i tak jest schrzaniony

Znacie ten cytat? A wyobraźcie sobie kod, w którym metody mają po 100, 200 linii kodu przyozdobionego komentarzami po koreańsku, mającego do pięciu poziomów wcięć.

Swoją drogą 'false == mProgressDialog.isShowing()' oraz '_context' to przynajmniej dwa dziwactwa. Negacja przez jawny 'false'? Metoda zaczyna się od 'm', a zmienna od '_'? To pierwsze jest dziwne, bo Java bez takich cudów już jest nadto gadatliwa. Jeśli zaś chodzi o nazewnictwo, Google ma swój standard kodowania i w jego opisie jest zaznaczone:

In Google Style special prefixes or suffixes, like those seen in the examples name_, mName, s_name and kName, are not used

W Samsungu ktoś chyba nie doczytał…

Co nas czeka?

Niesprawiedliwie byłoby, gdybym nie sprawdził, czy pół roku później nic się nie poprawiło, a jest trochę lepiej. Po pierwsze kod nie jest już zaśmiecony koreańskimi komentarzami. Nie udało mi się też znaleźć więcej specyficznych negacji (patrz wyżej). Reszta niestety po staremu…

Jeśli zaś chodzi o dokumentację, teraz udostępniony PDF zawiera instrukcję jak krok po kroku zaimplementować wewnętrzne płatności, tak samo, jak u Google'a. Nadal jednak nie rozumiem, dlaczego portal dla programistów nie został bardziej uporządkowany. Nie kojarzę, np. by gdzieś indziej jedyna forma dokumentacji zawierała się w pliku PDF. Ponadto nadal mam dziwne przeczucie, że Samsung udostępnia wyłącznie kod źródłowy, bo programista i tak będzie musiał do niego zaglądać.

Patrząc na tę platformę, dalej myślę, że publikowanie w niej aplikacji jest pozbawione sensu. Dla osób bardziej cierpliwych wartym uwagi może być jednak sam proces weryfikacji, bo jeśli testerzy nie będą robić głupot opisanych powyżej, za darmo przetestują naszą aplikację, czyli zrobią coś, co nie należy do tanich przedsięwzięć.

Dopóki zaś Android spoczywa w rękach Google'a, Samsung zawsze będzie jeden krok z tyłu, nigdy nie będzie tak szybko publikować aktualizacji systemu, a nietypowe rozwiązania mogą wymagać drastycznego przepisania, jeśli jakaś część jądra będzie się bardziej zmieniać w kolejnych wersjach AOSP. Trudno zrozumieć czemu Tizen ciągle czeka za kulisami i tylko nieśmiało zostaje pokazywany w zegarkach, czy zapowiadany w Galaxy Glass. Nie oczekiwałbym, że w rozwoju Androida Samsung prześcignie Google'a i jego usługi staną się realną konkurencją. Coraz bardziej boję się, że po systemie Bada to tylko kolejny raz zmarnowany potencjał i Tizen też tak może skończyć…

I mam nadzieję, że bardzo się mylę, nie wierząc w Samsunga i wreszcie coś się ruszy. 

oprogramowanie programowanie urządzenia mobilne

Komentarze