Tramite l'applicazione è possibile mandare richieste di aiuto direttamente alle forze dell'ordine (pulsante Emergenza) o ai propri contatti (precedentemente inseriti nella rubrica dell'applicazione - pulsante Informa Contatti).
- Apertura chiamata alle forze dell'ordine e invio notifica di assistenza al loro client con posizione, tipo di richiesta e informazioni utente
- Possibilità di inviare messaggi di testo, whatsapp e chiamate a uno dei contatti presenti in rubrica
- Possibilità di far squillare il telefono nel caso non si riesca a parlare e quindi a farsi trovare
- Possibilità di mostrare a schermo le proprie informazioni personali, in caso di arrivo dei soccorsi con paziente incosciente
- Possibilità di specificare una lista di priorità per le modalità di contatto utenti (per ora si riflette solo nell'ordine dei pulsanti mostrati prima di effettuare l'azione)
- Localizzazione in Italiano e Inglese
Un'architettura di tipo serverless è stata preferita all'architettura classica descritta nella documentazione di android studio.
Non sono quindi presenti un DB in locale e uno in remoto acceduto tramite web services in quanto Firebase consente il caching delle informazioni acquisite online e la conseguente persistenza dei dati anche in offline.
- Android Studio per sviluppo generale
- Firebase Authentication
- Firebase Firestore per storage e sincronizzazione dati
- Invio Sms
- Accesso alla posizione
- Al momento non sono presenti controlli sui campi di input, non inseriti per mancanza di tempo. All'utente è quindi richiesto di riempire tutti i campi forniti in fase di registrazione o di inserimento nuovo contatto, e in caso di errore è mostrato solamente un messaggio generico tramite Toast con la notifica dell'errore.
- Telegram non supporta l'apertura di chat specifiche con messaggio predefinito tramite esecuzione di attività. Di conseguenza è necessaria la registrazione per l'uso delle API o l'utilizzo di un bot, non ancora implementati. Per ora il pulsante lancia un Toast con un semplice messaggio.
- L'interfaccia grafica è molto semplice e non particolarmente coerente nello schema colori
- Presenti troppe chiamate a Firebase per la lettura di dati o per l'aggiornamento dei record, che in uno scenario di utilizzo da parte di molti utenti porterebbe a far salire i costi del servizio.
- Gestione delle casistiche in cui l'utente non fornisce i permessi richiesti (chiamate,sms,posizione)
- Non è stato possibile implementare il cambio nome/icona dell'applicazione dall'interno dell'app. Il comportamento non è consistente tra dispositivi diversi, ad es. sul mio telefono non funzionava, su Nexus 4 emulato cambia l'icona ma solo nel task manager. Comportamento segnalato anche da altri utenti sul web. Al momento manca una feature porprietaria di android studio e l'unico modo di cambiare icona in maniera robusta è tramite aggiornamento app.
- Probabilmente a causa di un bug, non è stato possibile eseguire READ da una collezione radice chiamata "contacts" su Firebase. Di conseguenza i contatti sono stati memorizzati in una sottocollezione definita per ogni utente, che è risultata essere anche una soluzione più snella durante il recupero delle informazioni.
- Non è possibile mandare messaggi Whatsapp in maniera automatica, è possibile solamente aprire la chat di un utente con un messaggio preimpostato e poi mandarlo a mano
- Non è possibile mandare messaggi a più utenti in maniera automatica, al massimo si può definire un testo e poi all'interno di whatsapp selezionare a chi inviarlo (di conseguenza rendendo inutile la gestione dei contatti in questa App)
- Non è possibile inviare messaggi Telegram in maniera semplice tramite Activity (spiegato sopra)