Avec iOS 9, Apple parachève l'évolution des vues web et améliore grandement l'utilisation de sites web à l'intérieur des apps. Explications.
Pendant longtemps, les vues web (ou web views en anglais) ont traîné des carences. Incomplètes, lentes, ces fenêtres servant à consulter une page web sans ouvrir de navigateur à part entière faisaient mal leur travail (classe UIWebView au départ).
Avec iOS 8, Apple a amélioré la situation en permettant aux vues web d'utiliser le moteur JavaScript Nitro de Safari, plus rapide, tout en conservant la possibilité de les personnaliser (classe WKWebView).
Avec iOS 9, Apple finalise en quelque sorte cette avancée puisque c'est Safari lui-même qui se charge d'afficher la page web. Le nom de la nouvelle classe est d'ailleurs parlant : il n'est plus question de xxWebView, mais de Safari View Controller (SFSafariViewController).
Safari à l'intérieur des apps
Du point de vue des développeurs, cela représente un gros avantage : plus besoin de s'occuper du navigateur interne, ils délèguent entièrement à Safari le rôle d'afficher les pages web et les fonctions connexes.
Pour l'utilisateur, ce changement est aussi grandement positif. Puisqu'il s'agit ni plus ni moins que de Safari, on a accès à toutes les données et fonctions du navigateur dans n'importe quelle app — à condition bien sûr qu'elle prenne en charge Safari View Controller.
C'est d'ores et déjà le cas de Twitterrific, qui est l'une des premières à supporter cette nouveauté, si ce n'est la première. De quoi faire une comparaison concrète avec l'ancienne vue web.
Pour faire les captures d'écran ci-dessus, nous avons tapoté sur un lien pointant vers un article d'iGeneration à partir de deux clients Twitter : le client officiel à gauche (qui utilise toujours WKWebView), et Twitterrific au milieu. Safari se trouve quant à lui à droite.
Entre Twitter et Twitterrific, les différences sautent aux yeux. D'abord, l'interface n'est pas la même. Alors que la vue web de Twitter a une interface personnalisée, celle de Twitterrific est calquée sur Safari, à quelques détails près.
Il n'y a pas les boutons dédiés aux signets et aux onglets, logique, puisque cette vue n'est pas destinée à être un navigateur complet. Il y a un bouton en bas à droite pour ouvrir Safari et un bouton « OK » pour fermer la vue. La barre d'adresse est identique, mais elle est grisée — impossible de saisir manuellement une autre URL.
Ce qui différencie Safari View Controller de WKWebView, c'est aussi la connexion aux sites web qui est maintenue dans la première, puisque les cookies de Safari sont préservés. Puisque je suis connecté à iGeneration dans Safari, c'est également le cas dans la vue web de Twitterrific, contrairement à celle du client officiel Twitter. C'est évidemment pratique pour poster rapidement un commentaire ou profiter de fonctions réservées aux abonnés.
Ça ne vous aura pas échappé non plus qu'il n'y a plus de bandeau de pub dans Twitterrific. Les bloqueurs de contenu, une autre nouveauté d'iOS 9, activés pour Safari fonctionnent en effet également dans Safari View Controller. Dans le cas présent, nous avons donc activé un bloqueur de pub — soit dit en passant, le manque à gagner pour les sites web vivant de la pub risque d'exploser avec l'arrivée d'iOS 9.
Safari View Controller donne aussi accès au trousseau iCloud pour remplir automatiquement ses données de connexion et même le mode lecteur est présent.
En bref, on profite d'un vrai Safari à l'intérieur d'autres applications, une avancée qui fait gagner du temps (de chargement) et des efforts (de connexion).
Une adoption qui sera ralentie par certains ?
Il y a tout de même quelques critiques à l'encontre de cette nouvelle vue web. Interrogé par MacStories, le développeur Andrew Milham regrette que Safari View Controller ne soit pas bien intégré graphiquement au reste de l'application. Il est vrai qu'on perd en homogénéité avec cette vue qui ressemble quoiqu'il arrive à Safari — les développeurs ne peuvent pas la personnaliser comme WKWebView. On peut aussi juger que c'est un point positif, puisqu'on retrouvera la même interface partout.
Andrew Milham se plaint par ailleurs de ne pas pouvoir ajouter des fonctions très spécifiques comme il le fait actuellement avec son app GiftPlanner. Il reconnait néanmoins qu'il s'agit d'« inconvénients mineurs » par rapport aux « bénéfices significatifs apportés ». Ces inconvénients ne devraient en rien freiner l'adoption de Safari View Controller.
En revanche, les Google, Facebook et autres Twitter avides de données personnelles pourraient se tenir à l'écart de Safari View Controller en raison de sa politique de confidentialité. Contrairement aux précédentes classes, la nouvelle ne permet pas à l'application hôte de voir quelle URL est ouverte, une information importante pour ces entreprises qui font leur beurre avec la publicité ciblée.
Par ailleurs, Facebook utilise actuellement une vue web avec des options de partage tournées essentiellement vers ses propres services — Facebook Messenger, partage interne, sauvegarde interne... Adopter Safari View Controller reviendrait à faciliter le partage vers d'autres services, ce qui va à l'encontre du vase clos mis en place aujourd'hui par le réseau social. Apple autorisant toujours WKWebView dans iOS 9, ces entreprises pourraient faire le choix de rester sur ce type de vue web qui sert plus leur intérêt.
Enfin Safari View Controller renforce la position de Safari par rapport aux navigateurs tiers. En s'intégrant dans les apps comme nouvelle vue web, Safari devient encore un peu plus incontournable.