iOS 16 i watchOS 9 – tuning pod maską

W najnowszych iteracjach systemów operacyjnych dla urządzeń mobilnych Apple – iOS 16, i watchOS 9 – z punktu widzenia użytkownika nie zmienia się wiele. Ot, kolejne wersje systemów dla iPhone i Apple Watch bez większych innowacji. Dla właścicieli aplikacji kierowanych na te systemy Apple zmiany są widoczne i choć na razie nie są one szczególnie obciążające i czysto opcjonalne, to jednak są zapowiedzią większych restrykcji, których zapewne doczekamy się w kolejnych wersjach systemów – już niewątpliwie jako obowiązkowych do implementacji.

Chodzi naturalnie o dalsze zacieśnianie polityki prywatności do usług lokalizacyjnych, co ma niebagatelne znaczenie dla właścicieli aplikacji, których funkcjonalność opiera się o te usługi, takich jak np. systemy monitoringu.

Jak wiadomo, aby iOS lub watchOS przesyłały dane lokalizacyjne w tle, użytkownik musi wyrazić na to zgodę. Podczas pierwszego pytania o zgodę na lokalizację, iOS od wersji 16 w ogóle nie pokazuje użytkownikowi opcji „Pozwalaj zawsze” – jest tylko „Jeden raz” i „Gdy używam aplikacji”. Pole „Pozwalaj zawsze” pojawia się podczas drugiego pytania. W poprzednich wersjach iOS to drugie, uszczegółowione pytanie pojawiało się automatycznie po pierwszym wywołaniu funkcji lokalizacji w tle. Teraz mamy istotną zmianę – to iOS lub watchOS decydują samodzielnie kiedy je pokazać – decyzję podejmuje Neural Engine (koprocesor sztucznej inteligencji). Możliwa stała się zatem sytuacja, że Neural Engine pokaże to pytanie dopiero po jakimś czasie, a dopóki użytkownik nie zaakceptuje uprawnienia, dane lokalizacyjne w tle nie będą zsyłane – należy to uwzględnić w projekcie aplikacji.

Jest to jednak stosunkowo niewielka zmiana z punktu widzenia frontu aplikacji. Znacznie ciekawsze rzeczy dzieją się „pod maską” – Xcode (program deweloperski służący do projektowania aplikacji dla systemów Apple) pokazuje ostrzeżenia, nawet jeśli sprawdzenie czy usługi lokalizacyjne są dostępne w systemie odbywa się bez wcześniejszego przyznania uprawnień przez użytkownika. Mowa nie o skorzystaniu z lokalizacji, wyznaczeniu pozycji itd. – wystarczy samo sprawdzenie czy w systemie jest dostępna możliwość pobrania lokalizacji, bez faktycznego korzystania z niej, aby Xcode ostrzegał o nieuprawnionym dostępie. A to może oznaczać tylko jedno – w przyszłych wersjach systemów iOS i watchOS samo sprawdzenie, czy można korzystać z usług lokalizacyjnych będzie jeszcze bardziej ograniczone i możliwe do wykonania po uprzednim zapytaniu użytkownika o zgodę. Obecnie jest to tylko przypuszczenie, jednak jeśli miałoby się spełnić, wszystkie systemy i aplikacje opierające swoją funkcjonalność na wyznaczaniu pozycji urządzeń z iOS lub watchOS będą wymagały przeprojektowania na tyle znaczącego, że już obecnie watro te zmiany zacząć rozważać przynajmniej na poziomie koncepcyjnym.

Uprawnienia użytkownika w Androidzie 10 i nowszych

Projektując kolejne wersje systemu Android, Google dodaje kolejne uprawnienia i zmiany w tym systemie operacyjnym związane z prywatnością i ochroną danych użytkownika. Od wersji 11 w podsystemie uprawnień użytkownika dzieje się jednak prawdziwa rewolucja, wpływająca na wszystkie aktywnie wpierane aplikacje dostępne w Google Play.

Zmiany są częste – wprowadzane z każdą kolejną wersją systemu – i komunikowane w sposób charakterystyczny dla Google, czyli niejasno. Dlaczego moja aplikacja na Androida nagle przestała działać? – to chyba najczęściej w ciągu ostatnich dwóch lat stawiane nam pytanie przez właścicieli różnych aplikacji dostępnych w Google Play. Odpowiedź jest prawie zawsze taka sama – jeśli aplikacja korzysta z usług lokalizacyjnych, zapisuje dane na dysku użytkownika, ma wbudowane funkcje związane z bluetooth – to, to co działało do Androida 10, od Androida 11 działać nie będzie o ile aplikacja nie zapyta użytkownika o zgodę na używanie tych funkcjonalności i jeśli użytkownik się na ich używanie nie zgodzi.

W najnowszym wydaniu systemu Android – wersji 13 – pojawiły się kolejne uprawnienia wpływające na funkcjonalność aplikacji – wzorem iOS, Android pyta teraz użytkownika o pozwolenie na pokazywanie powiadomień. Jeśli użytkownik się nie zgodzi, aplikacja powiadomień wyświetlać nie będzie, a co za tym idzie zostaną wyłączone wszystkie funkcje zależne od pokazywania powiadomień, takie jak np. usługi lokalizacyjne w tle.

Warto mieć świadomość, że wprawdzie właścicieli aplikacji opartych o wspomniane funkcjonalności, takich jak np. systemy monitoringu, zmiany te mogą irytować, gdyż aplikacje praktycznie co roku wymagają znaczących aktualizacji pociągających za sobą koszty, to jednak z punktu widzenia użytkownika są to zmiany jak najbardziej słuszne i wprowadzone o wiele za późno.

Oficjalnym powodem wprowadzania zmian w systemie Android jest dbałość o prywatność użytkowników. W rzeczywistości tak daleko idące zmiany ograniczające Google możliwość śledzenia użytkowników są dla tej korporacji wyjątkowo niewygodne, gdyż uderzają bezpośrednio w model biznesowy producenta systemu operacyjnego (reklama i profilowanie danych), jednak firma została do nich zmuszona gigantyczną karą finansową wynoszącą ok. 4,5 miliarda euro za naruszanie prywatności użytkowników.

Aby nieco uporządkować system uprawnień w Androidzie i mieć świadomość czego należy się spodziewać krótki przewodnik po kolejnych wersjach uprawnień użytkownika w kolejnych wersjach Androida:

Android 9

Usługi bluetooth, lokalizacja za zgodą użytkownika, zapis danych na dysku będą działały tak jak wcześniej. Jeśli aplikacja korzysta ze stałego śledzenia pozycji użytkownika w tle, od Androida 9 obowiązkowe jest wyświetlanie stałego powiadomienia w bloku  tzw. cichych powiadomień na belce systemowej, że aplikacja cały czas działa w tle i zbiera dane o lokalizacji. Powiadomienie musi być stale obecne pomimo, że użytkownik wydał zgodę na takie działanie – ma przypominać użytkownikowi o wyrażonej zgodzie i fakcie, że w każdej chwili może ją cofnąć.

Android 10

Pierwsza poważna zmiana dla aplikacji, które swoją główną funkcjonalność budują na znajomości stałego położenia użytkownika. Wyznaczanie pozycji użytkownika działa tylko po wyrażeniu przez użytkownika zgody i tylko, gdy aplikacja jest uruchomiona. Wprowadzono nowe uprawnienie lokalizacyjne „Lokalizacja w tle”. Pytanie o to uprawnienie jest zawarte bezpośrednio w oknie z pytaniem o lokalizację pod nazwą „Zawsze zezwalaj” – stałe wyznaczanie pozycji użytkownika jest możliwe tylko jeśli użytkownik zaakceptuje to uprawnienie.

Android 11 i 12

Ta wersja systemu Android z punktu widzenia właścicieli aplikacji jest najbardziej kłopotliwa – nie obejdzie się bez dostosowania kodu i aktualizacji aplikacji. Android 11 całkowicie zmienia sposób obsługi uprawnienia „Lokalizacja w tle” – nie jest ono już pokazywane w dymku z pytaniem o lokalizację, a należy odesłać użytkownika do ustawień systemu, aby mógł wybrać odpowiednią opcję ręcznie. Jednak można to zrobić dopiero po tym, gdy użytkownik przyzna jakiekolwiek inne uprawnienie do lokalizacji – uzyskiwanie uprawnień lokalizacyjnych odbywa się zatem dwuetapowo.

Ta wersja systemu Android zmienia również uprawnienia do zapisu danych oraz używania funkcji bluetooth, aparatu i mikrofonu. Aplikacje mają całkowicie cofniętą możliwość zapisu danych w różnych folderach systemowych – zapis danych może się odbywać wyłącznie w dedykowanym folderze aplikacji. Aby uzyskać możliwość zapisu i odczytu danych z folderów plików multimedialnych – szczególnie istotne dla aplikacji korzystających z funkcji fotograficznych i funkcji mikrofonu – wprowadzono dodatkowe, szczególne uprawnienia podlegające silnym restrykcjom ze strony systemu operacyjnego.

Część uprawnień związanych z lokalizacją, aparatem, mikrofonem i bluetooth została przeniesiona do tzw. uprawnień specjalnych newralgicznych – korzystać z nich mogą tylko aplikacje, których funkcjonalności uzasadniają korzystanie z tych uprawnień, a ich publikacja w Google Play jest poprzedzona uzyskaniem dodatkowej zgody od Google na publikację w procesie rozszerzonej recenzji.

Android 13

W Androidzie 13 wprowadzono nowe uprawnienie „Pokazuj powiadomienia”. Same uprawnienia do lokalizacji działają tak, jak w Androidzie 11 i 12. Należy jednak zwrócić uwagę, że aby włączyć lokalizację w tle, już od Androida 9 trzeba pokazywać stałe powiadomienie w tzw. bloku „ciche” na belce systemu, informujące użytkownika, że aplikacja działa i zbiera dane o lokalizacji. Zatem w Androidzie 13, aby włączyć lokalizację w tle, użytkownik najpierw musi wyrazić zgodę na pokazywanie powiadomień, a dopiero następnie wyrazić zgodę na lokalizację w procesie dwuetapowego uzyskiwania pozwolenia.

WearOS 3 – czas na zmiany

Nowa wersja systemu Android dla zegarków nosi nazwę WearOS 3 i jest przez Google reklamowana jako rewolucja na rynku smartwatchy. Na razie nie ma zbyt wielu modeli zegarków opartych o tą wersję systemu – obecnie jest to najnowszy Galaxy Watch od Samsunga oraz Pixel Watch od Google, jednak z czasem będzie się to w naturalny sposób zmieniać.

Przy okazji wprowadzania nowej wersji zegarkowego systemu na rynek, Google wywołało potężne zamieszanie twierdząc, że aplikacje napisane dla poprzedniej wersji systemu WearOS 2 nie będą kompatybilne z WearOS 3. W rzeczywistości tak nie jest – znakomita większość oprogramowania napisanego dla WearOS 2 działa bezproblemowo na WearOS 3. Trudno spodziewać się, żeby było inaczej skoro WearOS 3 to w istocie Android 11, a WearOS 2 to po prostu Android 9. Czym innym jednak są wymagania Google w przypadku aplikacji dla WearOS wydawanych w sklepie Google Play – tutaj rzeczywiście nastąpiły znaczące zmiany.

Wszelkie niekompatybilności programowe mogą wynikać jedynie z faktu, że nowsze wydanie WearOS jest oparte o wersję 11 Androida, zatem wszelkie mechanizmy znane z „dużej” wersji systemu są obecne i tutaj – w szczególności dotyczy to podsystemu uprawnień użytkownika do lokalizacji, zapisu danych na dysku, korzystania z aparatu, mikrofonu i bluetooth. Aplikacje korzystające z tych uprawnień podlegają takim samym ograniczeniom, jak aplikacje na telefonach i wymagają dostosowania.

W Google Play nastąpiła jedna istotna zmiana – aby wydać aplikację na zegarek w sklepie, musi ona być kompatybilna z WearOS 3, a konkretniej z wytycznymi Google dotyczącymi jakości określonymi dla tego systemu. Największą zmianą jest całkowita rezygnacja z poziomej obsługi kart na rzecz podejścia bardziej „telefonicznego” – ekrany aplikacji mają być przewijane pionowo. Dotychczas charakterystyczny dla WearOS layout poziomy oparty na gestach przesuwania w prawo i lewo jest według nowych wytycznych niemile widziany. To niekiedy implikuje konieczność wprowadzenia bardzo głębokich zmian w aplikacji.

O ile implementacja nowego systemu uprawnień z Androida 11 nie stanowi większej zmiany dla użytkownika – zegarek po prostu w odpowiednim momencie zadaje dodatkowe pytanie, czy użytkownik wyraża zgodę na daną czynność – o tyle często całkowita zmiana interfejsu użytkownika aplikacji wpływa na interakcję z aplikacją i doświadczenie z tego płynące. Pomijając koszy, które taka zmiana za sobą pociąga dla właścicieli aplikacji na WearOS, ma to szczególne znaczenie w przypadku aplikacji, które wykorzystywane są na co dzień i do których sposobu obsługi użytkownicy są przyzwyczajeni – całkowita zmiana sposobu używania aplikacji może spowodować jej porzucenie przez użytkownika. Dlatego planując rozwój swojej aplikacji na WearOS należy obecnie szczególną wagę przyłożyć do UX, zwłaszcza jeśli aplikacja była zaprojektowana zgodnie z dotychczasowym „flow” systemu wearOS.

Wsparcie Google Play dla deweloperów to fake

For the English translation please scroll the page down.


Dzisiejszy wpis będzie przeznaczony dla developerów i wydawców mających do czynienia z Google Play od strony „kuchni” – czyli konsoli Google Play. Wszyscy wiemy, że ostatnio dzieje się na tej platformie coś niedobrego, a relacje pomiędzy developerami, a Google Play są – delikatnie mówiąc – napięte. Trudno powiedzieć, czy to ze względu na braki kadrowe spowodowane pandemią, czy po prostu Google już tak urosło w pozycję monopolisty, że zaczęło ignorować podstawową zasadę jakichkolwiek relacji – wzajemny szacunek. Gorzej – zaczęło obrażać inteligencję partnerów.

Każdy deweloper wie jak trudne bywają relacje z Google Play. Ciągłe zmiany regulaminu, brak informacji z wyprzedzeniem o konieczności zmian, usuwanie aplikacji ze sklepu bez ostrzeżenia i dania możliwości dostosowania się do wymagań. Systemowy, instytucjonalny i intencjonalny brak jakiejkolwiek realnej drogi odwoławczej. I wieczne próby nieudolnego udowadniania, że wszystko zawsze jest winą dewelopera, który nie przestrzega zasad Google Play. Wszyscy przyzwyczailiśmy się do takiego stanu rzeczy – abstrahując od tego na ile jest zasadne i dlaczego pozwalamy się w ten sposób traktować – jednak takiego popisu niekompetencji jaki Google Play dało nam ostatnio nie sposób pominąć milczeniem.

W każdej komunikacji z developerami, Google twierdzi, że za ich działaniami stoją specjaliści. Tak niestety nie jest, a znakomitą większość korespondencji załatwia automat – nikt w Google nie czyta korespondencji, o czym jesteśmy przekonani. Ale na potrzeby opisu poniższej sytuacji przyjmijmy, że, zgodnie z treścią, jaką przekazuje Google w swoich komunikatach, za tym rzeczywiście stoi człowiek. A więc, jeśli tak jest drogie Google, ludzie zatrudnieni przez was jako support Google Play są na tyle skrajnie niekompetentni, że… nie potrafią poprawnie przepisać hasła w pole logowania.

Otóż ostatnio publikowaliśmy w Google Play aplikację dla jednego z samorządów. Aplikacja jest w języku polskim, dystrybuowana tylko na Polskę i wymaga aktywacji za pomocą loginu użytkownika. Podaliśmy potrzebne loginy w konsoli Google Play, aby osoby przeprowadzające sprawdzanie aplikacji przed opublikowaniem mogły ją aktywować. Dwa dni później przychodzi e-mail od Supportu Google, że aplikacja została odrzucona, gdyż podane dane są niepoprawne i nie można aktywować aplikacji. Do e-maila dołączono zrzuty ekranu mające obrazować nieudane próby aktywacji aplikacji. Pierwsza myśl – musieliśmy pomylić się wpisując dane w konsoli Google Play. Sprawdzamy – dane są poprawne. Zatem o co chodzi? Szybka analiza przesłanych przez Google zrzutów ekranu ujawniła jedno – ani razu nie wpisano poprawnie podanych loginów! Jak można aktywować aplikację, jeśli nie wpisze się poprawnego hasła? I żeby te hasła były jakieś skomplikowane… Nie, najprostsze, typowe, testowe frazy, aby nie utrudniać życia ludziom testującym aplikację. Aby nie być gołosłownym loginy brzmiały „StudentTestowy”, „InstruktorTestowy” i „InstruktorTestowyPanel”. To co wpisywał „recenzent” Google w pole logowania możecie zobaczyć na załączonych screenach – wielkie i małe litery nie miały dla niego jakiegokolwiek znaczenia… I nasze absolutnie ulubione – automatycznie przetłumaczone polskie słowo „Instruktor” na angielskie „instructor”. Hasło z pomylonymi wielkimi i małymi literami oraz z frazami przetłumaczonymi automatycznie na inny język, co zmienia w nich znaki, nie działa? To wina dewelopera! Serio? Drogie Google, powodzenia w udowadnianiu nam, że tą „recenzję” robił człowiek.

No cóż – uśmialiśmy się i skorzystaliśmy z możliwości odwołania – teoretycznie istnieje taka możliwość. Napisaliśmy grzecznie, że dane podane w konsoli Google Play są poprawne, proszę je po prostu dokładnie przepisać. Podczas wysyłania formularza odwołania jest komunikat: „Twoją sprawą zajmie się specjalista, ale musisz być cierpliwy, bo jest pandemia i nie wyrabiamy z ilością zgłoszeń”. Odpowiedź na owe odwołanie nawet nas nie zdziwiła. Cytujemy „Jak będziesz gotowy podać nam poprawne dane logowania, to to zrób”. No przecież właśnie Wam napisaliśmy, że podaliśmy poprawne dane…

Aby nie przedłużać – aplikacji w Google Play nie sprawdzają ludzie i nikt w Google nie czyta ewentualnych odwołań. Automat na podstawie powodu odrzucenia aplikacji wysyła predefiniowaną odpowiedź. Krótko rzecz ujmując, jakikolwiek support Google Play to fake.

Oczywiście możemy uznać, że nasze aplikacje są z punktu widzenia Google bezwartościowe – są bezpłatne, nie pokazują setek reklam i nie mają zakupów w aplikacji – z punktu widzenia Google Play nie przynoszą zatem zysków. Aplikacja samorządowa, opłacona z pieniędzy podatników, nie dokłada się bezpośrednio do wyniku finansowego platformy Google – to jest bezsporne. Niemniej jednak nie możemy przyjąć braku elementarnego poszanowania dla inteligencji partnerów. Tak drogie Google – developer mający dostęp do konsoli Google Play to Wasz partner, wspierający platformę swoją pracą i innowacyjnością. Chyba o tym całkowicie zapomnieliście.


Today’s post will be for developers and publishers dealing with Google Play from the „behind the scenes” – which is the Google Play console. We all know that recently something bad is happening on this platform, and the relationships between developers and Google Play is – to put it mildly – tense. It’s hard to say whether this is due to staff shortages caused by the pandemic, or simply Google has grown so much in the position of a monopolist that it began to ignore the basic principle of any relationship – mutual respect. Worse – it began to insult the intelligence of its partners.

Every developer knows how difficult the relationship with Google Play can be. Constant changes to the rules, no information in advance about the need for changes, removal of applications from the store without warning and giving the opportunity to adapt to the requirements. Systemic, institutional and intentional lack of any real way to appeal. And eternal attempts to ineptly prove that everything is always the fault of the developer who does not follow Google Play rules. We’ve all become accustomed to this state of affairs – regardless of how justified it is and why we allow ourselves to be treated this way – but the display of incompetence that Google Play has recently given us cannot be passed over in silence.

In every communication with developers, Google claims to have specialists behind their actions. Unfortunately, this is not the case, and the vast majority of correspondence is handled by an automaton – no one at Google reads correspondence, which we are convinced of. But for the purpose of describing the following situation, let’s assume that, according to the content Google communicates in its messages, there is indeed a human behind this. So, if this is the case dear Google, the people you employ as Google Play support are so extremely incompetent that…. can’t rewrite the password correctly into the login field.

Well, recently we published in Google Play an application for one of the local governments. The application is in Polish language, distributed only in Poland and requires activation with user login. We have provided the necessary logins in the Google Play console, so that people checking the application before publication could activate it. Two days later, we receive an email from Google Support saying that the application has been rejected because the data provided is incorrect and the application cannot be activated. The email is accompanied by screenshots supposed to illustrate the failed attempts to activate the app. The first thought – we must have made a mistake when entering the data in the Google Play console. We check – the data are correct. So what is it all about? A quick analysis of screenshots sent by Google revealed one thing – not once were the logins entered correctly! How can you activate the application if you do not enter the correct password? And if these passwords were somehow complicated… No, the simplest, typical, test phrases, so as not to make life difficult for people testing the application. To avoid being lip service, the logins were „StudentTestowy”, „InstruktorTestowy” and „InstruktorTestowyPanel”. You can see what the Google „reviewer” typed into the login field on the attached screenshots – uppercase and lowercase letters had no meaning for him… And our absolute favorite – automatically translated Polish word „Instruktor” into English „instructor”. Password with mixed up uppercase and lowercase letters and phrases automatically translated into another language, which changes characters in them, does not work? That’s the developer’s fault! Really? Dear Google, good luck proving to us that this „review” was done by a human.

Well – we laughed and took the opportunity to appeal – theoretically there is such a possibility. We wrote politely that the data given in the Google Play console is correct, please just transcribe it exactly. When sending the cancellation form there is a message: „Your case will be handled by a specialist, but you must be patient, because there is a pandemic and we can’t keep up with the number of requests”. The response to this appeal did not even surprise us. We quote „When you are ready to provide us with correct login details, please do so”. Well, we just wrote you that we gave you the correct data…

Conclusion – applications in Google Play are not checked by people and nobody in Google reads any appeals. Based on the reason for application rejection, the automaton sends a predefined response. In short, any Google Play support is fake.

Of course, we can consider our apps worthless from Google’s point of view – they are free, don’t show hundreds of ads and don’t have in-app purchases – so from Google Play’s point of view, they are not profitable. The local government app, paid for with taxpayers' money, does not contribute directly to the bottom line of Google’s platform – this is indisputable. Nevertheless, we cannot accept the lack of elementary respect for the intelligence of partners. Yes dear Google – a developer who has access to the Google Play console is your partner, supporting the platform with their work and innovation. You seem to have completely forgotten this.

Prywatność 2.0

W ubiegłym roku omawialiśmy planowane zmiany w Google Play w zakresie ochrony prywatności użytkowników. Jeśli macie aplikacje na Androida na tej platformie przypominamy, że termin obowiązkowego wprowadzania zmian zbliża się nieubłaganie – deadline to styczeń 2022. Warto poświęcić zagadnieniu chwilę uwagi, aby uniknąć nieprzyjemnej niespodzianki w postaci wyrzucenia aplikacji ze sklepu. Zmiany są znaczące i implikują aktualizację kodu aplikacji.

Dla wszystkich aplikacji trzeba wypełnić odpowiednią sekcję dotyczącą danych zbieranych przez aplikację w zakładce „Informacje o aplikacji” na karcie waszej aplikacji w konsoli Google Play. Jednak jeśli wasza aplikacja korzysta z jednego z tych uprawnień:

  • telefon,
  • SMS,
  • czujniki zdrowia,
  • lokalizacja w tle,

musicie wprowadzić odpowiednie zmiany w samej aplikacji, opublikować aktualizację i wypełnić formularz uprawnień w konsoli Google Play. Każda aplikacja korzystająca, z któregoś z wymienionych uprawnień jest ręcznie zatwierdzana przez Google. Oprócz odpowiednich zapisów w Polityce Prywatności, w samej aplikacji musi znaleźć się informacja, że aplikacja korzysta z uprawnienia newralgicznego i wyjaśnienie w jakim celu to robi.

Nie wystarczy samo uzyskanie zgody użytkownika na wykorzystanie uprawnień. W aplikacji musi znaleźć się stosowna informacja wyeksponowana w miejscu łatwo widocznym podczas normalnego użycia aplikacji. Mając tak zaktualizowaną aplikację, należy przesłać update do sklepu Google Play, wypełnić formularz uprawnień i dołączyć film pokazujący wykorzystanie w aplikacji uprawnienia newralgicznego.

Tak – dobrze czytacie – musicie wyprodukować film tylko i wyłącznie na potrzeby recenzentów Google. Dlaczego? Bo tak. Potem pozostaje już tylko czekać na decyzję Google. Pomimo spełnienia wszystkich wymagań nie ma żadnej gwarancji, że Google aplikację wam zatwierdzi, a drogi odwoławczej, jak zwykle w wypadku tej korporacji, nie ma. No chyba, że jako drogę odwoławczą potraktujecie skargę do Urzędu Ochrony Konkurencji i Konkurenta.

Google tłumaczy powody tak restrykcyjnego modelu dystrybucji potrzebą ochrony prywatności użytkowników – w praktyce jest to przerzucenie na Was, jako wydawców, odpowiedzialności za problemy tej korporacji z Komisją Europejską, rządem Australii i wielu innych państw, które nałożyły na tę firmę wielomiliardowe kary za praktyki monopolistyczne i notoryczne naruszanie prywatności użytkowników urządzeń z Androidem.

W każdym bądź razie, jeśli macie w Google Play aplikacje korzystające z któregoś z wymienionych uprawnień, nie powinniście tych zmian ignorować. Warto o tych problemach pamiętać także planując przyszłe aplikacje na Androida, jeśli mają być dystrybuowane za pomocą Google Play. Gdy macie w planach wykorzystanie któregoś z uprawnień newralgicznych rozważcie, czy na pewno są wam potrzebne lub rozważcie inne platformy dystrybucji jak Google Play, gdyż nie ma pewności, że program zostanie opublikowany nawet pomimo spełnienia wszystkich formalnych wymogów. Będzie to zależało wyłącznie od kaprysu anonimowego pracownika Google, a jedyną drogą odwoławczą jest długa i kosztowna batalia sądowa przeciwko tej korporacji na jej terenie, czyli w USA.

Tizen - co to takiego

Lubicie swoje zegarki Samsung Galaxy Watch i cienicie je za długi czas pracy na baterii i sprawny interfejs systemu Tizen, o który są oparte? Zatem dbajcie o swoje urządzenia i noście je jak najdłużej, bowiem czas Tizena w zegarkach Samsunga dobiega końca. A ponieważ Samsung to – o ile nam wiadomo – jedyny producent opierający smartwatche o Tizena, zatem ogólnie czas Tizena w zegarkach dobiega końca. Samsung oficjalnie bowiem ogłosił we współpracy z Google, że kolejne linie smartzegarków z serii Galaxy będą wyposażone o system Google WearOS (zmodyfikowany, zegarkowy Android) z nakładką Samsunga OneUI.

Nie sprecyzowano przyczyn tej decyzji, jednak dla każdego obserwatora rynku elektroniki użytkowej są one jasne – system płatności mobilnych. Samsungowi nie udało się przebić z własnym systemem płatności Samsung Pay, a Google ma szeroko rozpowszechniony i popularny Google Pay. Jeśli zatem macie aplikację dla smartzegarków tylko na Tizena, konkluzja jest prosta – czas na opracowanie wersji dla WearOS, jeśli zależy wam na rozwijaniu bazy użytkowników.

Jest o co powalczyć – Tizen w wersji noszonej był jednym z najpopularniejszych systemów operacyjnych na rynku smartwatchy. Obecnie największy udział ma watchOS (Apple Watch) – 40% rynku – i właśnie Tizen (zegarki Samsunga) – 25-30% rynku. Zegarki z WearOS to zaledwie ok. 5% rynku. Za sprawą ruchu Samsunga należy przypuszczać, że udział WearOS znacząco wzrośnie, choć zapewne część użytkowników przejdzie na urządzenia Apple.

Tizen oczywiście nadal będzie królował na rynku TV. W przypadku Smart TV jest na pierwszym miejscu – ma 50% rynku, na drugim Android TV – 25%. Planując aplikację na TV nie można zatem pominąć obydwu systemów, jednak Tizen TV wciąż pozostaje pierwszym wyborem.

Watch OS 8 - update bezobjawowy

Ogólna stagnacja na rynku technologii mobilnych trwa w najlepsze. Nie można się temu wrażeniu oprzeć również patrząc na zmiany wprowadzane przez Apple w systemie watchOS dla zegarka Apple Watch. Z jednej strony plotki głoszą, że jesienią dostaniemy zmieniony wygląd zegarka i nieco większy ekran, z drugiej strony wręcz całkowite status quo w systemie operacyjnym. Tak – watchOS 8, to watchOS 7 z kosmetycznymi zmianami z gatunku tych bezobjawowych 🙂

Jeśli jesteście posiadaczami aplikacji na Apple Watch i owa aplikacja pracuje poprawnie na watchOS 6 i watchOS 7, to nową wersję systemu watchOS 8 – przynajmniej na etapie obecnej wersji beta – możecie z czystym sumieniem zignorować. Oczywiście jakieś drobne zmiany w samym systemie są – nowe tarcze zegarka, nowe drobne funkcje zorientowane na użytkownika itd. jednak w kwestiach, pod którymi my rozpatrujemy nowe wersje systemów operacyjnych – ewentualnych wymaganych korekt w aplikacjach i potrzeby ich aktualizacji – jakichkolwiek zmian odnotowano. Ten update systemu watchOS jest przeznaczony przede wszystkim dla użytkowników końcowych, dla deweloperów wnosi niewiele, a dla właścicieli aplikacji nic.

iOS 15 jak iOS 14

Nowa wersja systemu iOS dla iPhone i iPadów – iOS 15 – będzie dostępna jesienią. Mamy pierwsze deweloperskie wersje beta zatem, jak co roku, w naszych wczesnych testach skoncentrujemy się na ewentualnych zmianach wymagających aktualizacji aplikacji opublikowanych w App Store, abyście wiedzieli, czy trzeba przygotować się na ewentualne zmiany.

Na pierwszy rzut oka – po przejściu na springboard (pulpit) urządzenia – iOS 15 różni się od iOS 14 w jeszcze mniejszym stopniu, niż iOS14 różnił się od iOS 13. Zmiany naturalnie są, jednak są to korekty czysto kosmetyczne. Nic, co spowoduje, że aplikacje działające na iOS 14 będą wymagały aktualizacji. Nie zauważyliśmy niekompatybilności na poziomie kodu, tak więc jeśli nie planujecie udostępniać waszym użytkownikom nowych funkcjonalności wprowadzanych wraz z iOS 15, nie musicie planować aktualizacji.

Przyglądając się nowemu iOS warto także pamiętać o zmianach w App Store, które zaczną ostatecznie obowiązywać pod koniec roku. Podobnie jak w Google Play będą to zmiany dotyczące prywatności użytkowników i wykorzystywania danych przez aplikacje. W App Store, na karcie każdej aplikacji pojawiła się nowa sekcja dotycząca prywatności – jest to rozbudowany formularz dotyczący ochrony prywatności i wykorzystania danych. Każdy właściciel aplikacji będzie musiał go obowiązkowo wypełnić chcąc opublikować aktualizację programu lub wydać nową aplikację.

Android 12 - zmiany kosmetyczne

Nowy Android został właśnie zaprezentowany – tym razem o numerze 12 i oznaczeniu kodowym Q. Jak co roku przyglądamy się becie, aby sprawdzić na co należy być przygotowanym i czy w ogóle trzeba coś robić, jeśli macie aplikacje na Androida opublikowane na platformie Google Play, czy też w innym sklepie. Ostateczna wersja systemu będzie dostępna jesienią i wówczas ewentualne zmiany zostaną wprowadzone w konsoli Google Play. Posiadacze aplikacji opublikowanych w HUAWEI AppGallery nie muszą się specjalnie zastanawiać, gdyż ta platforma jest oparta o AOSP (Android Open Source Project) i jako taka nie podlega zmianom i wymaganiom wprowadzanym przez Google w usługach i serwisach tej firmy.

Wydawcy mogą odetchnąć – nowa aktualizacja Androida nie wnosi praktycznie żadnych zmian w kwestiach kompatybilności. Ogólnie zmiany w systemie należą do kategorii kosmetycznych i optymalizacyjnych – znaczne korekty w wyglądzie, nowy wygląd powiadomień, zmiany estetyczne typu dopasowywanie koloru wyróżnień do koloru tapety, uporządkowanie belki systemowej, porządki w szufladce ustawień itp.

Mając aplikację na Androida zawsze jednak trzeba zwracać uwagę na tzw. target, czyli wersję API, na którym aplikacja jest oparta. Obecnie aby opublikować aplikację lub wydać aktualizację w Google Play wymagany jest target 30, czyli aplikacja musi być dostosowana do Androida 11. Nowa wersja Androida ma target 31, jednak nie zmienia wymagań targetu minimalnego – nadal jest to 30. Od przyszłego roku będzie to jednak target 31. Nie dostrzegliśmy pomiędzy targetami jakichkolwiek niekompatybilności, zatem jeśli wasza aplikacja jest targetowana numerem 30 to raczej nie musicie się niczym martwić, a jeśli macie aplikację targetowaną niższym API i tak musicie ją dostosować do targetu 31 jeśli chcecie opublikować aktualizację.

Prywatność 2.0

Omawiając wersje beta nowych systemów operacyjnych Android i iOS wspominaliśmy, że szykują się znaczne zmiany w zakresie ochrony prywatności użytkowników zarówno w Google Play, jak i w App Store. To, co kilka miesięcy temu nie było do końca jeszcze wiadome, teraz jest już pewne. Zmiany dotyczą zarówno Google Play, jak i App Store, zatem jeśli macie aplikacje na którejś z tych platform zdecydowanie warto się im przyjrzeć bliżej. Pozwoli to uniknąć nieprzyjemnej niespodzianki w postaci wyrzucenia aplikacji ze sklepu. Zmiany w iOS nie wymagają aktualizacji kodu aplikacji, w Androidzie w niewielkim stopniu. Na obu platformach wymagają jednak zainteresowania się tym, co dzieje się na waszym koncie.

Zacznijmy od App Store, gdyż tu zmiany są mniej restrykcyjne dla właściciela aplikacji. Jeśli nie planujecie nic robić ze swoją aplikacją, to nie musicie czytać dalej – zmiany nie dotyczą dotychczas wydanego kodu. Jeśli jednak planujecie nową aplikację lub publikację aktualizacji dla istniejącej aplikacji koniecznie zajrzyjcie do nowej sekcji „Prywatność” widocznej na karcie aplikacji w App Store. Znajdziecie tam rozbudowany formularz dotyczący prywatności i sposobu wykorzystywania danych przez waszą aplikację, który trzeba wypełnić przed przesłaniem aplikacji lub aktualizacji do recenzji. Formularz jest szczegółowy, jego wypełnianie irytujące, jednak jeśli przez to nie przebrniecie, aplikacja nie zostanie opublikowana. W samym kodzie aplikacji nowe opcje prywatności App Store nie implikują zmian – po stronie iOS wszystko pozostaje bez zmian.

W Google Play jest dużo bardziej restrykcyjnie. Zmiany są znaczące i implikują aktualizację kodu aplikacji. Jeśli wasza aplikacja korzysta z jednego z uprawnień newralgicznych: telefon, SMS, czujniki zdrowia, lokalizacja w tle, do 17 stycznia 2021 macie czas, aby wprowadzić w niej odpowiednie zmiany, opublikować aktualizację i wypełnić stosowny formularz uprawnień w sklepie Google Play. Każda aplikacja korzystająca, z któregoś z tych uprawnień będzie ręcznie zatwierdzana przez Google. Oprócz odpowiednich zapisów w Polityce Prywatności, w samej aplikacji musi znaleźć się informacja, że aplikacja korzysta z uprawnienia newralgicznego i wyjaśnienie po co to robi. Nie wystarczy uzyskanie zgody użytkownika na wykorzystanie uprawnień. W samej aplikacji też musi znaleźć się stosowna informacja. I to nie gdzieś w menu, wyskakującym oknie itp. – informacja ma być wyeksponowana w miejscu łatwo widocznym podczas normalnego użycia aplikacji. Po takim zaktualizowaniu kodu aplikacji, należy przesłać pakiet update do Google Play, wypełnić formularz uprawnień (w wymaganiach m.in. załączenie filmu pokazującego wykorzystanie uprawnienia newralgicznego – sic!) i czekać na decyzję Google. Pomimo spełnienia wszystkich wymagań nie ma żadnej gwarancji, że Google aplikację wam zatwierdzi, a drogi odwoławczej, jak zwykle w wypadku tej firmy, nie ma. Abstrahując od powodów, dla których Google zdecydowało się na tak restrykcyjny model, warto o tych zmianach pamiętać również planując przyszłe aplikacje na Androida, jeśli mają być dystrybuowane za pomocą Google Play – jeśli macie w planach wykorzystanie któregoś z uprawnień newralgicznych, nie ma pewności, że program zostanie opublikowany nawet pomimo spełnienia wszystkich formalnych wymogów – po 17 stycznia 2021 będzie to zależało wyłącznie od kaprysu Google. Warto zatem kilkukrotnie przemyśleć, czy wasza aplikacja na Androida na pewno będzie potrzebować np. funkcji SMS lub lokalizacji w tle.