Vai al contenuto principale
Mobile AppAntincendio / Sicurezza2024

SafeTrack

App mobile per la gestione della manutenzione antincendio. Offline-first con React Native ed Expo, ha eliminato la gestione cartacea e ridotto i tempi di rendicontazione del 70%.

Stack tecnologico

React NativeExpo SDK 54TypeScriptStrapi 5JWT AuthAsyncStorageSecureStore

La sfida

Un'azienda del settore antincendio e sicurezza nel Sud Italia gestiva tutta la manutenzione estintori, impianti antincendio, DAE su carta. Gli operatori uscivano al mattino con fogli stampati, compilavano a mano i report di intervento, tornavano in ufficio e qualcuno li inseriva nel sistema. Un processo che funzionava, certo. Ma funzionava male.

I problemi erano evidenti: errori di trascrizione, ritardi nella rendicontazione, nessuna visibilità in tempo reale su chi stava facendo cosa. Il management vedeva i dati solo a fine settimana. E quando un cliente chiedeva lo storico degli interventi, servivano ore per ricostruirlo.

La soluzione

Ho progettato e sviluppato SafeTrack, un'app mobile nativa che accompagna l'operatore in ogni fase del lavoro quotidiano. L'idea era semplice: l'operatore apre l'app, vede la sua lista lavoro, prende in carico gli interventi, li completa e tutto si sincronizza automaticamente con il backoffice.

Ma la semplicità d'uso nasconde una complessità tecnica significativa.

Architettura offline-first

Gli operatori lavorano spesso in seminterrati, garage, capannoni posti dove il segnale è un lusso. Per questo ho scelto un'architettura offline-first: l'app funziona completamente senza connessione. I dati vengono scaricati all'inizio della giornata, gli interventi vengono registrati localmente e la sincronizzazione avviene quando il dispositivo torna online.

Ho utilizzato AsyncStorage per i dati operativi e SecureStore per i token JWT, garantendo sia la persistenza che la sicurezza.

Due workflow distinti

Il sistema gestisce due workflow principali:

  • Prelievo: l'operatore preleva il dispositivo (estintore, DAE, ecc.), lo porta in laboratorio, esegue la manutenzione e lo riconsegna
  • SulPosto: l'operatore esegue la manutenzione direttamente presso il cliente

Ogni workflow ha i suoi stati, le sue validazioni e le sue regole. Ho implementato una macchina a stati che gestisce le transizioni e impedisce operazioni non valide.

Gestione gerarchica a 3 livelli

I dispositivi sono organizzati in una gerarchia a tre livelli: Categoria → Tipologia → Dispositivo. Questa struttura permette di navigare rapidamente tra migliaia di dispositivi e di applicare regole di manutenzione specifiche per ogni tipologia.

Stack tecnico

Il backend è costruito su Strapi 5 con autenticazione JWT. Ho scelto Strapi perché offre un'API REST completa out-of-the-box e un pannello di amministrazione che il backoffice può usare direttamente.

Il frontend è React Native con Expo SDK 54, TypeScript come linguaggio principale. La scelta di Expo ha accelerato enormemente lo sviluppo e il deployment su entrambe le piattaforme (iOS e Android).

Risultati

I numeri parlano chiaro:

  • -70% tempi di rendicontazione: quello che prima richiedeva ore di data entry manuale ora è automatico
  • Eliminazione completa della gestione cartacea: niente più fogli stampati, niente più errori di trascrizione
  • Visibilità real-time dal backoffice: il management vede in tempo reale lo stato degli interventi, senza aspettare fine giornata

Lezioni apprese

SafeTrack è stata la mia prima app mobile in produzione con architettura offline-first. La lezione più importante? La sincronizzazione dei dati è il problema più difficile da risolvere. Non è sufficiente salvare i dati localmente e inviarli quando c'è rete bisogna gestire i conflitti, i retry, i timeout. Ho sviluppato un sistema di coda con retry exponential backoff che ha reso il processo robusto e affidabile.

Un'altra lezione: Expo SDK 54 è maturo per la produzione. I tempi di sviluppo rispetto a React Native CLI sono drasticamente inferiori, e la qualità del risultato è identica.