App iOS open source per la segnalazione e ricerca di persone scomparse in Italia.
Perché è open source? L'app tratta dati sensibili (segnalazioni di persone scomparse, posizioni, foto). La trasparenza del codice permette ad autorità, ricercatori di sicurezza, associazioni anti-tratta e contributori indipendenti di verificare che il trattamento dei dati sia corretto, sicuro e rispettoso del GDPR. È lo stesso modello di Signal, Bitwarden e altri progetti che gestiscono dati sensibili.
Bug, suggerimenti, traduzioni e PR sono benvenuti. Vedi CONTRIBUTING.md per il workflow di sviluppo.
Per vulnerabilità di sicurezza vedi SECURITY.md — non aprire issue pubbliche per problemi di sicurezza.
- iOS 16.0+
- Xcode 15.0+
- Swift 5.9+
- Apri
Humans.xcodeprojcon Xcode - Configura il tuo Team in Signing & Capabilities
- Verifica che
GoogleService-Info.plistsia presente - Build e Run
- Crea un progetto su Firebase Console
- Abilita i seguenti servizi:
- Firestore Database
- Firebase Storage
- Cloud Messaging
- Crashlytics
- Analytics
- Scarica
GoogleService-Info.pliste aggiungilo al progetto
- Crea un certificato APNs su Apple Developer
- Carica il certificato su Firebase Console > Cloud Messaging
- Abilita "Push Notifications" nelle Capabilities del progetto
L'app segue il pattern MVVM con i seguenti componenti:
Humans/
├── App/ # Entry point e AppDelegate
├── Models/ # Data models
├── Views/ # SwiftUI Views
│ ├── Main/ # Tab principale
│ ├── Map/ # Mappa interattiva
│ ├── List/ # Lista persone
│ ├── Detail/ # Dettaglio persona
│ ├── Report/ # Segnalazioni
│ ├── Alerts/ # Notifiche e alert
│ ├── Settings/ # Impostazioni
│ ├── Onboarding/ # Primo avvio
│ └── Shared/ # Componenti condivisi
├── Services/ # Business logic
│ ├── Firebase/ # Firestore & Storage
│ ├── Location/ # CoreLocation
│ ├── Notifications/ # Push notifications
│ ├── Geocoding/ # Address <-> Coordinates
│ ├── Analytics/ # Event tracking
│ ├── Crashlytics/ # Error reporting
│ ├── AppReview/ # StoreKit review
│ ├── Alerts/ # Alert management
│ ├── Sightings/ # Sightings management
│ ├── Network/ # Error handling & retry
│ ├── Offline/ # Offline cache
│ ├── Geofencing/ # Location-based alerts
│ └── Sharing/ # Social sharing
├── Utilities/ # Helper utilities
│ ├── Accessibility/ # VoiceOver support
│ ├── Appearance/ # Theme management
│ └── PDF/ # Poster generation
└── CoreData/ # Local persistence
- Mappa interattiva con pin per ogni persona scomparsa
- Lista filtrata per data, nome, località
- Segnalazioni avvistamenti con foto e posizione
- Report nuove persone scomparse (con moderazione)
- Notifiche push per nuovi casi e aggiornamenti
- Generazione poster PDF per condivisione
- Modalità offline con cache locale e sync automatico
- Retry automatico per errori di rete con exponential backoff
- Geofencing notifiche basate sulla posizione geografica
- Queue offline per segnalazioni senza connessione
- Condivisione avanzata su WhatsApp, Telegram, Twitter, Facebook
- Deep links per condivisione persona specifica
- Generazione hashtag automatici per piattaforme social
- Dashboard statistiche con punteggi e badge
- Cronologia segnalazioni con filtri e ricerca
- Sistema livelli da Nuovo Utente a Eroe
- Dark mode supportata
- Accessibilità completa (VoiceOver)
- GDPR compliant con export/delete dati
- Onboarding guidato per nuovi utenti
Gestite tramite Swift Package Manager:
- Firebase iOS SDK
- Firebase Analytics
- Firebase Messaging
- Firebase Firestore
- Firebase Storage
- Firebase Crashlytics
Nella cartella Docs/ trovi:
FIREBASE_SECURITY_RULES.md- Regole di sicurezza per Firestore e StoragePRIVACY_POLICY.md- Privacy Policy GDPR compliantTERMS_OF_SERVICE.md- Termini e Condizioni d'usoPRE_LAUNCH_CHECKLIST.md- Checklist completa pre-pubblicazione
Il progetto include unit tests per i servizi critici:
# Run tests
xcodebuild test -project Humans.xcodeproj -scheme Humans -destination 'platform=iOS Simulator,name=iPhone 15'- Rimuovi/verifica codice debug (già wrappato in
#if DEBUG) - Verifica URLs: Privacy Policy, Terms, Support
- Aggiungi App Store ID in
AppReviewService.swift - Testa su device fisico (APNs richiede device reale)
- Verifica tutti i permessi in Info.plist
- Seleziona schema: Humans
- Seleziona destinazione: Any iOS Device (arm64)
- Product > Archive
- Distribuisci tramite App Store Connect
- App Icon 1024x1024 (già inclusa)
- Screenshots per tutti i device sizes
- Video preview (opzionale)
- Descrizione app
- Keywords per ASO
L'app è progettata per essere conforme al GDPR:
- Privacy Policy linkata nelle impostazioni
- Export dati utente in formato JSON
- Cancellazione completa dati utente
- Permessi richiesti con spiegazioni chiare
- Crash reporting opt-out disponibile
Distribuito sotto MIT License. Vedi LICENSE per il testo completo.
Copyright © 2026 Gianbattista Bifulco. Puoi liberamente usare, modificare e distribuire il codice, anche commercialmente, a patto di mantenere la nota di copyright e la licenza nel codice derivato.
Il marchio "Humans" della Rai è proprietà dei rispettivi titolari e non è incluso nella licenza MIT.