Progressive Web Apps : l'avenir du web qui fonctionne comme une app
Une PWA c'est quoi ? C'est Progressive Web App. C'est un site web qui agit comme une app. Tu peux l'installer sur l'écran d'accueil de ton téléphone. Elle fonctionne hors ligne. Elle envoie des notifications. Ça paraît magique. Et c'est pas si compliqué que ça.
Avant les PWA tu avais deux choix. Un site web : facile d'accès, gratuit, mais limité. Une app native : puissante, mais tu dois la télécharger et elle prend de la place. Les PWA c'est le meilleur des deux mondes.
Comment ça marche ? C'est toujours un site web. HTML, CSS, JavaScript. Mais c'est optimisé pour agir comme une app. D'abord il y a un manifest file. C'est un fichier JSON qui dit "je suis une app, voilà mon nom, voilà mon icône, voilà ma couleur de barre". Quand tu visites le site sur téléphone le navigateur dit "oh c'est une PWA, tu veux l'installer ?" Tu dis oui et boom c'est sur l'écran d'accueil.
Ensuite il y a les service workers. C'est du code JavaScript qui tourne en arrière-plan. Il peut cacher des données localement. Il peut faire fonctionner le site hors ligne. Il peut envoyer des notifications. C'est la magie qu'on ne voit pas mais qui rend tout ça possible.
Quand tu charges une PWA pour la première fois elle télécharge les fichiers essentiels et les garde en cache local. La prochaine fois que tu l'ouvre c'est instantané parce qu'il y a plus besoin de télécharger. Et si t'es hors ligne ça marche quand même parce que tout est en cache.
« Une PWA c'est un site web qui paraît et se comporte comme une app. Sans l'installer depuis l'app store. »
Les avantages ? D'abord c'est accessible. Tu tapes l'URL et tu peux l'installer. Pas besoin d'aller sur l'app store. Pas de processus d'approbation (comme sur Apple). Pas de 30% de commission pour Apple ou Google.
Deuxièmement c'est léger. Une PWA c'est quelques mégaoctets. Une app native c'est souvent 100+ mégaoctets. Tu télécharges juste ce que tu utilises. Et quand le dev met à jour la PWA tu as la nouvelle version automatiquement la prochaine fois que tu l'ouvre. Pas besoin de faire une mise à jour manuellement.
Troisièmement ça marche hors ligne. Tu peux utiliser la PWA sans connexion internet. Bien sûr tu ne peux pas accéder à des données du serveur. Mais l'interface fonctionne. Tu peux remplir un formulaire offline et il va s'envoyer quand t'as connexion.
Quatrièmement c'est moins cher à développer. C'est juste un site web amélioré. Une seule codebase pour tous les appareils. Pas besoin de développer une version iOS et une version Android.
Les notifications aussi c'est cool. Une PWA peut t'envoyer des notifications push comme une app native. Tu peux dire à l'app "envoie-moi une notif quand tu as du nouveau" et ça marche.
Mais il y a des limites. Une PWA ne peut pas accéder à autant de ressources qu'une app native. Pas d'accès à la caméra en arrière-plan. Pas d'accès à certains capteurs. Une PWA est plus limitée qu'une app native. Mais pour 90% des usages c'est plus que suffisant.
Il y a aussi le support du navigateur. Tous les navigateurs modernes supportent les PWAs. Mais certaines fonctionnalités marchent mieux sur Chrome que sur Safari. C'est un détail mais c'est important à savoir.
Et puis il y a la question de la découverte. Une app native tu la découvres via l'app store. Une PWA tu la découvres via Google. C'est un avantage et un désavantage. Avantage : tu peux la trouver facilement en cherchant. Désavantage : elle n'apparaît pas dans les listes "recommandées" de l'app store.
Mais les grandes entreprises commencent à comprendre. Twitter a une PWA. Spotify a une PWA. Uber a une PWA. Parce qu'elles réalisent que c'est plus simple que d'avoir une app à maintenir sur deux plateformes.
Pour les devs c'est cool aussi. Tu fais un site web moderne. Tu ajoutes un manifest et un service worker. Et boom c'est une PWA. C'est pas difficile. C'est une évolution naturelle d'un site web normal.
En résumé : une PWA c'est un site web qui agit comme une app. Tu peux l'installer sans l'app store. Elle fonctionne hors ligne. Elle envoie des notifications. C'est moins cher à développer qu'une app native. C'est l'avenir du web. Et c'est plus simple qu'on le pense.