L'operaio è in cantiere in zona collinare, cantina di un edificio storico, galleria sotterranea: nessun segnale. Eppure deve timbrare, caricare foto, consultare planimetria. Con un'app tradizionale: bloccato. Con la PWA Edilgestya: funziona normalmente, sincronizza quando torna in rete. Vediamo come è possibile tecnicamente.
Il problema della connettività in cantiere
I cantieri edili sono spesso in zone problematiche per il segnale dati:
- Zone rurali/collinari: copertura 4G a chiazze.
- Cantine ed edifici storici: muri spessi schermano il segnale.
- Gallerie e sotterranei: zero connessione.
- Cantieri in aree industriali: a volte interferenze radio.
- Cantieri di restauro: spesso in centri storici con dati lenti.
Risultato: l'operaio non può usare app cloud "standard". Doveva ricorrere a fogli cartacei o app inutilizzabili.
La soluzione: Service Worker
Il Service Worker è una tecnologia browser standard che permette:
- Cache intelligente: salva risorse localmente per accesso futuro senza rete.
- Background sync: sincronizza dati quando torna la connessione.
- Notifiche push: anche quando l'app è chiusa.
Cosa funziona offline in Edilgestya
1. Timbratura presenze
L'operaio preme "Inizio Lavoro" senza rete:
- Sistema salva timestamp + GPS in IndexedDB (database locale browser).
- Mostra conferma all'operaio.
- Quando torna online, sincronizza automaticamente con il server.
Vedi modulo Presenze GPS.
2. Caricamento foto
L'operaio scatta foto e tenta upload senza rete:
- Foto messa in coda di upload.
- Salvata localmente.
- Upload automatico quando torna online.
3. Consultazione documenti già visti
I documenti del cantiere consultati una volta sono in cache:
- Service Worker li serve da locale.
- Apertura veloce anche offline.
4. Visualizzazione turni
I turni della settimana sono cachati al login. L'operaio vede sempre dove deve andare, anche senza rete.
5. Compilazione rapporti
Rapporti di intervento si compilano offline:
- Form locale.
- Firma touch del cliente.
- Tutto salvato in IndexedDB.
- Upload e generazione PDF al ripristino connessione.
Cosa NON funziona offline
- Login iniziale: serve almeno un primo accesso online per autenticazione.
- Documenti mai consultati: non sono in cache, servono in cloud.
- Notifiche push: arrivano quando connessione torna.
- Modifiche da altri utenti in real-time: visibili al ripristino.
L'esperienza utente
L'operaio in cantiere offline:
- App si apre normalmente.
- Indicatore "🟡 Offline - sync in attesa" in alto.
- Le funzioni principali continuano a funzionare.
- Le modifiche vengono salvate localmente.
- Quando torna online (es. uscendo dalla cantina): "✅ Sincronizzato" notifica.
Esperienza fluida, niente schermate di errore.
Aspetti tecnici (per chi è interessato)
Cache strategy
Edilgestya usa due strategie:
- Network-first per dati dinamici (presenze attuali, planning aggiornato): tenta rete, fallback cache.
- Cache-first per asset statici (CSS, JS, icone, immagini): cache prima, rete solo se necessario.
IndexedDB
Database NoSQL locale del browser:
- Capacità: tipicamente 50% dello storage libero del dispositivo.
- Veloce: query in millisecondi.
- Persistente: sopravvive a riavvii browser e dispositivo.
Background Sync API
API browser che permette sync quando connessione torna:
- L'app registra "sync evento" per upload pending.
- Browser tenta sync quando rete disponibile.
- Riprova esponenziale se errori.
Limiti pratici
Storage limit
IndexedDB ha capacità grande (1-10 GB tipicamente), ma se l'operaio carica 100 foto in alta risoluzione offline, può saturarsi.
Soluzione: l'app comprime foto prima del salvataggio locale.
Conflitti
Se due operai modificano lo stesso record offline e poi sincronizzano, può esserci conflitto:
- Strategia "last write wins" (vince l'ultimo).
- Avviso al responsabile per casi critici.
- Audit log della modifica.
Tempo di sync
Se molti dati offline, sync può richiedere 1-5 minuti dopo il ripristino. L'app mostra progress bar.
Vantaggi rispetto ad app native con offline
Anche le app native possono avere offline, ma:
- Implementazione complessa e costosa.
- Manutenzione separata per iOS/Android.
- Aggiornamenti via app store.
La PWA con Service Worker offre offline robusto a costo praticamente zero.
Casi d'uso reali
Caso 1: cantiere in cantina
Operaio sceglie nel sotterraneo. Niente rete. Timbra inizio, lavora 4 ore, scatta 12 foto, timbra fine. Esce in cortile, app sincronizza tutto in 30 secondi. Esperienza trasparente.
Caso 2: cantiere fuori città
Cantiere in zona collinare con copertura 3G traballante. App riconosce le interruzioni e sincronizza incrementalmente quando ha segnale.
Caso 3: viaggio in galleria
Operaio in autostrada, attraversa galleria di 5 km. App continua a funzionare, sync ripresa appena fuori.
I moduli Edilgestya correlati
Scopri Edilgestya: funziona ovunque, anche senza rete.