{"id":485,"date":"2019-01-28T10:31:58","date_gmt":"2019-01-28T09:31:58","guid":{"rendered":"http:\/\/lalloue.fr\/blog\/?p=485"},"modified":"2019-01-28T11:25:01","modified_gmt":"2019-01-28T10:25:01","slug":"pwa-quelles-contraintes-sur-ios","status":"publish","type":"post","link":"http:\/\/lalloue.fr\/blog\/pwa-quelles-contraintes-sur-ios\/","title":{"rendered":"PWA : Quelles contraintes sur iOS ?"},"content":{"rendered":"\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/Progressive-WEb-Apps-and-Apple-1024x597.png\" alt=\"\" class=\"wp-image-487\" width=\"259\" height=\"151\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/Progressive-WEb-Apps-and-Apple-1024x597.png 1024w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/Progressive-WEb-Apps-and-Apple-300x175.png 300w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/Progressive-WEb-Apps-and-Apple-768x448.png 768w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/Progressive-WEb-Apps-and-Apple-1568x914.png 1568w\" sizes=\"(max-width: 259px) 100vw, 259px\" \/><\/figure>\n\n\n\n<p class=\"has-text-color has-background has-small-font-size has-dark-gray-color has-white-background-color\">Les <strong>Progressive Web Apps<\/strong> b\u00e9n\u00e9ficient du meilleurs des applications web et mobiles.<br>Et depuis la mise \u00e0 jour d&#8217;iOS en 11.3, les utilisateurs d&#8217;Apple ont enfin la possibilit\u00e9 de profiter des fonctionnalit\u00e9s typiques des PWA.<br>Mais malheureusement, en y regardant de plus pr\u00e8s, on est <strong>encore tr\u00e8s loin d&#8217;une compatibilit\u00e9 \u00e0 100%<\/strong> sur l&#8217;OS de la firme de Cupertino.<br>Voici une petite <strong>liste des contraintes iOS encore pr\u00e9sentes<\/strong> (et pr\u00e9sentes sur l&#8217;ensemble des navigateurs disponibles sur iOS) sur les versions iOS 11 et iOS 12.<br>N&#8217;h\u00e9sitez pas \u00e0 commenter ce post pour ajouter les limitations que vous rencontrez de votre c\u00f4t\u00e9.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h4>Service Workers<\/h4>\n\n\n\n<p>Contrainte connue : <del>Pas de mise en cache des donn\u00e9es (mode hors ligne), pas d&#8217;envoi de pushs notification<\/del> contraintes lev\u00e9es<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#FF6373\"><del>Haute<\/del><\/span><br>Date potentielle de correction : <del>En cours de d\u00e9veloppement<\/del> <span style=\"color:#5EC442\">Disponible (iOS 11.3)<\/span><br>Source : <a href=\"https:\/\/webkit.org\/status\/#specification-service-workers\">https:\/\/webkit.org\/status\/#specification-service-workers<\/a><\/p>\n\n\n\n<h4>Pushs notification<\/h4>\n\n\n\n<p>Contrainte connue : Web pushs notification non disponible sur iOS<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#FF6373\">Haute<\/span><br>Date potentielle de correction : Aucune annonc\u00e9e pour le moment<br>Source : <a href=\"https:\/\/caniuse.com\/#search=notification\">https:\/\/caniuse.com\/#search=notification<\/a><\/p>\n\n\n\n<h4 id=\"web-app-manifest\">Web App Manifest<\/h4>\n\n\n\n<p>Contrainte connue : Permet la gestion des propri\u00e9t\u00e9s de l&#8217;app PWA (orientation \/ icones \/ installation sur l&#8217;\u00e9cran d\u2019accueil \/ &#8230;). En fait le manifest est utilis\u00e9 par Safari, mais ne prend pas en charge la plus part de ses propri\u00e9t\u00e9s. Les propri\u00e9t\u00e9s prises en charge sont : theme color \/ background color \/ start_url \/ short name.<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color: #ff6373;\">Haute<\/span><br>Date potentielle de correction : En cours de d\u00e9veloppement (pas de date communiqu\u00e9e)<br>Source : <a href=\"https:\/\/webkit.org\/status\/#?search=manifest\">https:\/\/webkit.org\/status\/#?search=manifest<\/a><\/p>\n\n\n\n<h4>Orientation<\/h4>\n\n\n\n<p>Contrainte connue : propri\u00e9t\u00e9 disponible via le manifest (voir ci-dessus)<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color: #ff9d68;\">Moyenne<\/span><br>Date potentielle de correction : En cours de d\u00e9veloppement (pas de date communiqu\u00e9e) <br>Source : <a href=\"https:\/\/webkit.org\/status\/#?search=manifest\">https:\/\/webkit.org\/status\/#?search=manifest<\/a><\/p>\n\n\n\n<h4 id=\"home-screen-prompt\">Add to Home screen Prompt<\/h4>\n\n\n\n<p>Contrainte connue : Obligation de passer par le click sur partager puis d&#8217;ajouter manuellement l&#8217;application \u00e0 l&#8217;\u00e9cran d\u2019accueil. Le Web App Manifest permettra aux \u00e9quipes de Webkit de construire un composant<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment <br>Source :  <a href=\"https:\/\/webkit.org\/status\/#?search=manifest\">https:\/\/webkit.org\/status\/#?search=manifest<\/a> <\/p>\n\n\n\n<h4>Synchronisation en t\u00e2che de fond<\/h4>\n\n\n\n<p>Contrainte connue : Pas de support de l&#8217;API background Sync<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color: #ff9d68;\">Moyenne<\/span><br>Date potentielle de correction :   <br>Source : <a href=\"https:\/\/github.com\/GoogleChrome\/workbox\/issues\/1466#issuecomment-385995609\">https:\/\/github.com\/GoogleChrome\/workbox\/issues\/1466#issuecomment-385995609<\/a><\/p>\n\n\n\n<h4>Gestion du cache<\/h4>\n\n\n\n<p>Contrainte connue<strong> :<\/strong> limitation \u00e0 50 Mo, fichiers en cache supprim\u00e9s si application non sollicit\u00e9e par l&#8217;utilisateur pendant plusieurs semaines (l&#8217;icone reste sur l&#8217;\u00e9cran d\u2019accueil mais l&#8217;application sera alors re-t\u00e9l\u00e9charg\u00e9e enti\u00e8rement au prochain acc\u00e8s)<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment <br>Source : <a href=\"https:\/\/fr.goodbarber.com\/blog\/ios-ouvre-ses-portes-aux-progressive-web-apps-a872\/\">https:\/\/fr.goodbarber.com\/blog\/ios-ouvre-ses-portes-aux-progressive-web-apps-a872\/<\/a><\/p>\n\n\n\n<h4>Fonctionnalit\u00e9s avanc\u00e9es<\/h4>\n\n\n\n<p>Contrainte connue : pas d&#8217;acc\u00e8s aux fonctionnalit\u00e9s suivantes : bluetooth, serial, beacons, touch ID, face ID, ARKit, altim\u00e8tre, informations sur la batterie<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a> <\/p>\n\n\n\n<h4>Informations personnelles<\/h4>\n\n\n\n<p>Contrainte connue : pas d&#8217;acc\u00e8s aux contacts, \u00e0 la g\u00e9olocalisation en t\u00e2che de fond et aux applications sociales natives<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a>  <\/p>\n\n\n\n<h4>Services Apple-based<\/h4>\n\n\n\n<p>Contrainte connue : pas d&#8217;acc\u00e8s aux fonctions de paiement in-app et aux autres &#8220;Apple-based services&#8221;<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a>   <\/p>\n\n\n\n<h4>Side et Split View<\/h4>\n\n\n\n<p>Contrainte connue : Sur iPad, les PWAs ne peuvent pas \u00eatre execut\u00e9es avec la fonction &#8220;Side&#8221; et &#8220;Split View&#8221; permettant de partager l&#8217;\u00e9cran avec une autre application. La PWA s\u2019ex\u00e9cute toujours sur l&#8217;int\u00e9gralit\u00e9 de l&#8217;\u00e9cran.<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a> <\/p>\n\n\n\n<h4>Siri<\/h4>\n\n\n\n<p>Contrainte connue : Pas d&#8217;int\u00e9gration de Siri possible. Siri ne trouvera pas votre application install\u00e9e si vous lui demander d&#8217;ouvrir votre application PWA.<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a>  <\/p>\n\n\n\n<h4>Badge sur l&#8217;ic\u00f4ne de l&#8217;application<\/h4>\n\n\n\n<p>Contrainte connue : Le badge (ou compteur) ne peut pas \u00eatre affich\u00e9 sur l&#8217;ic\u00f4ne de l&#8217;application install\u00e9e<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction :  Aucune annonc\u00e9e pour le moment  <br>Source<strong> <\/strong>: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a><\/p>\n\n\n\n<h4 id=\"splashscreen\">Splashscreen<\/h4>\n\n\n\n<p>Contrainte connue : Splashscreen d\u00e9crit dans le fichier manifest (voir plus haut)<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction : En cours de d\u00e9veloppement (pas de date communiqu\u00e9e)  <br>Source: <a href=\"https:\/\/webkit.org\/status\/#?search=manifest\">https:\/\/webkit.org\/status\/#?search=manifest<\/a> <\/p>\n\n\n\n<h4 id=\"state\">Conservation de l&#8217;\u00e9tat entre les sessions<\/h4>\n\n\n\n<p>Contrainte connue : Si l&#8217;utilisateur quitte la PWA et la relance, l&#8217;application va \u00eatre relanc\u00e9e depuis la page d\u2019accueil. Donc si l&#8217;utilisateur a besoin de valider son email, sms, authentification two-factor, ou utiliser un lecteur de QR Code, l&#8217;application ne sera pas relanc\u00e9e sur le dernier \u00e9cran lanc\u00e9.<br>S\u00e9v\u00e9rit\u00e9 : <span style=\"color: #ff9d68;\">Moyenne<\/span><br>Date potentielle de correction : Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7\">https:\/\/medium.com\/@firt\/progressive-web-apps-on-ios-are-here-d00430dee3a7<\/a> <\/p>\n\n\n\n<h4>Ic\u00f4nes<\/h4>\n\n\n\n<p>Contrainte connue : Les ic\u00f4nes transparents ne sont pas pris en charge. et comme la plupart des PWAs utilisent les ic\u00f4nes circulaires d&#8217;android, le rendu n&#8217;est pas terrible quand on passe sur iOS :<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/1_oFUexHzy3x6Rn7ORMRnxBA.png\" alt=\"\" class=\"wp-image-513\" width=\"192\" height=\"66\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/1_oFUexHzy3x6Rn7ORMRnxBA.png 586w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/1_oFUexHzy3x6Rn7ORMRnxBA-300x103.png 300w\" sizes=\"(max-width: 192px) 100vw, 192px\" \/><\/figure>\n\n\n\n<p>S\u00e9v\u00e9rit\u00e9 : <span style=\"color:#5EC442\">Basse<\/span><br>Date potentielle de correction : Aucune annonc\u00e9e pour le moment  <br>Source: <a href=\"https:\/\/medium.com\/@firt\/pwas-are-coming-to-ios-11-3-cupertino-we-have-a-problem-2ff49fd7d6ea\">https:\/\/medium.com\/@firt\/pwas-are-coming-to-ios-11-3-cupertino-we-have-a-problem-2ff49fd7d6ea<\/a><\/p>\n\n\n\n<h3>Conclusion<\/h3>\n\n\n\n<p>Alors, si mon audience principale est sur le syst\u00e8me d&#8217;Apple, pourquoi devrais-je m&#8217;emb\u00eater \u00e0 impl\u00e9menter une PWA ?<\/p>\n\n\n\n<p>M\u00eame si le support des PWA n&#8217;est encore que partielle, il est toujours possible de les faire fonctionner, de les ajouter manuellement sur l&#8217;\u00e9cran d\u2019accueil et elles deviendront compatible automatiquement le jour de la prise en charge des derni\u00e8res fonctionnalit\u00e9s par Apple.<br>Une autre solution est de temporairement encapsuler l&#8217;app PWA dans une application native (ou cordova) pour par exemple supporter les notifications.<br>Mais il existe quelques techniques permet de contourner ces probl\u00e8mes en attendant mieux. <br>Retrouvez les moyens de contournement dans l&#8217;article suivant :  <a href=\"http:\/\/lalloue.fr\/blog\/pwa-quelques-astuces-pour-que-votre-application-pwa-ressemble-a-une-application-native\/\">Quelques astuces pour que votre application pwa ressemble \u00e0 une application native<\/a> <br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les Progressive Web Apps b\u00e9n\u00e9ficient du meilleurs des applications web et mobiles.Et depuis la mise \u00e0 jour d&#8217;iOS en 11.3, les utilisateurs d&#8217;Apple ont enfin la possibilit\u00e9 de profiter des fonctionnalit\u00e9s typiques des PWA.Mais malheureusement, en y regardant de plus pr\u00e8s, on est encore tr\u00e8s loin d&#8217;une compatibilit\u00e9 \u00e0 100% sur l&#8217;OS de la firme &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/lalloue.fr\/blog\/pwa-quelles-contraintes-sur-ios\/\" class=\"more-link\">Continuer la lecture <span class=\"screen-reader-text\"> \u00ab\u00a0PWA : Quelles contraintes sur iOS ?\u00a0\u00bb<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[49,48,50,47],"tags":[55,56,54,59,57,53,58],"_links":{"self":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/485"}],"collection":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/comments?post=485"}],"version-history":[{"count":26,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":568,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/485\/revisions\/568"}],"wp:attachment":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/media?parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/categories?post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/tags?post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}