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.
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 : 9To5Mac