Passer au contenu

iOS 4.3 : le mystère des performances fluctuantes de Safari

Des développeurs ont remarqué que les applications Web s’ouvraient moins rapidement avec le nouvel OS lorsqu’elles sont épinglées à l’écran d’accueil et non lancées directement dans le navigateur. Choix stratégique ou simple bug ?

Apple privilégie-t-il en douce les applications natives, celles que l’on télécharge sur l’App Store, au détriment des applications Web, que les utilisateurs d’iOS épinglent simplement sur leur écran d’accueil ? C’est l’hypothèse envisagée par The Register dans un long article particulièrement documenté, intitulé « Apple menotte les applications Web “ouvertes” sur la page d’accueil de l’iPhone ». Ni plus ni moins. Le site s’appuie sur les témoignages et les tests de développeurs pour iOS qui ont remarqué un comportement étrange des applications Web dans la nouvelle version d’iOS, la 4.3.

En effet, selon la façon dont on lance une web app avec iOS 4.3, les performances Javascript du site en question sont très différentes. Pour le comprendre, il faut d’abord se pencher sur une fonction de Safari pour iOS, qui permet d’ajouter le site sur lequel on surfe à l’écran d’accueil. Il apparaît alors au milieu des applications traditionnelles et peut être lancé en plein écran, comme une application native.

Une différence du simple à plus du double

Pour visualiser les différences de performances, nous avons utilisé le test proposé par le développeur Maximiliano Firtman, soit une version spécifique du benchmark de performances Javascript Sunspider. Or il apparaît sur notre iPhone 3GS que, si on lance le site au moyen de Safari, le résultat est largement meilleur (5 842,2 millisecondes pour charger le page) que quand on le fait à partir de l’icône de l’écran d’accueil (13 848 millisecondes).

Pour M. Firtman, l’explication de cette énorme différence est toute trouvée : le nouveau moteur Javascript de Safari, Nitro, inauguré avec iOS 4.3, n’est pas utilisé dans le second cas de figure, alors qu’il fonctionne dans Safari. Par ailleurs, M. Firtman précise sur son blog qu’il y a en réalité une grosse différence entre Safari et la fonction UIWebView d’iOS, qui est utilisée lorsqu’on lance une application Web à partir de l’écran d’accueil… UIWebView permet aussi aux développeurs d’applications natives d’appeler un navigateur dans leurs programmes.

Le mystère reste entier

Pourquoi ne pas utiliser Nitro dans UIWebView ? Le mystère demeure. The Register évoque d’abord une thèse un tantinet conspirationniste, qui a beaucoup circulé sur Twitter : Apple, qui se sentirait menacé sur le long terme par les applications Web, privilégierait les applications provenant de l’App Store, sur lesquelles elle exerce un contrôle total. La firme à la pomme limiterait donc volontairement la vitesse des applications Web et réserverait l’usage de son nouveau moteur Javascript à Safari.

Cette explication, qui ne tient pas compte du fait que les développeurs d’applications de l’App Store sont aussi pénalisés par l’absence de Nitro dans UIWebView, M. Firtman la rejette. « Je ne crois pas qu’il s’agisse d’un acte délibéré de la part d’Apple. Je ne peux pas en être sûr à 100 % car je ne travaille pas pour Apple, mais il n’a aucune raison de faire cela. Je pense qu’il s’agit plutôt d’une “fonction manquante”, d’un problème de sécurité, d’un souci de régulation sur l’App Store, ou encore d’un bug », avance-t-il dans l’analyse qu’il fait du problème sur son blog.

En attendant une éventuelle mise à jour d’Apple qui corrigerait cet étrange problème, mieux vaut le savoir : si vous désirez profiter du nouveau moteur Javascript Nitro – et donc d’une vitesse d’exécution supérieure – pour vos applications Web (comme Gmail ou Facebook), il faut lancer Safari et non ouvrir le site à partir de l’écran d’accueil d’un appareil tournant avec iOS.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.

Opera One - Navigateur web boosté à l’IA
Opera One - Navigateur web boosté à l’IA
Par : Opera

Eric Le Bourlout