PWA : Quelles contraintes sur iOS ?

Les Progressive Web Apps bénéficient du meilleurs des applications web et mobiles.
Et depuis la mise à jour d’iOS en 11.3, les utilisateurs d’Apple ont enfin la possibilité de profiter des fonctionnalités typiques des PWA.
Mais malheureusement, en y regardant de plus près, on est encore très loin d’une compatibilité à 100% sur l’OS de la firme de Cupertino.
Voici une petite liste des contraintes iOS encore présentes (et présentes sur l’ensemble des navigateurs disponibles sur iOS) sur les versions iOS 11 et iOS 12.
N’hésitez pas à commenter ce post pour ajouter les limitations que vous rencontrez de votre côté.

Service Workers

Contrainte connue : Pas de mise en cache des données (mode hors ligne), pas d’envoi de pushs notification contraintes levées
Sévérité : Haute
Date potentielle de correction : En cours de développement Disponible (iOS 11.3)
Source : https://webkit.org/status/#specification-service-workers

Pushs notification

Contrainte connue : Web pushs notification non disponible sur iOS
Sévérité : Haute
Date potentielle de correction : Aucune annoncée pour le moment
Source : https://caniuse.com/#search=notification

Web App Manifest

Contrainte connue : Permet la gestion des propriétés de l’app PWA (orientation / icones / installation sur l’écran d’accueil / …). En fait le manifest est utilisé par Safari, mais ne prend pas en charge la plus part de ses propriétés. Les propriétés prises en charge sont : theme color / background color / start_url / short name.
Sévérité : Haute
Date potentielle de correction : En cours de développement (pas de date communiquée)
Source : https://webkit.org/status/#?search=manifest

Orientation

Contrainte connue : propriété disponible via le manifest (voir ci-dessus)
Sévérité : Moyenne
Date potentielle de correction : En cours de développement (pas de date communiquée)
Source : https://webkit.org/status/#?search=manifest

Add to Home screen Prompt

Contrainte connue : Obligation de passer par le click sur partager puis d’ajouter manuellement l’application à l’écran d’accueil. Le Web App Manifest permettra aux équipes de Webkit de construire un composant
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source : https://webkit.org/status/#?search=manifest

Synchronisation en tâche de fond

Contrainte connue : Pas de support de l’API background Sync
Sévérité : Moyenne
Date potentielle de correction :
Source : https://github.com/GoogleChrome/workbox/issues/1466#issuecomment-385995609

Gestion du cache

Contrainte connue : limitation à 50 Mo, fichiers en cache supprimés si application non sollicitée par l’utilisateur pendant plusieurs semaines (l’icone reste sur l’écran d’accueil mais l’application sera alors re-téléchargée entièrement au prochain accès)
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source : https://fr.goodbarber.com/blog/ios-ouvre-ses-portes-aux-progressive-web-apps-a872/

Fonctionnalités avancées

Contrainte connue : pas d’accès aux fonctionnalités suivantes : bluetooth, serial, beacons, touch ID, face ID, ARKit, altimètre, informations sur la batterie
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Informations personnelles

Contrainte connue : pas d’accès aux contacts, à la géolocalisation en tâche de fond et aux applications sociales natives
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Services Apple-based

Contrainte connue : pas d’accès aux fonctions de paiement in-app et aux autres “Apple-based services”
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Side et Split View

Contrainte connue : Sur iPad, les PWAs ne peuvent pas être executées avec la fonction “Side” et “Split View” permettant de partager l’écran avec une autre application. La PWA s’exécute toujours sur l’intégralité de l’écran.
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Siri

Contrainte connue : Pas d’intégration de Siri possible. Siri ne trouvera pas votre application installée si vous lui demander d’ouvrir votre application PWA.
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Badge sur l’icône de l’application

Contrainte connue : Le badge (ou compteur) ne peut pas être affiché sur l’icône de l’application installée
Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source : https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Splashscreen

Contrainte connue : Splashscreen décrit dans le fichier manifest (voir plus haut)
Sévérité : Basse
Date potentielle de correction : En cours de développement (pas de date communiquée)
Source: https://webkit.org/status/#?search=manifest

Conservation de l’état entre les sessions

Contrainte connue : Si l’utilisateur quitte la PWA et la relance, l’application va être relancée depuis la page d’accueil. Donc si l’utilisateur a besoin de valider son email, sms, authentification two-factor, ou utiliser un lecteur de QR Code, l’application ne sera pas relancée sur le dernier écran lancé.
Sévérité : Moyenne
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7

Icônes

Contrainte connue : Les icônes transparents ne sont pas pris en charge. et comme la plupart des PWAs utilisent les icônes circulaires d’android, le rendu n’est pas terrible quand on passe sur iOS :

Sévérité : Basse
Date potentielle de correction : Aucune annoncée pour le moment
Source: https://medium.com/@firt/pwas-are-coming-to-ios-11-3-cupertino-we-have-a-problem-2ff49fd7d6ea

Conclusion

Alors, si mon audience principale est sur le système d’Apple, pourquoi devrais-je m’embêter à implémenter une PWA ?

Même si le support des PWA n’est encore que partielle, il est toujours possible de les faire fonctionner, de les ajouter manuellement sur l’écran d’accueil et elles deviendront compatible automatiquement le jour de la prise en charge des dernières fonctionnalités par Apple.
Une autre solution est de temporairement encapsuler l’app PWA dans une application native (ou cordova) pour par exemple supporter les notifications.
Mais il existe quelques techniques permet de contourner ces problèmes en attendant mieux.
Retrouvez les moyens de contournement dans l’article suivant : Quelques astuces pour que votre application pwa ressemble à une application native

Rejoindre la conversation

2 commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouve moi que tu es bien humain ->