{"id":491,"date":"2019-01-28T10:33:46","date_gmt":"2019-01-28T09:33:46","guid":{"rendered":"http:\/\/lalloue.fr\/blog\/?p=491"},"modified":"2019-01-28T11:22:50","modified_gmt":"2019-01-28T10:22:50","slug":"les-promesses-des-pwa","status":"publish","type":"post","link":"http:\/\/lalloue.fr\/blog\/les-promesses-des-pwa\/","title":{"rendered":"Progressive web apps : Quelles promesses ?"},"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\/PWA-Progressive-Web-App-Logo-800x460.png\" alt=\"\" class=\"wp-image-565\" width=\"205\" height=\"118\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/PWA-Progressive-Web-App-Logo-800x460.png 800w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/PWA-Progressive-Web-App-Logo-800x460-300x173.png 300w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/PWA-Progressive-Web-App-Logo-800x460-768x442.png 768w\" sizes=\"(max-width: 205px) 100vw, 205px\" \/><\/figure>\n\n\n\n<p>Elles sont de plus en plus pr\u00e9sentes dans le monde du mobile ET du web, et pourtant on les connait \u00e0 peine, et les utilisateurs n&#8217;ont m\u00eame pas connaissance de cette petite r\u00e9volution dans le monde des applications !<\/p>\n\n\n\n<p>Et pourtant, le terme de &#8220;Progressive Web App&#8221; existe depuis 2015.<br>Il d\u00e9crit aujourd&#8217;hui les sites internet profitant des nouveaux avantages donn\u00e9s par les navigateurs web, notamment avec l&#8217;arriv\u00e9e des services workers et des fichiers manifest.<br>Mais quels sont concr\u00e8tement les avantages et promesses qu&#8217;offre les PWA aujourd&#8217;hui ?<\/p>\n\n\n\n<!--more-->\n\n\n\n<h4>Multi-platformes : Gagnez du temps et de l&#8217;argent<\/h4>\n\n\n\n<p>Les PWA peuvent s\u2019ex\u00e9cuter sur n&#8217;importe quel appareil et ont la capacit\u00e9 de s&#8217;adapter int\u00e9gralement \u00e0 l&#8217;\u00e9cran sur lequel elles sont vues. Cette fonctionnalit\u00e9 pr\u00e9sente 2 avantages majeurs :<\/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\/pwa-devices-1024x593.jpg\" alt=\"\" class=\"wp-image-492\" width=\"492\" height=\"284\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/pwa-devices-1024x593.jpg 1024w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/pwa-devices-300x174.jpg 300w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/pwa-devices-768x445.jpg 768w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/pwa-devices.jpg 1215w\" sizes=\"(max-width: 492px) 100vw, 492px\" \/><\/figure>\n\n\n\n<p>Le 1er est que les PWAs ne sont ni plus ni moins que des applications web. L&#8217;\u00e9quipe de  d\u00e9veloppement choisi sont framework pr\u00e9f\u00e9r\u00e9 (React, Vue.js, Angular, etc&#8230;). Les comp\u00e9tences en techno web sont sans doute \u00e0 ce jour les plus faciles \u00e0 trouver sur le march\u00e9 des d\u00e9veloppeurs.<br>Et inutile de s\u00e9parer son code pour cibler d&#8217;un c\u00f4t\u00e9 Android, de l&#8217;autre iOS, le web n&#8217;est pas timide, il est ouvert \u00e0 toutes les plateformes \ud83d\ude42 On gagne ainsi beaucoup de temps en d\u00e9veloppement compar\u00e9 au d\u00e9veloppement de 2 apps android + iOS (voir Windows pour les aficionados)<\/p>\n\n\n\n<p>Le 2nd avantage est li\u00e9 au fait que les PWAs s\u2019ex\u00e9cutent au sein d&#8217;une application universelle : le navigateur web.<br>Tous les appareils connect\u00e9s \u00e0 internet poss\u00e8dent aujourd&#8217;hui au moins un navigateur : que ce soit un mobile, une tablette, ou un pc. On peut donc ainsi se concentrer sur le d\u00e9veloppement de son unique application en limitant les co\u00fbts au maximum.<\/p>\n\n\n\n<h4>Gardez le contr\u00f4le de son application et de sa distribution<\/h4>\n\n\n\n<p>Si vous avez d\u00e9j\u00e0 publi\u00e9 une application sur le Google Play store ou l&#8217;Apple Store, vous avez tous rencontr\u00e9 cette crainte, au moment de cliquer sur &#8220;publier&#8221;, d&#8217;\u00eatre refus\u00e9 par le store pour une nouvelle obscure raison sortie d&#8217;une liste de r\u00e8gle aussi longue qu&#8217;imbuvable !<\/p>\n\n\n\n<p>Les PWAs sont distribu\u00e9es d&#8217;une seul fa\u00e7on, via une URL appel\u00e9e par le navigateur.<\/p>\n\n\n\n<p>De cette fa\u00e7on, vous \u00e9vitez de payer les 99$ annuels d&#8217;Apple et les 25$ de Google pour avoir le droit de publier le fruit de votre travail.<br>Vous ne subissez plus la v\u00e9rification des stores et vous pouvez publier ce que vous voulez en terme de design \/ contenu \/ fonctionnalit\u00e9s &#8230;<br>Et vous ne recevez plus les critiques injustes des utilisateurs n&#8217;ayant pas compris comment fonctionnait votre application : adieu le syst\u00e8me de notation !<\/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\/goodbye-stores.png\" alt=\"\" class=\"wp-image-493\" width=\"317\" height=\"211\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/goodbye-stores.png 600w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/goodbye-stores-300x200.png 300w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/figure>\n\n\n\n<p>Un autre point tr\u00e8s important : les mises \u00e0 jour.<br>Sur Apple, le store peut mettre entre 3 et 15 jours \u00e0 valider une application (sur Google, c&#8217;est assez rapide).<br>Avec les PWAs, poussez votre modification, et HOP ! c&#8217;est d\u00e9j\u00e0 en ligne.<br>Vous pouvez ainsi \u00eatre beaucoup plus r\u00e9actif pour corriger les bugs ou tout simplement poussez de nouvelles fonctionnalit\u00e9s en r\u00e9ponse aux demandes de vos utilisateurs\/clients.<\/p>\n\n\n\n<h4>Gagnez en visibilit\u00e9<\/h4>\n\n\n\n<p>Tout le contenu de votre PWA peut \u00eatre index\u00e9 par les moteurs de recherche !<br>Votre application web poss\u00e8de la m\u00eame visibilit\u00e9 qu&#8217;un site web sur Google par exemple, et les m\u00eames techniques de SEO peuvent \u00eatre appliqu\u00e9es \u00e0 votre PWA.<\/p>\n\n\n\n<p>Comme indiqu\u00e9 auparavant, les PWAs sont accessibles via une URL, simplement, comme un site web. Ce qui signifie que tous les outils marketings sont \u00e0 votre disposition : de l&#8217;indexation organique aux liens sponsoris\u00e9s !<\/p>\n\n\n\n<p>Vous pouvez appara\u00eetre partout ! Une URL de votre application peut se retrouver sur les r\u00e9seaux sociaux, sur d&#8217;autres blogs vous r\u00e9f\u00e9ren\u00e7ant, dans une campagne d&#8217;emails, &#8220;everywhere!&#8221;<br>Et vous diminuez \u00e9galement le temps d&#8217;acc\u00e8s \u00e0 votre application : en un clic sur le lien, l&#8217;application s&#8217;ouvre (plut\u00f4t que d&#8217;avoir \u00e0 ouvrir le store, t\u00e9l\u00e9charger l&#8217;application, ouvrir l&#8217;application, etc&#8230;)<br>Les PWAs sont en g\u00e9n\u00e9ral 3 fois plus visibles que les applications natives, cloisonn\u00e9es aux stores.<\/p>\n\n\n\n<h4>Engagez et retenez votre audience<\/h4>\n\n\n\n<p>Un des aspects int\u00e9ressants des applications natives est le privil\u00e8ge de pouvoir envoyer des pushs notifications afin d&#8217;inciter les utilisateurs \u00e0 revenir utiliser l&#8217;application.<br>Et bien devinez quoi ? c&#8217;est aussi possible avec les PWAs !<\/p>\n\n\n\n<p>Les Progressive web apps utilisent la fonctionnalit\u00e9 de &#8220;web push notifications&#8221;.<br><\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p> Une application web utilisant la fonctionnalit\u00e9 de &#8220;web push notification&#8221; gagne en moyenne 75% de temps pass\u00e9 dans l&#8217;application et un gain de 50% de visites r\u00e9currente.<\/p><cite><a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=I10NsB4TXtw\" target=\"_blank\">Why Build a Progressive Web App?   by Udacy<\/a>)  <br><\/cite><\/blockquote>\n\n\n\n<p><strong>Info <\/strong>: Malgr\u00e9 la mise \u00e0 jour d&#8217;iOS en 11.3, les pushs notifications ne sont toujours pas disponible sur iOS<\/p>\n\n\n\n<h4>Fluide et intuitive : l&#8217;exp\u00e9rience d&#8217;une r\u00e9elle application<\/h4>\n\n\n\n<p>Une PWA est avant tout une exp\u00e9rience utilisateur. <br>Dans la pratique, les Progressive Web Apps imitent la navigation des application native avec l&#8217;objectif d&#8217;offrir des interactions fluides, comme le ferrait une application du store. Pour obtenir ce rendu, pour un utilisateur r\u00e9curent, les \u00e9l\u00e9ments cl\u00e9s (\u00e9l\u00e9ments statiques) sont ainsi affich\u00e9s imm\u00e9diatement \u00e0 l&#8217;\u00e9cran au lancement de l&#8217;app , ayant d\u00e9j\u00e0 \u00e9t\u00e9 mis en cache. Il ne reste alors plus qu&#8217;a charger le contenu dynamique.<\/p>\n\n\n\n<h4>Accessible et l\u00e9ger<\/h4>\n\n\n\n<p>Avec les Progressive web apps, vos utilisateurs ont juste besoin d&#8217;un click pour acc\u00e9der \u00e0 votre contenu en une seconde sur n&#8217;importe quel appareil (mobile, tablette, pc, lunettes AR, t\u00e9l\u00e9 &#8230;). Peut importe la taille de l&#8217;\u00e9cran, du moment que l&#8217;appareil puisse lancer son navigateur.<br>Les PWAs ne n\u00e9cessitent aucune installation pr\u00e9alable pour \u00eatre vue, faisant sauter la contrainte du t\u00e9l\u00e9chargement obligatoire depuis le store.<\/p>\n\n\n\n<p>Les utilisateurs peuvent \u00e9galement acc\u00e9der rapidement \u00e0 votre application en installant directement et instantan\u00e9ment l&#8217;icone de votre PWA sur son \u00e9cran d\u2019accueil (pour les mobiles \/ tablettes et PCs)<\/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\/iPhone-W-Floify-UI-PWA2-549x1024.png\" alt=\"\" class=\"wp-image-495\" width=\"171\" height=\"319\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/iPhone-W-Floify-UI-PWA2-549x1024.png 549w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/iPhone-W-Floify-UI-PWA2-161x300.png 161w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/iPhone-W-Floify-UI-PWA2.png 600w\" sizes=\"(max-width: 171px) 100vw, 171px\" \/><\/figure>\n\n\n\n<p>La taille des applications web les plus complexes permet \u00e9galement de s&#8217;installer sur n&#8217;importe quel appareil sans avoir \u00e0 se soucier de l&#8217;espace m\u00e9moire disponible. Quand un utilisateur essaie d&#8217;acc\u00e9der \u00e0 une page en particulier, seulement les \u00e9l\u00e9ments n\u00e9cessaires \u00e0 l&#8217;affichage de la page sont charg\u00e9s, pr\u00e9servant ainsi l&#8217;espace de stockage de l&#8217;appareil. <br>Par exemple : une app PWA prends 200 fois moins de place qu&#8217;une application native iOS.<\/p>\n\n\n\n<h4>Rapidit\u00e9 : le chargement instantan\u00e9<\/h4>\n\n\n\n<p>Les PWAs sont capables d\u2019ex\u00e9cuter du code Javascript sans avoir besoin d&#8217;\u00eatre affich\u00e9 au premier plan ou sans avoir aucune page web d&#8217;ouverte dans le navigateur (via le service worker).<br>De cette fa\u00e7on, mettre \u00e0 jour de fa\u00e7on r\u00e9guli\u00e8re les donn\u00e9es de l&#8217;application est tout \u00e0 fait possible, permettant ainsi \u00e0 l&#8217;utilisateur d&#8217;avoir toujours les donn\u00e9es \u00e0 jour au moment de lancer son application.<br>Les performances sont \u00e9galement am\u00e9lior\u00e9es en ajustement le chargement des ressources statiques (mis en cache) et le contenu dynamique (charg\u00e9 en t\u00e2che de fond).<\/p>\n\n\n\n<h4>Le mode Hors-ligne<\/h4>\n\n\n\n<p>Une fonctionnalit\u00e9 majeure des PWA est la possibilit\u00e9 de s\u2019ex\u00e9cuter sans connexion \u00e0 internet, contrairement \u00e0 un site web standard.<br>Comment \u00e7a fonctionne ?<br>La 1\u00e8re fois qu&#8217;un utilisateur visite l&#8217;application, le syst\u00e8me de cache permet \u00e0 tout ou partie du contenu d&#8217;\u00eatre stock\u00e9 localement. Et ainsi, l&#8217;utilisateur pourra naviguer dans toutes les pages de l&#8217;applications pendant sa prochaine visite, m\u00eame s&#8217;il n&#8217;a pas de r\u00e9seau.<\/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\/20697639-24077601-1024x591.jpg\" alt=\"\" class=\"wp-image-496\" width=\"262\" height=\"150\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/20697639-24077601-1024x591.jpg 1024w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/20697639-24077601-300x173.jpg 300w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/20697639-24077601-768x443.jpg 768w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2019\/01\/20697639-24077601.jpg 1081w\" sizes=\"(max-width: 262px) 100vw, 262px\" \/><\/figure>\n\n\n\n<p>Comme vous l&#8217;aurez compris, les PWA proposent presque toutes les fonctionnalit\u00e9s des applications natives. Et on en est qu&#8217;au d\u00e9but du support par les navigateurs web.<br>On est peut \u00eatre \u00e0 l&#8217;aube d&#8217;une petite r\u00e9volution au sein des applications mobiles et qui sait&#8230;peut \u00eatre \u00e0 la fin des stores \ud83d\ude42<br>Mais il reste encore quelques limitations \u00e0 ce jour , notamment sur iOS,  que je liste dans un autre article : <a href=\"http:\/\/lalloue.fr\/blog\/pwa-quelles-contraintes-sur-ios\/\">PWA : Quelles contraintes sur iOS ?<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Elles sont de plus en plus pr\u00e9sentes dans le monde du mobile ET du web, et pourtant on les connait \u00e0 peine, et les utilisateurs n&#8217;ont m\u00eame pas connaissance de cette petite r\u00e9volution dans le monde des applications ! Et pourtant, le terme de &#8220;Progressive Web App&#8221; existe depuis 2015.Il d\u00e9crit aujourd&#8217;hui les sites internet &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/lalloue.fr\/blog\/les-promesses-des-pwa\/\" class=\"more-link\">Continuer la lecture <span class=\"screen-reader-text\"> \u00ab\u00a0Progressive web apps : Quelles promesses ?\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":[48,50],"tags":[25,54,60,57,53],"_links":{"self":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/491"}],"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=491"}],"version-history":[{"count":11,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"predecessor-version":[{"id":566,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/491\/revisions\/566"}],"wp:attachment":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}