Droidcon Torino 2015: ecco come è andata la conferenza italiana su Android

Dopo la prima edizione di Febbraio 2014 le aspettative per l’edizione di Aprile 2015 erano sicuramente alte, sono state ripagate? Sicuramente si! La location era favolosa, hanno partecipato più di 600 persone e ci sono stati veramente molti talk di livello alto. Ma non corriamo troppo, vediamo nel dettaglio come sono andati i due giorni di questa conferenza.

Due giorni pieni di spunti interessanti

Gli speaker presenti erano molti e provenivano da tutta Europa. Molte le aziende importanti hanno contribuito, per esempio uno dei talk più interessanti secondo me è stato quello di Alex Florescu direttamente da Yahoo. In questo talk (le slide sono disponibili qui) sono stati presentati vari aspetti relativi allo sviluppo di una app. Gli argomenti principali sono stati il testing, la continuous integration, l’A/B testing e la misurazione di tutte le metriche dell’applicazioni (dalla performance al comportamento degli utenti).
Altri due talk che hanno dato spunti interessanti sono stati quello di Cesar Valiente di Wunderlist e quello di Eugenio Marletti di Clue. Entrambi i talk hanno parlato della soluzione dello stesso problema: la sincronizzazione dei dati fra il server e più device dello stesso utente. La soluzione classica in questi casi si basa sulle notifiche push, funziona ma è abbastanza laboriosa da mettere in piedi. Le due soluzioni proposte in questi talk sono basate su WebSocket e su CouchDB, molto interessante soprattutto la seconda in quanto permette di sincronizzare i dati di un db NoSQL fra un server centrale e i vari dispositivi.

Android Wear, Google Tv e Android auto

Ormai Android non è più solo un sistema operativo per smartphone e tablet, lo possiamo trovare su dispositivi indossabili, sulle televisioni e presto anche sulle auto. Diversi talk avevano come argomento proprio questo, per esempio Tiziano Basile, Michelantonio Trizio, Mario Viviani e Alfredo Morresi hanno parlato di Android Wear nei loro talk. Android Auto è stato l’argomento del talk di Damien Cavaillès, mentre di Android TV e Chromecast hanno parlato fra gli altri anche Sebastiano Gottardo, Alessandro Martellucci e Matteo Bonifazi.

Testing e continuous integration

Uno degli argomenti che personalmente ho seguito con più attenzione è stato quello del testing. Il primo talk della prima giornata è stato quello di Stephan Linzner, ingegnere di Google che si occupa proprio dello sviluppo delle librerie per il testing su Android. E’ sempre interessante sentire parlare di una libreria direttamente da chi la sviluppa, in questo caso Stephan ha presentato la versione 2.1 di Espresso ed ha parlato del supporto per i test su JVM. Nell’ultimo anno secondo me c’è stato un cambio di rotta da parte di Google su questo argomento, in precedenza era data pochissima importanza a queste librerie che erano sviluppate con una certa lentezza e pubblicizzate (e documentate) pochissimo. Nell’ultimo anno ci sono stati dei passi avanti molto importanti, finalmente il testing di una app ha l’importanza che merita!
Un tool che è stato menzionato in molti talk è Jenkins, il software open source per gestire la continuous integration. Ho avuto diverse conferme di un’idea che mi ero fatto, in progetti complessi il modo migliore per mettere in piedi la continuous integration è l’utilizzo di un server Jenkins collegato a uno o più device reali su cui lanciare i test. Sarei felicissimo di essere smentito e di sentire esperienze di chi riesce a fare tutto con server virtuali ed emulatori, sarebbe molto più semplice e meno costoso da gestire.

Testable Android Apps

Nel pomeriggio del primo giorno c’è stato il mio talk sullo sviluppo di applicazioni Android testabili. Gli argomenti che ho affrontato sono stati diversi, dalla dependency injection sfruttando Dagger 2 (uscito ufficialmente proprio il giorno prima del talk!) all’utilizzo del Model View Presenter in una applicazione Android. Devo ammettere che gli argomenti non erano proprio banali e, per seguire il talk fino in fondo, era necessario avere una esperienza del testing di applicazioni Android. Per farvi un’idea degli argomenti potete dare un’occhiata alle slide qui sotto e all’esempio usato sul progetto su github:

In fondo al talk ci sono state domande che hanno aperto una discussione interessante: conviene scrivere i test per una applicazione “normale”? Per rispondere a questa domanda probabilmente servirebbe un altro talk intero, la risposta dipende da vari fattori, primo fra tutti la tipologia dell’applicazione. Per app finanziare con molta logica di business ha più senso scrivere i test che non per una app usata come vetrina per un prodotto o un servizio. In qualunque caso gli argomenti esposti nel talk aiutano a scrivere test in modo semplice, la dependency injection e l’utilizzo dei mock permettono la scrittura di test che siano veramente utili (per esempio per testare tutti i casi difficilmente riproducibili).
Un approfondimento sugli argomenti trattati in questo talk saranno presenti nella seconda edizione di Android Programmazione Avanzata, il libro che ho scritto con Matteo Bonifazi, Alessandro Martellucci e Stefano Sanna. Un intero capitolo è dedicato al testing partendo con una panoramica delle principali librerie e arrivando a parlare di come utilizzarli per avere una buona strategia di testing di una applicazione.

Complimenti agli organizzatori!

Anche quest’anno l’organizzazione è stata impeccabile; la conferenza si è svolta al Lingotto, una location decisamente sopra la media rispetto a quelle solite delle conferenze di informatica. I due giorni sono passati velocemente e senza intoppi, non sono mancate le occasioni per fare networking e conoscere tanta gente interessata al mondo del sistema operativo di Google.
Complimenti a tutti e appuntamento al prossimo anno!

Fabio Collini

Software Architect con esperienza su piattaforma J2EE e attualmente focalizzato principalmente in progetti di sviluppo di applicazioni Android. Attualmente sono in Nana Bianca dove mi occupo dello sviluppo di alcune app Android. Coautore della seconda edizione di Android Programmazione Avanzata e docente di corsi di sviluppo su piattaforma Android. Follow me on Twitter - LinkedIn profile

  • GiuseppeSorce

    Confermo di aver notato anch’ io la tendenza a discutere di testing sia da a parte di google sia nella community in genere; segno anche di maturità della piattaforma ?
    Che ti hanno fatto le Push 🙂 ?

    Cmq una bella esperienza il DroidCon se proprio una critica dobbiamo farla secondo la mia opinione forse pause più lunghe tra un talk e l’ altro arebbero state gradite.

    Al prossimo anno 🙂

    • Fabio Collini

      Diciamo che le push sono un po’ macchinose da gestire e da debuggare… Sicuramente un approccio come quello di couchDB in cui si sincronizzano tutti i dati specificando come gestire i conflitti può essere utile in alcuni casi.
      Per il testing è vero, da un anno a questa parte hanno cambiato decisamente rotta e sta diventando molto più semplice testare una app.

  • Tiziano Basile

    È stata davvero una grande esperienza, vissuta come speaker per il secondo anno di seguito. L’organizzazione è stata perfetta e l’atmosfera lo era altrettanto.
    Sono contento che tu abbia apprezzato i nostri sforzi (mio insieme a Mike, Mario e Alfredo) per preparare il trittico su Android Wear e spero che ti sia divertito a seguire così come noi ci siamo divertiti a presentare.

    See you on next issue! 🙂

    • Fabio Collini

      Ciao, purtroppo i talk su Android Wear erano in contemporanea al mio (o poco prima e poco dopo) e quindi non li ho visti. Approfitterò dei video appena saranno online!