La potenza dei Google Services e delle mappe!
Google, come ben saprai, non è più solo un motore di ricerca. Lo sviluppo di nuovi progetti in proprio e l'acquisizione di compagnie, ha permesso lo sviluppo di un universo di servizi informatici, molti di quali vengono quotidianamente utilizzati da milioni di utenti, non necessariamente professionisti dell'informatica: YouTube, Google Maps, Google Drive, Gmail etc.
Servizi che è possibile implementare non solo su pagine web, ma soprattutto su applicazioni Android. Uno dei servizi più utili per moderne APP, è sicuramente la geolocalizzazione, ossia il recupero di informazioni in tempo reale sulla propria posizione, tramite la rete GPS o WIFI.
E' un processo apparentemente banale, ma implementarlo all'interno di un'applicazione, richiede molta attenzione, perchè sono convolti diversi passaggi, che devono essere correttamente implementati nel flusso di un'app Android, affinchè possa essere sfruttato senza mandare in errore l'applicazione.
Ulteriori complicazioni poi, si aggiungono in seguito alla gestione dei permessi in runtime, introdotti in Android 6 MarshMallow, che richiedono allo sviluppatore, nuove strategie per poter evitare il crash dell'app, la nuova gestione dell'Action Bar (AppBar) con i temi Material e alla libreria di supporto per la compatibilità con vecchie API, la creazione di liste efficienti con l'AdapterRecycler e molto altro ancora.
Il recupero delle sole coordinate latitudine e longitudine, però non consente di fare molto, a meno che, non vengano usate per interrogare database remoti esterni all'APP, che contengano informazioni, di servizi pubblici, quali ristoranti, alberghi, farmacie, oppure servizi privati come l'affitto di case, la ricerca di spazi e uffici da condividere, l'offerta di prodotti usati, etc.
In tutti questi casi, la difficoltà risiede nel saper interrogare, in tempo reale ed in modo efficiente, questi archivi, e riuscire ad estrarre informazioni utili per l'utente, da mostrare all'interno di una mappa navigabile e consultabile, ma anche sotto forma di un elenco a scorrimento, con altre informazioni particolareggiate.
Il tutto rispettando i cicli tipici di ogni Activity, quindi organizzando in sequenza le diverse operazioni, e integrandole al meglio all'interno delle diverse intefacce utente.