Un développeur a trouvé comment animer les icônes des apps sur l’écran d'accueil d’iOS

Nicolas Furno |

Un développeur a réussi à fouiner dans les profondeurs d’iOS pour découvrir une méthode qui permet d’animer les icônes des apps sur l’écran d’accueil. Précisons d’emblée que sa solution repose sur le détournement d’API d’une manière totalement interdite par les règles de l’App Store et qu’il n’y a aucune chance en l’état qu’Apple autorise une app qui exploite ces techniques. Malgré tout, l’effet est saisissant et c’est l’occasion d’une exploration fascinante de l’arrière du décor qui pourrait vous intéresser si vous êtes développeur.

Le résultat, ici avec l’icône de l’app de GitHub. Vidéo Bryce Bostwick.

Bryce Bostwick a réutilisé le mécanisme prévu par Apple pour permettre à n’importe quelle app de proposer des icônes alternatives. Cette solution impose plusieurs blocages techniques pour éviter les abus : le changement d’icône doit être demandé par l’utilisateur, il ne peut pas avoir lieu en arrière-plan et il affiche une alerte à chaque nouvelle icône. Autant de blocages qui empêchent toute idée d’animer l’icône en permanence, comme il a réussi à le faire à la fin.

Pour y parvenir, il a fouillé dans les fichiers compilés d’iOS pour trouver comment les restrictions sont mises en place par Apple. La vidéo d’une vingtaine de minutes vaut le détour pour les détails techniques, contentons-nous ici d’indiquer qu’il a trouvé le nom des fonctions en Objective-C qui servent à contrôler la fonctionnalité officielle. À force d’explorations et d’essais, il a réussi à les détourner pour lever les interdictions et permettre un changement d’icône en arrière-plan et sans notification. Une fois que c’était fait, il ne reste plus qu’à prévoir suffisamment d’icônes et les faire défiler suffisamment rapidement pour créer une animation fluide.

Même si on peut aisément imaginer un scénario infernal où toutes les icônes des apps sur son écran d’accueil bougent en permanence, il y aurait aussi des utilisations légitimes d’une telle idée. La plus évidente serait de permettre à une app de calendrier autre que celle d’Apple d’afficher le jour en cours en guise d’icône. On peut aussi envisager que l’icône animée serve à signaler une nouvelle notification.

Et comme le souligne Bryce Bostwick, Apple interdirait sans doute ces pratiques sur l’App Store, mais cela ne veut pas dire qu’elles ne pourraient pas être proposées sur une boutique d’apps tierces en Europe, grâce au DMA.

Source
avatar brunnno | 

J’adore ! Et bravo pour ce travail 👍🏽

avatar TrollMan06 | 

Useless

avatar amonbophis | 

@TrollMan06

Donc indispensable

avatar bonnepoire | 

Bonjour la batterie qui tient 2h…

avatar TrollMan06 | 

@bonnepoire

En charge…

avatar stefhan | 

Wooh j'admire ces rétroingénieries et détournements des gardes-fous (et ça rassure aussi qu'Apple ait prévu ces derniers).

avatar Brice21 | 

Enfin une utilité au DMA.

avatar DarkChocolâte | 

@Brice21

"Enfin une utilité au DMA."

Oui! Grâce à ce hack, la petite app d'apparence innofensive que vous aurez installé depuis un site web va pouvoir discrètement changer son icône et la remplacer par celle de l'app du Credit Agricole ou de la BNP. Et vous demander de vous connecter bien sûr.

avatar raoolito | 

@DarkChocolâte

ca c'est la version horrible
la version plus probable c'est qu'avec un nombre incalculable d'anime votre batterie sera divisée par quatre ou cinq 😁

avatar dodomu | 

@DarkChocolâte

Pas sûr, les app devant (il me semble) toujours être notariées par Apple, si jamais une app malveillante vois le jour, elle pourra toujours être désactivée à distance par Apple.
Exactement comme sur MacOS en somme. 😉

avatar ohmydog | 

@Brice21

Tu fais une fixette sur les choses que tu ne comprends pas non ?

avatar Brice21 | 

@ohmydog

En effet, la grande quête de ma vite (j’ai bien dis quête) est de _tout_ comprendre, même la stupidité. Bien entendu c’est impossible (car la stupidité est infinie), mais j’essaye de m’approcher de ce but chaque jour de ma vie.

avatar bonnepoire | 

Ta quête est atteinte, plus besoin de te fatiguer.

avatar Brice21 | 

@bonnepoire

Manifestement tu ne conçois pas l’infini.

avatar yd29021976 | 

@Brice21

Je ne suis pas sur que le DMA permette plus qu’avant d’utiliser des api privées dans une app.
Les règles des apps s’appliquent tout autant qu’avant.

avatar alnorell | 

Y’a moyen de faire la même chose sur macOS ?

avatar melaure | 

@alnorell

Ca a existé dans le passé, j’avais une extension pour le système 7 avec des icônes animés !

avatar Freitag | 

@alnorell

Oui, et simplement.

avatar alnorell | 

@Freitag
Ah oui c’est vrai que sur cleanmymac quand on nettoie l’essuie glace s’anime
Comment on fait manuellement ?

avatar Freitag | 

@alnorell

Comme pour la barre de menu, on dessine l'image de l'icône et on rafraîchit. Si animation, un timer et hop.

avatar sergiobzh | 

@trollman02
C’est surtout ton commentaire qui est useless

avatar clive-guilde | 

@sergiobzh

Cela fait longtemps que je les ai masqués personnellement car c’est troll sur troll pour ce membre.

avatar YuYu | 

Ce n’est justement pas de ça dont se sert Apple pour le calendrier et l’horloge ?

avatar pfx | 

Je doute que l’app calendrier d’Apple, ou Horloge, utilise cette méthode… Doit y avoir des instructions autres, non documentées!

Mais en tous cas bravo à lui d’avoir réussi cet exploit !

avatar Saussau083 | 

@pfx

Surtout Horloge, dont même l’aiguille des secondes est animée. Ils doivent utiliser une API qui leur est réservé

avatar 406 | 

Si on pouvait retrouver cette possibilité supprimé par Apple dans le dock de Mac OS X…

avatar DP-Britto | 

Le bon vieux temps du jailbreak

avatar Vyggo | 

Ça va créer du bruit pour le cerveau… pas le genre d’option que j’activerais

avatar hervemac | 

Pourtant l’app horloge l’utilise bien

avatar MaroonCharacteristicJunglefowl | 

Oui, pour certaines animations, ça pourrait être bien. Mais clairement, si toutes vos apps se mettent à bouger dans tous les sens... On aura l’impression de retourner sur MSN.

On ne saura plus où donner de la tête. et la batterie sera drainée à un rythme infernal.

avatar gbasile | 

Pour la réception d’une notification ça serait sympa, plus ça viderait la batterie et ferait vriller le cerveau 😁

CONNEXION UTILISATEUR