iOS 7 crée des milliers de requêtes fantômes sur le web

L. Arnaud |

Dans la liste des nouveautés d'iOS 7 figurait, entre autres, le rafraîchissement automatique des applications en arrière-plan. Sur son blog, David Smith, célèbre podcasteur, relève que ce genre de rafraîchissement crée des milliers de requêtes inutiles sur les serveurs web, si cette problématique n’a pas été étudiée intelligemment par les développeurs.

Des applications comme Facebook ou Twitter, qui fonctionnent sous forme de flux, marchent plutôt bien avec cette nouvelle technique. Cela permet de retrouver des actualités "fraîches" directement à l'ouverture de l'application.

"Tout semble plus rapide, je passe moins de temps à attendre mes données" écrit David Smith. Et cette amélioration se fait au détriment de très nombreuses requêtes web « fantôme », puisque l'application n'est parfois même pas ouverte entre deux mises à jour du contenu.

Ce genre de rafraîchissement inutile engendre un trafic web tout aussi inutile. En plus de cela, une partie du rafraîchissement se fera sur le réseau cellulaire (3G ou 4G). David Smith prend l’exemple de son application météo Check the Weather qui établit une connexion vers une API payante (0,01 $ par requête). Avec le système de mise à jour en tâche de fond, le nombre de requêtes a explosé, comme le montre le graphique. Le développeur a pris alors conscience de ce problème et a rapidement modifié sa stratégie.

Des solutions existent pour stopper, ou du moins diminuer ces "botnets", elles sont à chercher du côté des développeurs (l'utilisateur ne peut pas faire grand-chose si ce n’est couper cette option). Les développeurs doivent rationaliser un maximum l'actualisation en arrière-plan, éviter de mettre une fréquence d'actualisation de plusieurs fois par jour pour une application qui sera utilisée, en moyenne, une fois tous les deux jours.

« Nous construisons des applications qui fonctionnent sur des appareils portables, alimentés par des batteries, qui se connectent à des réseaux sans fil. Chaque watt que nous pouvons sauver doit l'être pour améliorer l'expérience de nos utilisateurs », déclare David Smith, qui donne quelques conseils aux développeurs désireux de revoir leurs pratiques en la matière.

Outre le fait de donner un temps de rafraîchissement raisonnable au système, il préconise aux développeurs d’être honnêtes avec iOS (il est possible de dire au système si le fait d’avoir tourné en tâche de fond a été utile ou non à l’app. Ce qui permet au système de donner la main plus ou moins souvent à une app). D’autre part, il recommande une utilisation intelligente d’Apache (compression et mise en cache) ainsi qu’éventuellement d’utiliser les notifications silencieuses. Il s’agit d’une autre approche assez intéressante. Le serveur envoie une notification push silencieuse à votre terminal. Ce système permet alors de réveiller votre app pour récupérer à coup sûr de nouvelles données.

Accédez aux commentaires de l'article