Nello sviluppo di app uno dei pattern più diffusi è il tradizionale modello client-server dove i client sono costituiti dai terminali degli utenti ed il server è un applicativo sotto controllo dello sviluppatore che eroga servizi sotto forma di API REST a supporto della business logic della app. La maggior parte delle applicazioni che prevedono interazione fra utenti più o meno diretta sfruttano questo pattern e si appoggiano quindi su un set di API REST con cui i terminali degli utenti dialogano.
Dal punto di vista dello sviluppatore l’implementazione del codice a supporto della connessione con questo tipo di servizi è spesso qualcosa di molto ripetitivo per cui è frequente appoggiarsi su librerie esterne che forniscono già l’implementazione delle operazioni più comuni. Una delle migliori, fra le diverse che abbiamo testato, è Volley, scritta da sviluppatori Google e, stando al talk di presentazione del Googlie I/O 2013, utilizzata in grand parte delle applicazioni di punta di Google stessa.
Google Android Volley, caretteristiche principali
Google ha presentato Volley come una “HTTP library that makes networking for Android apps easier and most importantly, faster”. Lo scopo quindi è chiaro, ovvero rendere più semplici (da implementare) e più veloci le interazioni di rete basate sul protocollo HTTP.
Le principali caratteristiche che, oltre al fatto di essere codice ufficiale Google rilasciato all’interno dell’AOSP, rendono Volley la libreria di riferimento per l’implementazione di client REST sono le seguenti:
- scheduling automatico (con gestione della priorità) delle richieste di rete. Volley infatti mette a disposizione una coda e rende trasparente all’utente la gestione della priorità. Lo sviluppatore deve solo aggiungere la request alla coda e fornire una callback. Volley pensa al resto.
- gestione trasparente della concorrenza. Tutti i metodi di Volley sono thread-safe per cui è possibile per lo sviluppatore gestire l’aggiunta e rimozione delle request con la garanzia che lo stato degli oggetti sarà protetto dalle modifiche concorrenti. Le richieste a loro volta vengono gestite in parallelo grazie a diversi thread concorrenti.
- caching trasparente in memoria o su SD. Lo sviluppatore non deve preoccuparsi nemmeno del caching delle richieste e delle risorse. Basta dichiarare una determinata risorsa REST come cachable e configurarne l’expiration e Volley gestirà automaticamente il caching in modo compliant al protocollo HTTP.
- possibilità di cancellare una request. Questa feature è determinante per gestire correttamente la relazione fra il lifecycle delle activity Android e la coda di richieste REST. Può infatti accadere che in presenza di azioni dell’utente il risultato di una request diventi inutile (es. perchè l’activity da popolare è stata già distrutta). Per consentire performance migliori ed evitare request inutili (consumano, tempo, banda e memoria) Volley mette a disposizione una API per cancellare una request schedulata. E’ possibile anche stabilire scopes specifici in modo da cancellare una request automaticamente al variare del contesto.
- possibilità di configurazione e customizzazione. Lo sviluppatore ha la facoltà di estendere gli oggetti forniti nel toolbox Volley per creare componenti con un comportamento customizzato per le richieste specifiche della propria app. E’ inoltre possibile intervenire finemente sulle politiche di retrial e backoff.
- framework di logging e debugging molto potente. Sviluppare un client REST, proprio per la natura asincrona delle risposte rispetto alle richieste comporta spesso una difficoltà maggiore nelle fasi di debug. Volley offre una serie di primitive avanzate che supportano in queste fasi.
- un toolbox ricchissimo di strumenti utili. Volley offre classi che automatizzano task molto comuni dello sviluppo di una app, come ad esempio il caricamento asincrono di immagini da URL che viene gestito in una riga grazie alla classe NetworkImageView.
ELbuild, sviluppo app Android
ELbuild è specializzata nello sviluppo di app Android e iOS ed è costantemente alla ricerca delle soluzioni tecniche più avanzate da impiegare nello sviluppo dei progetti commissionati dai propri clienti. Se hai un’idea su una app e vuoi valutarne la realizzazione contattaci senza impegno.
Una risposta su “Android Tips | Volley, la libreria definitiva per la creazione di client REST”
[…] per NetworkImageView Pubblicato il 6 settembre 2014 da Luca Adamo Abbiamo già parlato in un precedente post di Volley, la libreria Google che aiuta lo sviluppatore nell’implementazione di client REST basati su […]