Applications web et mobiles 8 min

Application hors connexion : quand le réseau manque

Une application hors connexion garde ses écrans et enregistre les saisies sur le téléphone quand le réseau manque, puis les envoie au serveur dès qu'il revient, sans perte ni doublon. Il existe trois niveaux : ouvrir l'application, consulter des données gardées en mémoire, saisir hors ligne. Le dernier coûte le plus et se décide sur un constat de terrain.

Sommaire7
  1. 01Les trois niveaux du hors ligne
  2. 02Ce que le hors ligne change pour l’équipe
  3. 03Le vrai sujet : la synchronisation
  4. 04Web installable ou application des stores
  5. 05Ce que ça coûte, et quand s’en passer
  6. 06Par où commencer
  7. 07Questions fréquentes

Une cave à inspecter, un parking souterrain, un chantier en zone rurale, un entrepôt aux murs épais : le terrain est souvent là où le réseau ne passe pas. Une application qui affiche un message d’erreur à ce moment-là perd la partie. Le technicien note sur un carnet, photographie avec l’appareil du téléphone, et tout repart dans le trajet que l’application devait supprimer : ressaisie le soir, photos égarées, information qui arrive avec un jour de retard.

Le hors ligne n’est pas un bouton qu’on coche dans un devis. C’est une suite de décisions, de la plus simple à la plus coûteuse, qu’il vaut mieux prendre en connaissance de cause.

En bref

  • Le hors ligne a trois niveaux : l’application s’ouvre, les données déjà vues restent consultables, les saisies attendent le retour du réseau.

  • Le troisième niveau est le plus utile sur le terrain, et le plus cher, parce que tout se joue à la synchronisation.

  • Deux personnes qui modifient la même fiche hors ligne posent une question métier, pas seulement technique : qui a raison ?

  • Une application installable depuis le navigateur couvre les deux premiers niveaux ; le troisième est plus solide dans une application native.

  • La décision se prend sur un constat : où vos équipes perdent-elles le réseau, et combien de temps ?

Les trois niveaux du hors ligne

Dire qu’une application « fonctionne hors ligne » peut vouloir dire trois choses très différentes.

  1. Elle s’ouvre.

    Les écrans sont gardés sur le téléphone : l’application se lance sans réseau, au lieu d’afficher une page blanche. Ses données, elles, demandent une connexion pour se mettre à jour.

  2. Elle se consulte.

    Les dossiers déjà ouverts (la fiche du client, le plan, la liste des interventions du jour) restent lisibles, avec la date de leur dernière mise à jour.

  3. Elle enregistre.

    Les saisies, cases cochées et photos sont gardées sur le téléphone, puis envoyées au serveur au retour du réseau, sans rien perdre ni rien envoyer deux fois.

Chaque niveau s’appuie sur le précédent, et chacun ajoute du travail. Le premier est presque un réglage. Le deuxième demande de choisir ce que le téléphone garde, et pour combien de temps. Le troisième change l’architecture de l’application.

Sur le terrain

Challenge Us s’ouvre sans réseau

Challenge Us, une application de défis de groupe que nous avons développée, garde son interface en cache et s’ouvre même hors ligne. Ses données viennent du serveur et demandent une connexion pour se mettre à jour : c’est le premier niveau, suffisant pour un usage où l’on saisit sa journée une fois le réseau retrouvé. Le détail est dans l’étude de cas Challenge Us.

Ce que le hors ligne change pour l’équipe

Le bénéfice ne se mesure pas en fonctionnalités, mais en gestes que l’équipe n’a plus à faire.

  • Saisir sur place, une seule fois. Le constat se fait devant l’équipement, pas de mémoire en remontant au camion. Les détails qu’on oublie en vingt minutes restent dans le dossier.
  • Plus de double circuit. Sans hors ligne, l’équipe garde le carnet « au cas où », et la ressaisie revient. Avec, le carnet disparaît vraiment.
  • Une preuve datée. La photo et l’heure de l’intervention sont attachées au dossier au moment où elles sont prises, et non au moment où le réseau revient.
  • Moins d’attente. Personne ne cherche une barre de réseau en tenant son téléphone en l’air avant de pouvoir passer à la tâche suivante.

Ces gains supposent que l’application soit déjà adoptée : les conditions d’adoption, écrans courts et connexion sans friction, sont détaillées dans ce qu’une application terrain change pour vos équipes.

Le vrai sujet : la synchronisation

Enregistrer sur le téléphone est la partie facile. Le travail est dans le retour du réseau.

Une saisie hors ligne, du téléphone au serveur

  1. La saisie

    Enregistrée sur le téléphone, avec un identifiant unique créé sur place.

  2. L’attente

    La saisie rejoint une file, visible par l’utilisateur (« 3 envois en attente »).

  3. Le retour du réseau

    La file part vers le serveur, dans l’ordre.

  4. Le contrôle

    Le serveur vérifie les droits, écarte un envoi déjà reçu et tranche les conflits.

Trois questions décident de la qualité de ce trajet.

Ne rien envoyer deux fois. Un envoi interrompu sera retenté. Si chaque saisie porte un identifiant unique créé sur le téléphone, le serveur reconnaît un envoi déjà reçu et ne crée pas de doublon.

Ne pas faire confiance à l’horloge du téléphone. Elle se règle à la main. L’heure de la saisie peut être notée par le téléphone pour information, mais ce qui compte (le jour d’une intervention, un délai) se valide côté serveur, comme nous l’expliquons dans la sécurité d’une application.

Savoir qui a raison. Deux techniciens modifient la même fiche, chacun dans un sous-sol. Le premier qui retrouve le réseau envoie sa version ; le second écrase-t-il la première ? Firestore, la base de Google pour les applications, l’écrit clairement dans sa documentation sur le hors ligne : pour plusieurs modifications d’un même document, c’est la dernière écriture qui gagne.

À retenir

Un conflit se règle par une règle métier

« La dernière écriture gagne » convient à beaucoup de champs. Pour d’autres (un stock, une signature, un statut validé par un responsable), la règle doit être écrite avant le développement : additionner, refuser, ou signaler le conflit à une personne. C’est une décision de l’entreprise, que le développeur traduit en code.

Web installable ou application des stores

Le choix entre une application web installable et une application native, comparé dans PWA ou application native, prend une couleur particulière quand le réseau manque.

Application web installable

  • Elle s’ouvre hors ligne et garde des données dans le navigateur

  • Le navigateur peut effacer ces données si le téléphone manque de place

  • L’envoi en arrière-plan au retour du réseau n’est pas disponible partout

Application native

  • Elle garde ses données dans une vraie base sur le téléphone

  • La synchronisation se pilote finement, application fermée comprise

  • Elle passe par les stores ou par une distribution privée

Les limites du web sont documentées. WebKit, le moteur de Safari, décrit dans sa politique de stockage de 2023 une éviction automatique des données d’un site quand le quota est dépassé, quand l’appareil manque de place ou quand le site n’a pas servi depuis un moment. L’interface qui permet à une application web de différer un envoi jusqu’au retour du réseau n’est pas disponible dans plusieurs navigateurs parmi les plus utilisés, selon la documentation de MDN. Et sur le web, la persistance hors ligne de Firestore est désactivée par défaut, avec un conseil : demander à l’utilisateur s’il est sur un appareil de confiance avant de garder des données sensibles.

Côté natif, une application construite avec Expo dispose d’une base SQLite sur le téléphone, qui persiste d’un redémarrage à l’autre. Le choix du back-end compte aussi : Firestore prévoit le hors ligne de série sur Android et iPhone, alors qu’une base Postgres comme celle de Supabase demande d’organiser la synchronisation, comme le détaille Supabase, Firebase ou serveur à soi.

Pour un outil interne qui doit surtout s’ouvrir et se consulter sans réseau, l’application installable suffit souvent. Quand des saisies importantes doivent survivre à une journée sans réseau, l’application native est plus sûre.

Ce que ça coûte, et quand s’en passer

Le hors ligne complet est l’une des décisions qui font le plus varier le prix d’une application : il touche chaque écran de saisie, ajoute des tests (couper le réseau au milieu d’un envoi, deux téléphones sur la même fiche) et se maintient à chaque version, comme le reste du budget de maintenance.

On peut s’en passer quand les coupures sont courtes et rares, quand la saisie peut attendre quelques minutes, ou quand l’application sert surtout à consulter. On ne peut pas s’en passer quand l’équipe passe des heures sans réseau, ou quand une saisie perdue a un coût réel : un constat contestable, une livraison non prouvée, une intervention refacturée.

Par où commencer

  1. Relever les zones blanches.

    Pendant deux semaines, l’équipe note où le réseau manque, et combien de temps.

  2. Classer les gestes.

    Lesquels doivent se faire sans réseau (saisir un constat, prendre une photo), lesquels peuvent attendre (consulter l’historique complet).

  3. Écrire les règles de conflit.

    Pour chaque donnée modifiable à plusieurs, qui gagne.

  4. Tester sans réseau.

    Sur une première version, en mode avion, avec les personnes qui s’en serviront.

Ces choix s’écrivent dans le cahier des charges de l’application et se testent tôt sur une maquette cliquable. Les autres décisions d’un projet ont chacune leur article : sur mesure ou outil du marché, publier sous son propre compte développeur, les notifications, l’abonnement, le portail client, l’IA dans une application, la reprise d’une application abandonnée, le low-code et le vibe coding.

Notre développement d’applications commence par un cadrage écrit : ce que l’application fait le premier jour, avec ou sans réseau.

Questions fréquentes

Une application web peut-elle fonctionner hors ligne ?

Oui pour s’ouvrir et consulter des données déjà chargées : un service worker garde l’interface en cache, et le navigateur peut stocker des données. Pour des saisies qui doivent attendre longtemps le retour du réseau, le navigateur offre moins de garanties qu’une application native, qui garde ses données dans une base sur le téléphone.

Que se passe-t-il si deux personnes modifient la même fiche hors ligne ?

Cela dépend de la règle prévue. Par défaut, beaucoup de systèmes gardent la dernière version reçue par le serveur. Pour les données sensibles (un stock, un statut validé), il faut une règle métier écrite avant le développement : additionner, refuser ou signaler le conflit à une personne.

Le mode hors ligne augmente-t-il beaucoup le prix ?

Le premier niveau (l’application s’ouvre sans réseau) coûte peu. La saisie hors ligne avec synchronisation coûte nettement plus, parce qu’elle touche chaque écran de saisie, demande des tests spécifiques et se maintient à chaque version. C’est pourquoi elle se décide sur un constat de terrain, pas par précaution.

Les données gardées sur le téléphone sont-elles en sécurité ?

Elles sont exposées si le téléphone est perdu ou partagé. Il faut limiter ce que le téléphone garde au nécessaire, le supprimer à la déconnexion, et ne jamais y stocker de secret. Sur le web, Firebase recommande de demander à l’utilisateur s’il est sur un appareil de confiance avant de garder des données sensibles.

Sources

  1. Documentation Firebase, accès aux données hors ligne (nouvel onglet)firebase.google.com
  2. WebKit, mise à jour de la politique de stockage, août 2023 (nouvel onglet)webkit.org
  3. MDN, Background Synchronization API (nouvel onglet)developer.mozilla.org
  4. Documentation d’Expo, SQLite (nouvel onglet)docs.expo.dev
Source 1

Documentation Firebase, accès aux données hors ligne

Lire sur firebase.google.com(nouvel onglet)
Source 2

WebKit, mise à jour de la politique de stockage, août 2023

Lire sur webkit.org(nouvel onglet)
Source 3

MDN, Background Synchronization API

Lire sur developer.mozilla.org(nouvel onglet)
Source 4

Documentation d’Expo, SQLite

Lire sur docs.expo.dev(nouvel onglet)

Jim · fondateur de Brain Plus AI

À lire aussi en applications web et mobiles

  • Comprendre6 min

    Application terrain : ce qu'elle change pour vos équipes

    Techniciens, livreurs, commerciaux en tournée, équipes de chantier : une application interne leur évite le papier, les photos perdues dans une messagerie et la ressaisie du soir. Voici ce qu'elle change, et ce qu'il faut pour qu'elle serve.

  • Choisir et chiffrer6 min

    Back-end d'application : Supabase, Firebase ou serveur à soi

    Derrière les écrans d'une application, il faut des comptes, une base de données, des fichiers et des règles. Supabase, Firebase et un serveur à soi y répondent de trois façons, et chacun engage des choses différentes.

  • Choisir et chiffrer6 min

    PWA ou application native : que choisir en entreprise ?

    Une application web installable (PWA) s'installe sur l'écran d'accueil sans passer par l'App Store ni Google Play, et suffit dans beaucoup de cas, pas dans tous. Voici comment trancher, et pourquoi nous démarrons par elle.

WhatsApp