Android Programmazione Avanzata: seconda edizione in arrivo

La prima edizione di Android Programmazione Avanzata è uscita nel 2012, ne abbiamo parlato in un post anche su CoseNonJaviste. Nel 2012 era uscita da poco la versione 4.0 Ice Cream Sandwich, Android girava quasi esclusivamente su smartphone e tablet. Adesso siamo arrivati alla versione 5.1, è possibile usare Android anche su smartwatch, televisioni e presto anche sulle auto. È arrivata l’ora di una nuova edizione di Android Programmazione Avanzata!
Copertina Android programmazione avanzata

Gli autori

Come ricorderete la prima edizione è stata scritta da Stefano Sanna ed Emanuele Di Saverio, per la seconda edizione ci sono un bel po’ di novità. Stefano Sanna sarà di nuovo uno degli autori, insieme a lui ci saranno Matteo Bonifazi, Alessandro Martellucci ed un certo Fabio Collini. Ebbene si, sarò anche io fra gli autori e cercherò di mettere su carta quello che ho imparato negli ultimi anni di sviluppo su Android.
Stefano, Matteo e Alessandro lavorano a Roma in Open Reply, società del gruppo Reply. Si occupano dello sviluppo di applicazioni Android innovative e di customizzazione del sistema operativo per alcuni manufacturer.

Gli argomenti del libro

Il libro si rivolge agli sviluppatori Android con già una esperienza alle spalle, per questo motivo gli argomenti non sono quelli standard di un libro introduttivo su Android. I capitoli presenti nella seconda edizione saranno otto più una appendice dedicata alle problematiche di sicurezza su Android. Gli argomenti dei vari capitoli sono i seguenti:

  • Activity e task in background: il ciclo di vita delle Activity, pur essendo uno dei primi argomenti affrontati quando ci si avvicina ad Android, non è facile da digerire. In questo capitolo sono affrontate le problematiche più comuni, prima fra tutte la gestione dei task in background, ed alcune soluzioni (dagli IntentService agli Event Bus);
  • Programmazione funzionale: con la release di Java 8 è possibile utilizzare i costrutti tipici della programmazione funzionale anche in Java. Purtroppo ancora non è possibile utilizzare Java 8 per lo sviluppo di app Android anche se, come mostrato in questo capitolo, retrolambda è una ottima alternativa. Gran parte di questo capitolo è dedicato al framework RxJava, mostrandone le caratteristiche (sia i concetti base che quelli più avanzati) e sottolineando come è possibile utilizzarlo per risolvere i problemi tipici riscontrati su Android;
  • Grafica e interfaccia utente: in una applicazione Android l’interfaccia grafica è un aspetto molto importante. Questo capitolo contiene varie tecniche da utilizzare per sviluppare la parte di UI di una app. Fra gli argomenti trattati ci sono le varie tipologie di Drawable, le animazioni (da quelle di Android 2.x per arrivare al framework introdotto in Lollipop), i Canvas e la gestione degli eventi touch;
  • Supporto multidevice: gestire al meglio le risorse è fondamentale (ma non sempre facile) per creare layout che si adattano ai vari dispositivi. Questo capitolo contiene un approfondimento su questo argomento e sull’utilizzo dei Fragment (probabilmente il componente di Android più discusso recentemente);
  • Bluetooth: questo capitolo si arricchisce di una dettagliata trattazione di Bluetooth Low Energy (BLE), la cui API ha fatto la comparsa su Android 4.3. BLE consente l’interfacciamento a dispositivi indossabili (tra cui le varie “band” per il fitness) e più in generale è la tecnologia abilitante per la Internet Of Things. Con la nuova API introdotta in Lollipop, gli sviluppatori Android possono sviluppare sofisticate applicazioni di ambient intelligence e accedere ai sempre più diffusi beacon per la localizzazione indoor;
  • Chromecast e Google Cast: tra il 2015 ed il 2016 si prevede che il numero dei televisori connessi alla rete sfiorerà il miliardo di unità e Google sarà uno dei protagonisti! Chromecast e Android TV rappresentano solo l’inizio di questa nuova era tecnologica, che colpirà prevalentemente, all’interno delle quattro mura, le nostre vite. Il supporto da parte di Mountain View, con il suo Google Cast, offre a tutti gli sviluppatori un mondo di possibilità ancora inesplorato: l’On Demand, il Gaming ed l’Entertainment sono solo alcuni tra gli argomenti più interessanti, sui quali tutti gli sviluppatori dovrebbero scommettere;
  • Android Wear: come cambia la user experience sui nostri polsi? Grazie ad Android Wear vedremo come sarà possibile estendere le proprie applicazioni su tutti i nuovi smartwatch powered by Google;
  • Qualità del codice: il testing su Android è un argomento tutt’altro che scontato, ci sono molti framework disponibili e non è semplice capire quale utilizzare per testare una determinata feature. La prima parte del capitolo contiene una panoramica sui vari tool disponibili, da quelli per il testing per arrivare a quelli per l’analisi statica del codice e la continuous integration. Nella seconda parte sono analizzate alcune tecniche (per esempio la dependency injection usando Dagger e il pattern Model View Presenter) da utilizzare per scrivere codice testabile. Se volete una anteprima di questo ultimo argomento potete fare un salto al DroidCon di Torino, il mio talk sarà proprio su questo argomento.

Uscita del libro

In questi giorni si stanno curando le ultime revisioni e l’impaginazione finale, manca ancora qualche settimana prima di vedere il libro disponibile su Amazon e nelle librerie. Stay tuned!

Fabio Collini

Software Architect con esperienza su piattaforma J2EE e attualmente focalizzato principalmente in progetti di sviluppo di applicazioni Android. Attualmente sono nel team Android di Cynny, ci stiamo occupando dello sviluppo dell'app Morphcast. Coautore della seconda edizione di Android Programmazione Avanzata e docente di corsi di sviluppo su piattaforma Android. Follow me on Twitter - LinkedIn profile - Google+