Android Volley, aggiungere supporto redirect 301/302 per NetworkImageView

Android Volley Framework Redirect SupportAbbiamo già parlato in un precedente post di Volley, la libreria Google che aiuta lo sviluppatore nell’implementazione di client REST basati su richieste HTTP asincrone. Fra i vari componenti del toolbox ce ne è uno, la classe NetworkImageView, che consente di caricare in modo asincrono immagini e mostrarle in una UI Android. Questa classe infatti estende ImageView e mette a disposizione un comodo metodo setImageUrl che si preoccupa di caricare asincronamente la risorsa immagine e di mostrarla nell’interfaccia.

Questo componente è molto flessibile e potente, ma soffre di una limitazione che risulta essere bloccante nel caso lo si voglia utilizzare per mostrare immagini la cui URL si rivela essere un redirect 302 o 301 ad una URL diversa. Un esempio di immagini con URL che forzano un redirect 301 o 302 è quello delle immagini profilo estratte attraverso le Graph API di Facebook.  Vediamo come patchare il sorgente di Volley per superare questo inconveniente.

Leggi tutto “Android Volley, aggiungere supporto redirect 301/302 per NetworkImageView”

Nasce EasyFeel, un servizio online per la prenotazione di pulizie domestiche

EasyFeelNasce in Italia e più precisamente a Milano, EasyFeel, la prima piattaforma web attraverso la quale si possono prenotare in qualsiasi momento della giornata  degli operatori che svolgano le tue faccende domestiche.

La prenotazione può avvenire 24 ore su 24 e 7 giorni su 7! Ed è proprio questo l’aspetto più innovativo: per la prima volta la flessibilità sarà massima e chiunque avrà finalmente la possibilità di gestire i propri impegni come meglio crede. Gli operatori sono tutti qualificati e hanno un forte background nel settore delle pulizie domestiche.

Leggi tutto “Nasce EasyFeel, un servizio online per la prenotazione di pulizie domestiche”

Android Tips | Volley, la libreria definitiva per la creazione di client REST

ELbuild sviluppa app Android con Google Android VolleyNello 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.

Leggi tutto “Android Tips | Volley, la libreria definitiva per la creazione di client REST”

Come creare un archivio .zip in Java

Creare archivi ZIP in Java

Creare archivi ZIP in Java
Zip Java

Durante lo sviluppo di applicazioni web o desktop ricorre spesso l’esigenza di consentire l’esportazione massiva di un numero alto di file, o semplicemente di velocizzare il download di un singolo file testuale.

Per questo motivo spesso la soluzione è quella di creare un archivio ZIP, operazione che in Java è molto semplice grazie alle classi del package java.util.zip. Vediamo come creare velocemente ed in maniera efficiente archivi zip a partire da un singolo oggetto java.io.File o da una List di istanze.

Leggi tutto “Come creare un archivio .zip in Java”

Swing Background cella condizionale al contenuto – Esempio custom CellRenderer

ELbuild Swing custom CellRenderer

java-swing-java-tablecellrenderer
Swing Table

Il framework Swing, sebbene abbia fallito la standardizzazione JSR, conserva di fatto il ruolo di standard de-facto per lo sviluppo di applicazioni desktop in Java. La facilità di modifica del look and feel dei componenti è uno dei punti di forza di questo framework.

Vediamo in questo post una classe che implementa l’interfaccia TableCellRenderer per rendere possibile allo sviluppatore la selezione di un colore di background basato sul contenuto della cella stessa.

In particolare con questa classe, assumendo di conoscere il tipo di oggetto alla base del table model, è possibile modificare il background della cella in base ad una qualsiasi proprietà dell’oggetto stesso.

Leggi tutto “Swing Background cella condizionale al contenuto – Esempio custom CellRenderer”

Black Magic – Come deserializzare una classe Java senza istanza

java-deserializzare-classe-senza-istanzaLa serializzazione, ovvero la traduzione di una classe in uno stream binario, è largamente utilizzata in molti campi dello sviluppo software perchè costituisce un modo semplice di immagazzinare in memoria o scambiare via rete oggetti Java. Un oggetto serializzato può essere deserializzato utilizzando la definizione della classe originale, ricostruendo di fatto l’istanza di partenza.

Ma che succede se abbiamo uno oggetto serializzato e non abbiamo la più pallida idea di quale sia la classe di partenza? Vediamo qualche espediente che possiamo utilizzare per recuperare i dati.

Leggi tutto “Black Magic – Come deserializzare una classe Java senza istanza”