3 rzeczy, które Apple powinno poprawić w Screen Time API

Na co trafiłem, budując tę samą blokadę aplikacji na iPhone'a i Androida. Thomas Willheim · 30 września 2026

Robię HonorFit, blokadę aplikacji, w której zarabiasz czas przed ekranem, robiąc pompki (na słowo honoru, bez kamery). To ta sama aplikacja na iPhone'a i Androida, ten sam pomysł i w większości ten sam kod. I szczerze? Wersja na Androida jest wygodniejsza w użyciu.

Nie dlatego, że Android lepiej blokuje aplikacje. Samo blokowanie w Screen Time API na iOS działa naprawdę solidnie. Chodzi o to, że iOS ogranicza cię w trzech konkretnych sprawach i żadne z tych ograniczeń nie wygląda na coś, co chroni użytkowników. Oto moja lista, razem z tym, o co poprosiłbym Apple. Starałem się trzymać rzeczy, które nikogo nie kosztowałyby ani odrobiny prywatności.

(Jeśli chcesz konkretów o budowaniu na tym API, opisałem je osobno: czego nie powie ci dokumentacja Apple.)

1. Z Czasu przed ekranem może naraz korzystać tylko jedna aplikacja

Powiedzmy, że używasz już Brick, Opal albo one sec i chcesz wypróbować też HonorFit. Na iPhonie się nie da. Kiedy druga aplikacja prosi o dostęp do Czasu przed ekranem, iOS nawet nie pokazuje okna z prośbą o zgodę. Po prostu zwraca błąd, że Family Controls może naraz używać tylko jedna aplikacja. Sam widziałem ten błąd i inni deweloperzy też na niego trafiają.

Żeby się przełączyć, musisz wejść w Ustawienia › Czas przed ekranem › Aplikacje z dostępem do Czasu przed ekranem, wyłączyć tamtą aplikację, a czasem jeszcze zrestartować telefon. HonorFit wykrywa teraz ten błąd i prowadzi ludzi przez te kroki, bo surowy komunikat o błędzie nic nie mówi zwykłemu człowiekowi.

Komunikat HonorFit na iPhonie: „Another app is using Screen Time” (Inna aplikacja korzysta z Czasu przed ekranem). iOS pozwala tylko jednej aplikacji naraz sterować Czasem przed ekranem; poniżej kroki, jak wyłączyć tamtą aplikację w Ustawieniach
Co widzą użytkownicy iPhone'a w HonorFit, gdy inna aplikacja ma już dostęp do Czasu przed ekranem. Sam iOS przekazuje aplikacji tylko błąd, więc to wyjaśnienie jest nasze.

I tu robi się dziwnie: kiedy Apple przedstawiało ten rodzaj autoryzacji na WWDC22, mówiło, że w przeciwieństwie do autoryzacji w ramach kontroli rodzicielskiej autoryzacja indywidualna może być używana przez dowolną liczbę aplikacji na urządzeniu. Dziś tak to nie działa, a nigdzie nie znalazłem tego udokumentowanego.

Dlaczego to nie leży w interesie użytkowników: ludzie łączą różne narzędzia. Ktoś może używać Bricka do sesji twardego skupienia w pracy, a HonorFit do zarabiania na wieczorne scrollowanie. Apple ma już zasadę łączenia ograniczeń: kiedy kilka obiektów ManagedSettingsStore ustawia to samo, to słowami Apple „the most restrictive setting always wins” (zawsze wygrywa najbardziej restrykcyjne ustawienie). Ta sama zasada między aplikacjami pozwoliłaby korzystać z obu, a telefon mógłby przez to być tylko bardziej zablokowany, nigdy mniej.

O co bym poprosił: niech indywidualną autoryzację Czasu przed ekranem może mieć więcej niż jedna aplikacja, tak jak opisano to na WWDC22, a ich osłony niech się łączą według tej samej zasady „wygrywa najbardziej restrykcyjne”. Jeśli to ograniczenie ma jakiś prawdziwy powód, udokumentujcie go i dajcie aplikacjom porządny kod błędu, żeby mogły to wyjaśnić.

2. Okno wyboru aplikacji jest toporne, a aplikacje nie mogą go dostosować

Na iPhonie wybieranie aplikacji do zablokowania oznacza FamilyActivityPicker od Apple. To systemowy arkusz, którego aplikacja nie może zmienić, poza jedną linijką tekstu w nagłówku i stopce. Otwiera się na liście kategorii (Społecznościowe, Gry, Rozrywka…), a konkretnych aplikacji szukasz, wchodząc w kategorię. Na Androidzie listę buduję sam, więc HonorFit pokazuje zainstalowane aplikacje posortowane według tego, ile używałeś każdej z nich przez ostatnie 24 godziny.

Okno wyboru aplikacji Czasu przed ekranem w iOS: lista kategorii aplikacji, z rozwiniętą kategorią Health & Fitness (Zdrowie i fitness) pokazującą jej aplikacje
iPhone: okno wyboru od Apple. Najpierw kategorie, zero danych o użyciu, takie samo w każdej aplikacji.
Okno wyboru aplikacji HonorFit na Androidzie: aplikacje z czasem użycia z ostatnich 24 godzin, od najczęściej używanych
Android: własna lista HonorFit, posortowana według czasu użycia, więc najgorsze aplikacje są na samej górze.

W wersji na iOS przeszkadzają mi dwie rzeczy:

To nie kosztowałoby ani odrobiny prywatności. Okno wyboru rysuje iOS we własnym procesie. Aplikacja nigdy nie widzi, co w nim jest, dostaje tylko nieprzezroczyste tokeny tego, co wybrałeś. HonorFit dosłownie nie wie, jakie aplikacje wybrałeś. iOS mógłby więc pokazywać czas użycia bezpośrednio w oknie wyboru, a aplikacja i tak niczego by się nie dowiedziała. Apple robi już coś podobnego w rozszerzeniach DeviceActivityReport, które pokazują twoje użycie w piaskownicy, której aplikacja nie może odczytać.

O co bym poprosił:
  1. Opcję okna wyboru, która pozwala wybierać całe kategorie albo tylko aplikacje, żeby blokada aplikacji mogła pokazać listę samych aplikacji bez przypadkowego zaznaczania kategorii (i ukryć strony internetowe, jeśli z nich nie korzysta).
  2. Opcję sortowania według zmierzonego czasu przed ekranem i pokazywania go przy każdej aplikacji, rysowanego przez iOS, żeby aplikacja nigdy nie widziała tych liczb.

3. Nie widać dokładnego odliczania pozostałego czasu

W HonorFit zarobiony czas schodzi tylko wtedy, gdy faktycznie jesteś w zablokowanej aplikacji. Najbardziej oczywiste jest więc pokazanie odliczania: „zostało 12:34”, tykające, gdy scrollujesz, i zatrzymujące się, gdy wychodzisz.

Na Androidzie to proste. Usługa HonorFit działająca w tle co sekundę sprawdza, która aplikacja jest na ekranie, a powiadomienie korzysta z wbudowanego w Androida licznika odliczającego, więc panel powiadomień sam odświeża go co sekundę. Ściągasz panel i widzisz dokładnie, ile czasu ci zostało, co do sekundy.

Na iPhonie to niemożliwe, i oto dlaczego:

Użytkownicy iPhone'a dostają więc przybliżenie, a użytkownicy Androida prawdziwą liczbę.

O co bym poprosił: niech zdarzenie DeviceActivity może sterować odliczaniem, które rysuje sam iOS: w powiadomieniu, w Aktywności na żywo albo na osłonie, i które biegnie tylko wtedy, gdy monitorowane aplikacje są na ekranie. iOS i tak śledzi to użycie co do sekundy, więc mógłby pokazać czas, nie przekazując aplikacji niczego nowego. Nawet proste wywołania zwrotne „zablokowana aplikacja otwarta / zamknięta” do rozszerzenia monitora załatwiłyby większość sprawy.

To tyle

Żeby być fair wobec Apple: model prywatności jest tu naprawdę dobry. Aplikacja nigdy nie wie, co zablokowałeś ani ile tego używasz, i nie chciałbym, żeby to się zmieniło. Żadna z trzech rzeczy powyżej by tego nie zmieniła. Pozwoliłyby po prostu aplikacjom na iPhone'a być tak pomocnymi, jak wersje na Androida już są.

Jeśli też budujesz na Czasie przed ekranem i chcesz którejś z tych zmian, zgłoś ją w Feedback Assistant. Z tego, co wiem, właśnie duplikaty zgłoszeń sprawiają, że ktoś coś zauważa. A jeśli chcesz po prostu wypróbować aplikację, HonorFit jest za darmo na iPhone'a i Androida. Może komuś z was się spodoba!

Czytaj dalej