Nel normale sviluppo di un'applicazione, a prescindere dalla
piattaforma target, è facile ritrovarsi ad
affrontare le medesime tematiche come ad esempio l'identificazione dell'utente, la persistenza dei
dati in locale o l'accesso a servizi Web.
Il Software Developer Kit di Android, oltre ad offrire le API fondamentali per qualunque applicazione, espone API e
componenti atti a risolvere svariate problematiche. Per le tematiche non "affrontate" dall'SDK, vengono normalmente
in aiuto le librerie di terze parti.
La piattaforma del Robottino Verde è una
delle più interessante, è quindi
ovvio disporre di una miriade di librerie mutuate dal mondo Java o
realizzate proprio per Android.
Lo scopo di questa guida è presentare alcune librerie Open Source in Java e
scritte per affrontare alcune tra le problematiche di sviluppo più frequenti.
Per poter trarre benefici dalla lettura di questa guida sono necessari:
- buona conoscenza del linguaggio Java.
- I concetti base dello sviluppo su Android (si darà per scontato che il lettore conosca il funzionamento di Activity, Fragment, Intent, Service e così via).
- Conoscenza dell'ambiente di sviluppo Android Studio.
- Conoscenza dell'ambiente di sviluppo Eclipse.
Roadmap
Esistono diverse librerie oltre a quelle che si andranno ad analizzare nella guida.
La scelta delle librerie è dettata dalla mia personale esperienza
nello sviluppo software su piattaforma Android.
Per ogni libreria verrà prima introdotto il problema che gestisce e subito dopo vedremo
come la libreria lo affronta:
- Binding dei widget della user interface: il collegamento tra widget presenti su
un layout ed il relativo componente sottostante (activity o fragment) è un operazione tediosa che facilmente
introduce fastidiosi bug.
Per rendere meno gravosa questa attività utilizzeremo ButterKnife. - Caricamento delle immagini: la visualizzazione di immagini è un altro
task che il developer è tenuto spesso a dover affrontare.
In alcuni casi le immagini sono già presenti in modo statico
nell'applicazione, ma a volte è necessario utilizzare la
connessione di rete per recuperare da qualche server remoto le
immagini necessarie. Vedremo come recuperare e visualizzare le immagini con Glide. - Comunicazione tra componenti: uno degli aspetti più delicati nella progettazione e realizzazione di
applicazioni su
piattaforma Android è proprio la definizione delle iterazioni tra Activity, Fragment
e Service. L'uso degli Intent è sufficientemente semplice, ma all'ingrandirsi delle dimensioni
dell' applicazione si corre il rischio di perdere la "bussola". Per questa tematica utilizzeremo EventBus. - Persistenza dei dati: le principali modalità per rendere persistente un dato in locale consiste nell'uso di file,
di una
base dati SQLite o delle Shared Preferences. Affronteremo la persistenza con la libreria
Kripton. - Utilizzo di servizi WEB: su piattaforma mobile
i servizi SOAP non vengono praticamente utilizzati, quindi parleremo
esclusivamente di servizi REST. Tipicamente, nel caso in cui lato
back end siano presenti servizi SOAP, si utilizzano sistemi o
sottosistemi bridge al fine di convertire i servizi SOAP in REST e viceversa. I
servizi REST si basano su HTTP e sul formato dati JSON. In questa
parte della guida vedremo la libreria Retrofit. - Autenticazione: nei progetti con la necessità di salvare dati associati all'utente,
una delle prime necessità è quella di dover identificare
quest'ultimo. Capita molto spesso di appoggiarsi ad Identity Provider
ben noti quali ad esempio Facebook, Twitter e Google+. Affronteremo
questa tematica con Scribe. - Gestione dei permessi: chi ha già sviluppato
avendo come target Android 6 "Marshmallow" o superiore si sarà sicuramente
scontrato con l'esigenza di far chiedere all'applicazione i
permessi necessari al funzionamento in runtime. Affronteremo questo tema con
PermissionsDispatcher.
L'insieme delle librerie che verrà presentato è costituito esclusivamente da
soluzioni Open Source i cui sorgenti sono disponibili su GitHub. Tali librerie possono essere utilizzate insieme
senza incompatibilità.
La presentazione delle varie librerie sarà accompagnata da piccoli progetti d'esempio.
Se vuoi aggiornamenti su Android Studio inserisci la tua email nel box qui sotto: