Beaucoup de sites se disent “PWA” parce qu’ils ont ajoute une banniere “installer l’application” et deux icones dans un coin. En pratique, une progressive web app ne se decrete pas : elle repose sur trois briques techniques qui doivent toutes etre en place. Si une seule manque, le navigateur ne propose pas l’installation et se rabat sur un simple raccourci. Voici ce qui se passe vraiment dans les coulisses, avec le cas concret de SpinBoss, accessible via navigateur mobile et fonctionnant comme PWA.
Le manifeste web, carte d’identite de la web app
Le manifeste est un fichier JSON lie a la page via une balise link rel=”manifest”. Il decrit ce que le systeme d’exploitation doit afficher quand l’utilisateur ajoute le site a l’ecran d’accueil : le nom court, le nom complet, les icones dans plusieurs tailles, la couleur de theme et surtout la propriete display. C’est cette derniere qui fait la difference entre un onglet deguise et une vraie web app. Avec display: “standalone”, le raccourci web ouvre le site en plein ecran, sans barre d’adresse ni chrome du navigateur. Avec display: “browser”, vous obtenez un onglet classique, ce qui n’est pas le comportement attendu d’une application installee.
Un detail que beaucoup ratent : les icones. Chrome Android exige au minimum une icone 192×192 et une 512×512 declarees dans le manifeste pour declencher l’installation automatique. Safari iOS est plus laxiste sur ce point mais lit aussi le manifeste pour recuperer le nom et la couleur. Sans manifeste valide, pas d’installation possible : le navigateur affiche “Ajouter a l’ecran d’accueil” comme pour n’importe quel site, et vous perdez le plein ecran, le splash screen et l’identite visuelle. C’est le premier pilier, et c’est aussi le plus simple a verifier : ouvrez les DevTools, onglet Application, section Manifest.
Le service worker et la question du mode hors ligne
Ce que le service worker fait vraiment
Le service worker est un script JavaScript qui tourne dans un thread separe et s’interpose entre la page et le reseau. Il permet de mettre en cache des ressources, de servir une version de secours quand le reseau tombe, et de gerer les mises a jour en arriere-plan. C’est lui qui rend le chargement quasi instantane au deuxieme lancement, et c’est lui qui conditionne l’experience “application” : sans service worker, une PWA n’est qu’un site responsive avec un joli manifeste.
Attention au mythe : un service worker ne signifie pas automatiquement mode hors ligne complet. Il faut ecrire la strategie de cache. Certaines PWA mettent en cache la coquille de l’interface mais pas les donnees, ce qui donne une application qui s’ouvre mais reste vide sans connexion. D’autres, comme SpinBoss, ne proposent pas de mode hors ligne du tout : le service worker sert uniquement a accelerer les chargements et a gerer les mises a jour. C’est un choix assume, car un live casino et des jeux d’argent necessitent une connexion permanente pour valider les mises et les resultats. Un cache trop agressif sur des donnees de jeu serait dangereux, voire trompeur pour le joueur.
Le service worker impose aussi le HTTPS. Les navigateurs refusent d’enregistrer un service worker sur une page servie en HTTP, sauf sur localhost pour le developpement. C’est une mesure de securite : un service worker peut intercepter toutes les requetes, y compris celles qui portent des identifiants. Le laisser passer en clair serait une porte ouverte au detournement de session. Le HTTPS n’est donc pas un bonus SEO, c’est le socle technique sans lequel les deux autres piliers ne fonctionnent pas.
Installation, raccourcis et limites selon les plateformes
Quand les trois piliers sont en place, le comportement differe selon le navigateur. Chrome Android propose une vraie installation via un prompt natif, et permet aussi d’ajouter un raccourci a l’ecran d’accueil depuis le menu. Samsung Internet et Firefox mobile ont leurs propres variantes, avec des criteres d’eligibilite legerement differents sur la taille des icones et la presence d’un service worker actif. Safari iOS est le cas le plus particulier : il est requis pour creer un raccourci sur iOS, et l’operation passe uniquement par le menu Partager, puis “Sur l’ecran d’accueil”. Aucun prompt automatique, aucune banniere. Sur iPhone et iPad, l’utilisateur doit connaitre la manipulation, sinon il ne verra jamais l’application.
C’est la ou le discours marketing deraille souvent. SpinBoss n’est pas distribue sur le Google Play Store, ni sur l’App Store. Il n’existe pas d’APK SpinBoss officiel, et c’est tant mieux : un APK SpinBoss telecharge depuis un site tiers presente un risque de securite majeur, car rien ne garantit l’integrite du binaire. La voie officielle reste le navigateur, avec un raccourci ecran d’accueil qui ouvre le site en plein ecran et conserve la session comme une application native. Le bonus est identique entre mobile et ordinateur, ce qui evite les pieges classiques des applications separees avec des conditions differentes selon la plateforme.
Un point que les developpeurs oublient : la mise a jour. Avec une application native, l’utilisateur passe par le store. Avec une PWA, le service worker doit detecter une nouvelle version, la telecharger et proposer un rechargement. Mal gere, ce mecanisme laisse des utilisateurs bloques sur une version ancienne pendant des jours. Bien gere, il permet de deployer un correctif en quelques minutes sur l’ensemble des terminaux, sans validation d’un operateur de store. C’est un avantage considerable pour un operateur de jeux d’argent soumis a des exigences de conformite et de jeu responsable : les liens vers GamCare, BeGambleAware ou Gamblers Anonymous peuvent etre mis a jour instantanement sur toutes les installations.
Concretement, avant de croire une promesse d’installation, verifiez trois choses dans les DevTools : un manifeste valide avec display standalone et des icones 192 et 512, un service worker actif sur le scope racine, et un certificat HTTPS valide sans contenu mixte. Si l’un des trois manque, vous n’avez pas une PWA, vous avez un site web avec un bouton qui cree un raccourci. La difference saute aux yeux a l’usage : plein ecran, session conservee, demarrage rapide, ou simple onglet qui recharge la page. Testez sur Chrome Android et sur Safari iOS, car les deux moteurs n’appliquent pas les memes regles, et c’est souvent la que se revele la vraie nature de l’application.