Une application offline first enregistre d’abord les données sur l’appareil et les synchronise quand la connexion revient : elle continue de fonctionner sans réseau. C’est le bon choix pour un commerce, une équipe de terrain ou toute activité qui ne peut pas s’arrêter pendant une coupure, comme la caisse Legwan.
Hors ligne d’abord : la définition
Une application classique attend le serveur à chaque action : sans réseau, elle s’arrête. Une application offline first fait l’inverse. Elle enregistre d’abord sur l’appareil, affiche le résultat tout de suite, puis envoie les données au serveur dès que possible. Google décrit les techniques dans son guide du hors ligne.
Connectée en permanence ou hors ligne d’abord
| Situation | Application toujours connectée | Application offline first |
|---|---|---|
| Le réseau tombe | L’application s’arrête | Le travail continue |
| Connexion lente | Chaque écran attend | Les écrans répondent tout de suite |
| Forfait de données limité | Consommation à chaque action | Seules les modifications sont envoyées |
| Retour du réseau | Rien à rattraper, rien n’a été fait | Synchronisation automatique |
| Complexité de conception | Plus simple | Plus exigeante : il faut gérer la synchronisation |
Comment ça marche
- Un service worker garde l’application en mémoire : elle s’ouvre même sans réseau.
- Les données sont stockées dans le navigateur ou sur l’appareil, et restent lisibles hors ligne.
- Chaque modification rejoint une file d’attente, envoyée au serveur au retour de la connexion.
- Les conflits se règlent par des règles claires, décidées au moment de la conception.
L’exemple d’un logiciel de caisse hors ligne
Dans une boutique, une coupure ne doit pas arrêter la vente. Legwan, installé sur l’ordinateur du comptoir, enregistre chaque vente sur place, sépare espèces, paiement mobile et crédit, puis synchronise tout au retour du réseau. Le soir, la clôture de caisse tombe juste. Pour un projet qui doit fonctionner partout, voir notre service d’applications mobiles et le comparatif PWA ou application native.
