Peddy è il diario personale che ti accompagna in ogni tappa della crescita, in totale sicurezza. Peddy 1.8 è disponibile, solo per Android.




Le schermate mostrano un profilo demo.
Novità della 1.8: la sincronizzazione tra dispositivi è molto più rapida. Leggi l’articolo sull’aggiornamento.
Dietro le quinte
Come è fatta l’app, in breve. Per il racconto completo leggi Peddy, dietro le quinte.
Lo stack: React Native, Expo e TypeScript
L’intera codebase usa Expo e React Native, tipizzata in TypeScript in modalità strict.
- Expo Router per la navigazione.
- React Context API e hook personalizzati per lo stato globale.
react-native-chart-kitereact-native-svgper le curve di crescita e i percentili OMS.- Un design system centralizzato (
theme/appTheme.ts) per una UI coerente, senza valori hardcoded.
Privacy by design (GDPR Art. 9)
I dati restano tuoi: Peddy sincronizza solo ciò che serve a mantenere allineati i tuoi dispositivi.
L’approccio è “local-first”: profili, visite, anamnesi e tappe motorie sono salvati sul dispositivo con react-native-encrypted-storage, che usa la crittografia AES-256 tramite il Keystore di Android.
Backend serverless: Firebase e sincronizzazione cloud
Per gli utenti Premium c’è la sincronizzazione cloud e il backup multi-dispositivo, interamente su Firebase:
- Authentication: accesso con Email/Password e Google OAuth 2.0.
- Firestore: dati cifrati AES-256 at-rest e Security Rules che permettono a ciascun utente di accedere solo al proprio nodo.
- Cloud Functions e notifiche: le push per richiami vaccinali e visite passano da FCM, con un job CRON giornaliero alle 09:00 nella region
europe-west1.
La sfida: ottimizzare le chiamate a Firestore. Prima l’app sincronizzava ogni 10 minuti anche senza modifiche. Nel ProfileContext ora c’è un pattern di “sync on change” con debouncing di 3 secondi:
- La sincronizzazione parte solo quando i dati cambiano, quindi molte meno chiamate a Firestore.
- Un aggiornamento compare su un altro dispositivo in circa 3 secondi invece di circa 600: 99,5% di attesa in meno.
- Nessun processo in background permanente, con un vantaggio per la batteria.
Testing e build
La logica è coperta da oltre 600 test automatici con Jest e @testing-library/react-native, con attenzione alle funzioni crittografiche (StorageService) e alla validazione dei form. In fase di prebuild nativa uso ProGuard per minimizzare e offuscare il codice.