Questa repository contiene il codice dell'app Android di Project Iello. L'app consente agli utenti di cercare i posteggi per disabili situati in corrispondenza della propria posizione o di un determinato indirizzo. Consente inoltre agli utenti di segnalare eventuali posteggi da loro individuati.
Quest'app è stata pensata per permettere a tutti gli utenti di consultare i dati della piattaforma Iello. Per tale ragione l'app è anche disponibile nel Play Store.
- Integrazione con IelloAPI
- Funzionalità dell'applicazione
- Librerie aggiuntive utilizzate
- Licenza
- Contatti & Credits
L'App Iello sfrutta le funzioni fornite da Iello API per reperire i dati relativi ai parcheggi. Viene utilizzata ad esempio la funzione per il download dei dati dei parcheggi attorno ad una data coordinata o per la segnalazione dei posteggi da parte degli utenti.
La principale funzione dell'app è la ricerca tramite localizzazione. Premendo il tasto FAB in basso a destra nella schermata principale, viene lanciata una ricerca basata sulla posizione dell'utente, fornita dal GPS del proprio smartphone. L'app cerca tutti i posteggi per disabili situati attorno alla posizione dell'utente, entro un raggio specificato (personalizzabile dall'utente), sfruttando l'apposita funzione di Iello API.
Quindi, se sono presenti dei posteggi nelle vicinanze, vengono mostrati nella mappa. Un tap su su un posteggio ne mostra i dettagli, quali l'indirizzo e la distanza dalla propria posizione.
Premendo sul tasto "vai" associato al posteggio viene lanciato il navigatore di Google Maps, con impostata la funzione di navigazione dalla propria posizione al posteggio selezionato.
La ricerca dei posteggi può essere effettuata anche inserendo un indirizzo qualunque, tramite la funzione di ricerca. Premendo sulla lente di ingrandimento in alto a destra, viene mostrata una casella di ricerca, che permette di inserire un indirizzo.
Questo viene interpretato tramite un'API fornita da Google per il geocoding, ovvero per interpretare un indirizzo e ricavarne le coordinate corrispondenti.
Inrisposta vengono mostrati i parcheggi per disabili attorno alla posizione selezionata, con le stesse modalità della ricerca tramite geolocalizzazione.
L'app permette inoltre agli utenti di segnalare eventuali posteggi non presenti nel database. Dalla schermata segnalazione è possibile selezionare un punto nella mappa ed inviarlo ad un database remoto utilizzato per raccogliere le segnalazioni.
La segnalazione è stata implementata sfruttando l'apposita funzione di IelloAPI, pensata appunto per segnalare posteggi direttamente dall'app. L'utilizzo dell'API permette di rendere completamente indipendenti tra loro l'app e il database remoto. Collegare direttamente l'app al database sarebbe stato possibile, ma avrebbe rappresentato un problema di sicurezza. La funzione di segnalazione dell'API è stata infatti implementata utilizzando appositi meccanismi di sicurezza, per evitare modifiche accidentali o non al database, da parte di utenti non autorizzati.
L'app permette di personalizzare alcuni aspetti dell'interfaccia utente. In primo luogo, è possibile cambiare la combinazione di colori della mappa, scegliendo tra alcune combinazioni disponibili. È inoltre possibile modificare l'ampiezza del raggio di ricerca: ampliando il raggio vengono mostrati più parcheggi, se disponibili.
- Android Support Design Libraries: utilizzato per la creazione delle interfacce secondo le linee guida di design Google;
- Google Maps API: utilizzato per sfruttare le mappe Google e le relative funzioni, geocoding e reverse geocoding;
- Volley: API sviluppata da Google per effettuare Web request in modo facile, veloce e sicuro;
- Firebase Core Services: utilizzato per integrare funzionalità di controllo Firebase nell'app;
- AppIntro by Paolo Rotolo: utilizzata per creare la schermata introduttiva;
- ExpandableLayout by Aakira: utilizzata per i layout espandibili;
- MaterialSearchView by Miguel Catalan: utilizzata per la barra di ricerca.
MIT License
Copyright (c) 2017 IelloDevTeam
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
App realizzata come parte di un progetto di esame (PDGT) da Riccardo Maldini, Andrea Petreti, Alessia Ventani e Elia Trufelli.