3 choses que j’aimerais qu’Apple corrige dans l’API Screen Time
Je fais HonorFit, un bloqueur d’applis où tu gagnes ton temps d’écran en faisant des pompes (système de l’honneur, pas de caméra). C’est la même appli sur iPhone et Android, la même idée, le même code pour l’essentiel. Et franchement ? La version Android est plus agréable à utiliser.
Ce n’est pas parce qu’Android bloque mieux les applis. L’API Screen Time d’iOS est en fait très solide pour la partie blocage. C’est parce qu’iOS t’enferme sur trois points précis, et qu’aucun d’eux ne semble là pour protéger les utilisateurs. Voici donc ma liste, avec ce que je demanderais à Apple. J’ai essayé de m’en tenir à des choses qui ne coûteraient la moindre confidentialité à personne.
(Si tu veux la version technique, les mains dans le cambouis, du développement sur cette API, je l’ai écrite à part : ce que la doc d’Apple ne dit pas.)
1. Tu ne peux avoir qu’une seule appli Temps d’écran à la fois
Imagine que tu utilises déjà Brick, Opal ou one sec, et que tu veux essayer HonorFit en plus. Sur iPhone, impossible. Quand la deuxième appli demande l’accès à Temps d’écran, iOS n’affiche même pas la demande d’autorisation. Il renvoie juste une erreur disant que Family Controls n’est disponible que pour une seule application à la fois. J’ai vu cette erreur moi-même, et d’autres développeurs tombent dessus aussi.
Pour changer, il faut aller dans Réglages › Temps d’écran › Apps avec accès à Temps d’écran, désactiver l’autre appli, et parfois redémarrer le téléphone. HonorFit détecte maintenant l’erreur et guide les gens pas à pas, parce que le message d’erreur brut ne veut rien dire pour une personne normale.
Le plus bizarre : quand Apple a présenté ce type d’autorisation à la WWDC22, ils ont dit que, contrairement à l’autorisation de contrôle parental, l’autorisation individuelle pouvait être utilisée par autant d’applis qu’on veut sur un appareil. Ce n’est pas ce qui se passe aujourd’hui, et je n’ai trouvé ça documenté nulle part.
Pourquoi ce n’est pas dans l’intérêt des utilisateurs : les gens combinent les outils. Quelqu’un peut utiliser un Brick pour des sessions de concentration intense au travail, et HonorFit pour gagner son scroll du soir. Apple a déjà une règle pour combiner les restrictions : quand plusieurs ManagedSettingsStore règlent la même chose, selon les mots d’Apple, « the most restrictive setting always wins » (le réglage le plus restrictif l’emporte toujours). Faire la même chose entre applis permettrait aux gens d’utiliser les deux, et de cette façon un téléphone ne peut finir que plus verrouillé, jamais moins.
2. Le sélecteur d’applis est peu pratique, et les applis ne peuvent pas le personnaliser
Sur iPhone, choisir les applis à bloquer passe par le FamilyActivityPicker d’Apple. C’est une feuille système que l’appli ne peut pas modifier, à part une ligne de texte en en-tête et en pied. Elle s’ouvre sur une liste de catégories (Réseaux sociaux, Jeux, Divertissement...), et il faut entrer dans une catégorie pour trouver les vraies applis. Sur Android, je construis la liste moi-même, donc HonorFit affiche tes applis installées triées selon le temps que tu as passé sur chacune ces dernières 24 heures.
Deux choses m’agacent dans celui d’iOS :
- C’est très facile de bloquer toute une catégorie par accident. Appuie sur la ligne de la catégorie au lieu de l’ouvrir, et tu viens de choisir toutes les applis qu’elle contient, y compris celles que tu installeras plus tard. Pour beaucoup d’applis, ce n’est jamais ce qu’on veut. Tu veux Instagram et TikTok, pas « Réseaux sociaux ».
- Tu ne vois pas quelles applis te bouffent vraiment ta journée. Si quelqu’un ouvre un bloqueur d’applis, c’est justement parce qu’il se dit « je passe trop de temps sur mon téléphone ». Le sélecteur, c’est le seul moment où il décide quoi bloquer, et il ne lui donne aucune info sur où part son temps. Ton iPhone sait exactement combien de temps tu as passé dans chaque appli (c’est juste là, dans Réglages), mais le sélecteur ne l’affiche pas.
Ça ne coûterait aucune confidentialité. Le sélecteur est dessiné par iOS dans son propre processus. L’appli ne voit jamais ce qu’il contient, seulement des jetons opaques pour ce que tu as choisi. HonorFit ne peut littéralement pas savoir quelles applis tu as choisies. Donc iOS pourrait afficher les temps d’utilisation directement dans le sélecteur, et l’appli n’apprendrait toujours rien. Apple fait déjà quelque chose de ce genre avec les extensions DeviceActivityReport, qui affichent ton utilisation dans un bac à sable que l’appli ne peut pas lire.
- Une option du sélecteur pour choisir des catégories entières ou seulement des applis, pour qu’un bloqueur d’applis puisse proposer une liste d’applis uniquement, sans sélection de catégorie par accident (et masquer les sites web s’il ne s’en sert pas).
- Une option pour trier par temps d’écran mesuré, et l’afficher à côté de chaque appli, rendu par iOS pour que l’appli ne voie jamais les chiffres.
3. Tu ne peux pas voir de décompte précis du temps qu’il te reste
Dans HonorFit, ton temps gagné ne s’écoule que quand tu es vraiment dans une appli bloquée. La chose évidente à afficher, c’est donc un décompte : « 12:34 restantes », qui défile pendant que tu scrolles et s’arrête quand tu sors.
Sur Android, c’est facile. Le service en arrière-plan d’HonorFit vérifie quelle appli est à l’écran chaque seconde, et la notification utilise le minuteur de décompte intégré d’Android, donc le volet des notifications le redessine tout seul chaque seconde. Tu tires le volet et tu vois exactement combien de temps il te reste, à la seconde près.
Sur iPhone, c’est impossible, et voici pourquoi :
- iOS ne prévient jamais l’appli quand tu ouvres ou quittes une appli bloquée. Tout ce que tu reçois, ce sont des événements du genre « tant d’utilisation s’est accumulée ». HonorFit en programme un toutes les 15 secondes d’utilisation, et ils sont livrés à une extension en arrière-plan qui met à jour la notification.
- Une notification classique ne peut pas faire un décompte toute seule, donc le mieux que puisse faire HonorFit, c’est remplacer le texte à chaque événement reçu. C’est pour ça que la notification sur iPhone dit « ~12:30 restantes » avec un tilde : elle avance par paliers de 15 secondes.
- Et ces événements n’arrivent pas toujours à l’heure. Sur iOS 26, je les ai vus arriver en retard, ou plusieurs d’un coup.
- Les Activités en direct peuvent faire un décompte toutes seules, mais elles ne peuvent pas se mettre en pause. Rien ne dit à l’appli que tu as quitté Instagram, donc une Activité en direct continuerait à défiler pendant que ton téléphone est posé sur la table, ce qui serait faux.
Résultat : les utilisateurs iPhone ont une estimation approximative, alors que ceux d’Android ont le vrai chiffre.
DeviceActivity de piloter un décompte qu’iOS affiche lui-même : dans une notification, une Activité en direct ou le shield, qui ne tourne que lorsque les applis surveillées sont à l’écran. iOS suit déjà cette utilisation à la seconde près, donc il pourrait afficher le temps sans rien donner de nouveau à l’appli. Même de simples callbacks « appli bloquée ouverte / fermée » vers l’extension de monitoring régleraient l’essentiel.C’est tout
Pour être juste envers Apple, le modèle de confidentialité ici est vraiment bon. L’appli ne sait jamais ce que tu as bloqué ni combien tu l’utilises, et je n’aimerais pas que ça change. Aucune des trois choses ci-dessus ne le changerait. Elles permettraient juste aux applis iPhone d’être aussi utiles que leurs versions Android le sont déjà.
Si tu développes toi aussi sur Temps d’écran et que tu veux l’une de ces choses, signale-la dans Feedback Assistant (l’Assistant d’évaluation). D’après ce que je comprends, c’est en accumulant les doublons que les sujets se font remarquer. Et si tu veux juste essayer l’appli, HonorFit est gratuit sur iPhone et Android. Peut-être que certains d’entre vous vont l’apprécier !