3 cose che vorrei che Apple sistemasse nell’API Screen Time
Sviluppo HonorFit, un’app per bloccare le app in cui il tempo schermo te lo guadagni facendo flessioni (sulla parola, senza fotocamera). È la stessa app su iPhone e Android, stessa idea, e per la maggior parte stesso codice. E sinceramente? La versione Android è più comoda da usare.
Non perché Android sia più bravo a bloccare le app. Sulla parte del blocco, l’API Screen Time di iOS è davvero solida. È perché iOS ti mette paletti su tre cose precise, e nessuna sembra esserci per proteggere gli utenti. Ecco quindi la mia lista, con quello che chiederei ad Apple. Ho cercato di limitarmi a cose che non costerebbero un briciolo di privacy a nessuno.
(Se ti interessa la versione tecnica, con tutti i dettagli su come si sviluppa con questa API, l’ho scritta a parte: quello che la documentazione di Apple non dice.)
1. Puoi avere una sola app di Tempo di utilizzo alla volta
Mettiamo che usi già Brick, Opal o one sec e voglia provare anche HonorFit. Su iPhone non puoi. Quando la seconda app chiede l’accesso a Tempo di utilizzo, iOS non mostra nemmeno la richiesta di autorizzazione. Restituisce solo un errore che dice che Family Controls è disponibile per una sola applicazione alla volta. Quell’errore l’ho visto con i miei occhi, e ci stanno sbattendo contro anche altri sviluppatori.
Per cambiare app devi andare in Impostazioni › Tempo di utilizzo › App con accesso a Tempo di utilizzo, disattivare l’altra app e a volte riavviare il telefono. Adesso HonorFit riconosce l’errore e guida le persone passo passo, perché il messaggio di errore così com’è non dice niente a una persona normale.
La cosa strana è questa: quando Apple ha presentato questo tipo di autorizzazione alla WWDC22, ha detto che, a differenza dell’autorizzazione per il controllo parentale, l’autorizzazione individuale può essere usata da un numero qualsiasi di app sullo stesso dispositivo. Oggi non funziona così, e non sono riuscito a trovarlo documentato da nessuna parte.
Perché non è nell’interesse degli utenti: la gente combina strumenti diversi. Qualcuno potrebbe usare un Brick per le sessioni di concentrazione serie al lavoro e HonorFit per guadagnarsi lo scroll della sera. Apple ha già una regola per combinare le restrizioni: quando più ManagedSettingsStore impostano la stessa cosa, come dice Apple, "the most restrictive setting always wins" (vince sempre l’impostazione più restrittiva). Fare lo stesso tra app diverse permetterebbe di usarle entrambe, e in quel modo un telefono può solo finire più bloccato, mai meno.
2. Il selettore delle app è scomodo, e le app non possono personalizzarlo
Su iPhone, per scegliere quali app bloccare si usa il FamilyActivityPicker di Apple. È un pannello di sistema che l’app non può modificare, a parte una riga di testo in cima e una in fondo. Si apre su un elenco di categorie (Social, Giochi, Intrattenimento...) e devi entrare in una categoria per trovare le app vere e proprie. Su Android l’elenco lo costruisco io, quindi HonorFit mostra le app installate ordinate in base a quanto hai usato ciascuna nelle ultime 24 ore.
Di quello di iOS mi danno fastidio due cose:
- È facilissimo bloccare un’intera categoria per sbaglio. Tocca la riga della categoria invece di aprirla, e hai appena selezionato tutte le app che contiene, comprese quelle che installerai in futuro. Per molte app non è mai quello che vuoi. Vuoi Instagram e TikTok, non "Social".
- Non puoi vedere quali app ti stanno mangiando la giornata. Il motivo per cui qualcuno apre un’app per bloccare le app è proprio "passo troppo tempo al telefono". Il selettore è l’unico momento in cui sta decidendo cosa bloccare, e non gli dà nessuna informazione su dove gli va il tempo. Il tuo iPhone sa esattamente quanto tempo hai passato in ogni app (è lì in Impostazioni), ma il selettore non lo mostra.
Questo non costerebbe niente in termini di privacy. Il selettore lo disegna iOS in un suo processo separato. L’app non vede mai cosa c’è dentro, ma solo dei token opachi per quello che hai scelto. HonorFit non può letteralmente sapere quali app hai scelto. Quindi iOS potrebbe mostrare i tempi di utilizzo direttamente nel selettore, e l’app continuerebbe a non sapere nulla. Apple fa già qualcosa di simile con le estensioni DeviceActivityReport, che mostrano il tuo utilizzo dentro una sandbox che l’app non può leggere.
- Un’opzione del selettore per scegliere categorie intere oppure solo app, così un’app per bloccare le app può offrire un elenco di sole app senza selezioni di categorie per sbaglio (e nascondere i siti web se non li usa).
- Un’opzione per ordinare per tempo di utilizzo misurato, e mostrarlo, accanto a ogni app, disegnato da iOS così che l’app non veda mai i numeri.
3. Non puoi vedere un conto alla rovescia preciso del tempo che ti resta
In HonorFit il tempo guadagnato scende solo mentre sei davvero dentro un’app bloccata. Quindi la cosa ovvia da mostrare è un conto alla rovescia: "mancano 12:34", che scorre mentre scrolli e si ferma quando esci.
Su Android è facile. Il servizio in background di HonorFit controlla ogni secondo quale app è sullo schermo, e la notifica usa il timer con conto alla rovescia integrato in Android, quindi la tendina delle notifiche lo ridisegna da sola ogni secondo. Abbassi la tendina e vedi esattamente quanto tempo ti resta, al secondo.
Su iPhone non si può, ed ecco perché:
- iOS non dice mai all’app quando apri o chiudi un’app bloccata. Ricevi solo eventi del tipo "si è accumulato tanto utilizzo". HonorFit ne imposta uno ogni 15 secondi di utilizzo, e vengono consegnati a un’estensione in background che aggiorna la notifica.
- Una notifica normale non sa fare il conto alla rovescia da sola, quindi il massimo che HonorFit può fare è sostituire il testo ogni volta che arriva un evento. Per questo la notifica su iPhone dice "~12:30 rimanenti" con la tilde: va avanti a scatti di 15 secondi.
- E quegli eventi non arrivano sempre puntuali. Su iOS 26 li ho visti arrivare in ritardo, o tutti insieme.
- Le Attività live possono fare il conto alla rovescia da sole, ma non possono mettersi in pausa. Niente dice all’app che sei uscito da Instagram, quindi un’Attività live continuerebbe a scorrere mentre il telefono è appoggiato sul tavolo, e sarebbe sbagliato.
Così gli utenti iPhone hanno una stima approssimativa, mentre quelli Android hanno il numero reale.
DeviceActivity di pilotare un conto alla rovescia disegnato da iOS stesso: in una notifica, in un’Attività live o nello shield, che scorra solo mentre le app monitorate sono sullo schermo. iOS tiene già traccia di quell’utilizzo al secondo, quindi potrebbe mostrare il tempo senza consegnare all’app niente di nuovo. Anche delle semplici callback "app bloccata aperta / chiusa" all’estensione di monitoraggio risolverebbero quasi tutto.Tutto qui
Per essere onesti con Apple, il modello di privacy qui è davvero buono. L’app non scopre mai cosa hai bloccato né quanto lo usi, e mi dispiacerebbe se cambiasse. Nessuna delle tre cose qui sopra lo cambierebbe. Permetterebbero solo alle app per iPhone di essere utili quanto lo sono già le versioni Android.
Se anche tu sviluppi con Screen Time e vuoi una di queste cose, segnalalo in Assistente Feedback. Da quello che ho capito, è con le segnalazioni doppie che le cose vengono notate. E se vuoi solo provare l’app, HonorFit è gratis su iPhone e Android. Magari a qualcuno di voi piacerà!