fabio.collini 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

All articles by fabio.collini

 

Kotlin delegates nello sviluppo Android –  Parte 1

Google I/O 2017 è stato un punto di svolta importante nel mondo Android: Kotlin è diventato un linguaggio ufficialmente supportato per lo sviluppo delle app! Da dopo l’annuncio l’interesse verso questo linguaggio è cresciuto molto, ovviamente ci sono degli ottimi motivi per cui Google ha scelto di puntare su Kotlin. Grazie a data classes, properties, extension function e delegates una...
Continue reading...  

Droidcon Torino 2016: ad Aprile la terza edizione della conferenza Android

Manca davvero poco alla terza edizione dell’edizione italiana del Droidcon, anche quest’anno si terrà a Torino nel mese di Aprile (per la precisione giovedi 7 e venerdi 8). Sarà, come negli anni scorsi, una bella occasione per vedere dal vivo talk interessanti e per incontrare altre persone interessate allo sviluppo a 360 gradi di app Android. La community Android sta...
Continue reading...  

Testing di app Android con Dagger 2, Mockito e una rule JUnit

La Dependency Injection è la chiave per ottenere codice testabile, sfruttando questo costrutto è semplice sostituire un oggetto con un mock per cambiare e verificare il comportamento di una app Android o di un qualunque software. Dagger 2 è una libreria che permette di gestire le proprie classi sfruttando la depenncy injection, per le sue caratteristiche (prima fra tutte la...
Continue reading...  

IntelliJ & Android Studio shortcuts

IntelliJ IDEA è l’IDE sviluppato da JetBrains che sta diventando sempre più diffuso negli ultimi anni. La prima versione è del 2001 e storicamente è sempre stato un prodotto a pagamento. Soprattutto per questo motivo, ha avuto una nomea di prodotto di nicchia: non troppi utilizzatori ma molto contenti di pagare la licenza vista l’alta qualità del prodotto. Da un...
Continue reading...  

Droidcon London 2015: resoconto della conferenza

Il 29 e 30 Ottobre si è tenuta l’edizione 2015 del Droidcon londinese. E’ stato molto interessante, tanti talk di alto livello tenuti da sviluppatori, designer e esperti di tecnlogie Android arrivati in Inghilterra da mezzo mondo. Io ho avuto la fortuna di partecipare bissando la partecipazione dello scorso anno, in questo post proverò a riassumere le mie impressioni (senz’altro...
Continue reading...  

GDG DevFest a Milano il 3 Ottobre 2015

L’autunno sta arrivando, è periodo di DevFest! Le DevFest sono degli eventi proposti da Google e organizzati a giro per il mondo dai vari Google Developer Group. Uno di questi eventi si terrà a Milano sabato 3 Ottobre, sarà una festa per sviluppatori e appassionati di informatica. L’intera giornata sarà dedicata a vari argomenti tutti più o meno legati al...
Continue reading...  

Testing di codice RxJava asincrono con Mockito

L’argomento del primo screencast che abbiamo fatto a fine Maggio era composto da alcune chiamate a un server REST effettuate utilizzando RxJava e Retrofit. Nel post potete trovare le slide e il video con la registrazione dell’evento. Abbiamo visto come combinare più chiamate asincrone gestendo in modo abbastanza semplice i thread su cui eseguire il tutto. Il codice risultante era...
Continue reading...  

Gestione di una form con il Data Binding Android

Una delle novità più interessanti per gli sviluppatori Android fra quelle presentate al Google I/O 2015 è senza dubbio il framework di Data Binding. Ne abbiamo già parlato in un altro post, adesso è arrivato il momento di provare questo framework in un esempio reale. Nel sito ufficiale e in vari blog a giro per la rete ci sono alcuni...
Continue reading...  

Android Programmazione Avanzata: libro disponibile su Amazon

Se seguite questo blog da un po’ di tempo sarete sicuramente a conoscenza dell’uscita della seconda edizione di Android Programmazione Avanzata. Fra gli autori della seconda edizione ci sono anche io, insieme a Matteo Bonifazi, Alessandro Martellucci e Stefano Sanna. Ne abbiamo parlato nel dettaglio in un altro post in cui è stata annunciata l’uscita del libro, altre informazioni sono...
Continue reading...  

Screencast su Retrofit e RxJava: disponibile la registrazione

Lunedì 18 Maggio abbiamo registrato uno screencast che aveva come argomento Retrofit e RxJava. Abbiamo utilizzato un hangout on air di Google Plus, grazie a questo strumento è stato possibile registrare lo screencast in più persone e trasmetterlo in diretta su YouTube. Alcuni fra i milioni di spettatori (ok, forse definirli milioni è un po’ eccessivo…) hanno partecipando attivamente ponendo delle domande....
Continue reading...  

Live screencast su Retrofit e RxJava: lunedì 18 Maggio ore 22

Lunedì 18 Maggio alle 22 faremo un live screencast che avrà come argomenti Retrofit e RxJava. Sarà possibile seguire in diretta su Google Plus lo screencast ed interagire in modo attivo per approfondimenti e domande. L’argomento dello screencast: Retrofit e RxJava RxJava è uno dei framework usati nello sviluppo di applicazioni Android al centro delle attenzioni di molti sviluppatori. Può...
Continue reading...  

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...
Continue reading...  

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!...
Continue reading...  

Droidcon Italia: 9 e 10 Aprile 2015 a Torino

Il Droidcon ormai non ha più bisogno di presentazioni: è senza dubbio la conferenza dedicata ad Android più importante. Nell’ultimo anno è arrivato anche in America, a settembre dell’anno scorso c’è stata una edizione a New York e, ad Aprile, ci sarà un Droidcon anche a Montreal in Canada. Ma torniamo in Italia, il 9 e 10 Aprile a Torino...
Continue reading...  

Nuovo libro di programmazione Android: sviluppare applicazioni per Android in 7 giorni

Da poche settimane è uscito un nuovo libro in italiano destinato a chi si avvicina adesso allo sviluppo di applicazioni Android. Il titolo è sviluppare applicazioni per Android in 7 giorni e, già da questo, si capisce quale è la struttura e l’obiettivo del libro. I capitoli del libro sono appunto sette, partendo da zero vengono esposti i principali concetti...
Continue reading...  

Droidcon London 2014: resoconto della più importante conferenza europea su Android

Il Droidcon sta ormai diventando un appuntamento fisso per tutti gli sviluppatori Android sparsi per il mondo. E’ nato alcuni anni fa e adesso si tiene in varie città in Europa e negli Stati Uniti (a Settembre c’è stata la prima edizione americana a New York). Dopo essere stato all’edizione italiana di Torino dello scorso anno stavolta ho deciso di...
Continue reading...  

Java 8 in practice parte 2: method references e ordinamento di uno stream

Nel post precedente abbiamo introdotto un esempio concreto da risolvere utilizzando le nuove feature di Java 8, abbiamo già visto come filtrare e trasformare i dati di uno stream. Per completare l’esempio in questo post parleremo di come ordinare i dati, prima di questo approfondiremo l’argomento di come si può trasformare un metodo di una classe in una lambda expression....
Continue reading...  

Java 8 in practice parte 1: filtro e trasformazione dei dati in uno stream

Java 8 è uscito nella versione definitiva a Marzo, ne abbiamo già parlato ampiamente su CoseNonJaviste in alcuni post in cui abbiamo visto soprattutto della teoria. E’ arrivato il momento di mettere in pratica i concetti che abbiamo visto con un esempio un po’ più complesso. In questo post descriveremo l’esempio e vedremo come filtrare e trasformare i dati in...
Continue reading...  

Java 8: gli stream infiniti

Una delle nuove feature più importanti introdotte in Java 8 è senza dubbio il concetto di stream. Ne abbiamo già parlato in un post introduttivo, vediamo adesso come creare e utilizzare stream infiniti. Prima di questo vedremo con alcuni esempi il comportamento interno degli stream. Capire il comportamento interno è importante per sfruttare al massimo questa nuova feature che cambierà il modo di scrivere codice in Java....
Continue reading...  

Testing del codice e TDD: due libri da leggere

Spesso su cosenonjaviste condividiamo le nostre letture informatiche, in questo post vedremo una breve recensione di due libri “scoperti” da poco. Entrambi i libri parlano di testing del codice anche se da due punti di vista diversi. Il primo libro, Growing Object-Oriented Software, Guided by Tests, parla di scrittura di codice nuovo con un approccio basato sui test. Il secondo,...
Continue reading...  

Droidcon Italia 2014: resoconto della conferenza

Il 6 e 7 Febbraio si è svolta a Torino la prima edizione italiana di DroidCon, la più importante conferenza europea dedicata ad Android che si è già tenuta anche a Berlino, Londra, Parigi, Amsterdam e altre città europea. Noi di CoseNonJaviste eravamo presenti con un talk che ho tenuto io il secondo giorno. La conferenza è stata un successo,...
Continue reading...  

CoseNonJaviste @ Droidcon Italia, 6 e 7 Febbraio 2014 a Torino

Dopo varie edizioni in giro per l’Europa Droidcon arriva in Italia, a Febbraio sarà infatti la volta di Torino. Saranno due giorni (6 e 7 Febbraio) totalmente dedicati allo sviluppo di app e giochi su device Android, una cosa mai vista da queste parti! Il programma della conferenza propone una serie di talk molto interessanti, alcuni in italiano e altri...
Continue reading...  

Javascript lato server? E’ la scelta giusta?

Fin dalla sua nascita Javascript ha avuto una vita travagliata, è stato creato per aggiungere dinamicità a pagine web ma negli anni è diventato molto di più. Ha avuto anche momenti bui (quando Google ha creato GWT sembrava che stesse quasi per scomparire) ma è sempre tornato alla ribalta. Adesso Javascript sembra essere il linguaggio cool del momento e per...
Continue reading...  

Sviluppo di applicazioni Android con AndroidAnnotations

AndroidAnnotations è un framework open source che permette di utilizzare varie annotation nello sviluppo di applicazioni Android. Qualcuno che già sviluppa su Android si sarà chiesto, come mai tutti i framework Java moderni sono basati sulle annotation mentre Android non ne utilizza? È stato fatto un passo indietro? Scopriamolo insieme....
Continue reading...  

Aperitivo AndroidAnnotations a Firenze

Il 19 Marzo in centro a Firenze ci sarà un “evento aperitivo” dedicato ad Android organizzato dal GDG Firenze. All’interno di questo evento parlerò di AndroidAnnotations, un framework Android scritto molto bene che permette di sviluppare app Android scrivendo codice più semplice e leggibile sfruttando delle annotation....
Continue reading...  

Creare un backoffice in 5 minuti con OpenXava parte I

Da un po’ di tempo si parla di framework che permettono di creare interfacce grafiche partendo dal proprio modello dei dati o da una sua rappresentazione. Il termine scaffolding indica proprio questo: generare codice (che di solito permette di eseguire operazioni crud su entità) con un tool automatico invece di scriverlo a mano. Lo scaffolding è stato reso popolare da Ruby On Rails ed è attualmente presente in molti framework in diversi linguaggi di programmazione, per esempio è supportato da Django in Python, CakePhp e Symfony in php e Grails in Groovy. Ovviamente esiste qualcosa anche in Java: un esempio è Spring Roo e un altro che vedremo in dettaglio in questo articolo è OpenXava....
Continue reading...  

Tutorial Java: il metodo equals e l’operatore ==

Uno degli argomenti classici di un qualunque corso Java che si rispetti è come capire se due oggetti sono uguali. Tutti starete pensando: che ci vuole, basta usare il metodo equals di Object! In effetti l’argomento può sembrare molto semplice ma secondo me se ci fosse una classifica delle cause più frequenti di bug il non corretto utilizzo del metodo equals sarebbe nelle prime posizioni!...
Continue reading...  

DROIDDevCon: conferenza italiana dedicata agli sviluppatori Android

Il 24 Ottobre 2012 si svolgerà a Verona la prima edizione di DROIDDevCon, la prima conferenza italiana dedicata interamente allo sviluppo di applicazioni Android. Potevamo mancare noi di CoseNonJaviste a un evento del genere? Ovviamente no e quindi sarò io a ripresentare l’ormai collaudato talk sulle librerie disponibili su Android....
Continue reading...  

Tutorial jQuery Mobile: come creare una semplice web app per smartphone

Quando si parla di sviluppo di applicazioni web per dispositivi mobile i framework di riferimento sono attualmente due: Sencha Touch e jQuery Mobile. Il primo dei due si vanta di essere più potente e più maturo ma è un po’ più ostico da usare per chi non è esperto di javascript. In questo post vedremo una introduzione a jQuery Mobile, fin da questi semplici esempi si può notare come questo framework sia facile da utilizzare in quanto utilizza molto html5 e pochissimo javascript....
Continue reading...  

Da Java e Android a Objective C e iOS andata e ritorno – parte II

Nella prima parte di questo mini viaggio abbiamo visto un confronto fra gli ambienti di sviluppo, i componenti e i simulatori/emulatori utilizzabili per sviluppare per Android e iOS. In questo post parliamo di una delle cose più importanti (sembrerà strano ma è così :)) quando si scrive codice: il linguaggio di programmazione!...
Continue reading...  

Creare presentazioni di impatto: Prezi vs impress.js

Vi ricordate la mitica lavagna luminosa? Il termine lucidi deriva probabilmente da questo, per poter proiettare c’era bisogno di stampare su carta lucida e non su carta comune. Le prime presentazioni pubbliche sono state create usando questo comodo attrezzo che non è censito neanche su wikipedia (volevo mettere il link ma non esiste!). I vari PowerPoint di Microsoft, Keynote di Apple e simili non potevano non partire da questo modo di presentare e quindi utilizzano ancora il concetto di slide. L’unica aggiunta sono le transizioni fra una slide e la successiva fatte con una animazione più o meno carina e non con la mano che cambia il lucido! Ma nel 2012 non è possibile creare presentazioni senza restare aggrappati al passato? Ovviamente si! Vediamo in questo post due strumenti che ci permettono di farlo!...
Continue reading...  

WhyMCA 2012: cronaca del primo giorno della mobile developer conference

Il 24 e 25 Maggio si è svolta a Bologna WhyMCA la conferenza italiana dedicata al mobile, anche quest’anno CoseNonJaviste era presente con un talk, quello che ho tenuto io il primo giorno sulle librerie disponibili su Android. Tutti i talk sono stati di buon livello e la conferenza si è rivelata anche quest’anno molto interessante, vediamo in questo post la cronaca dei talk che ho seguito il primo giorno....
Continue reading...  

WhyMCA 2012: CoseNonJaviste presente con un talk sulle librerie Android

Anche quest’anno Maggio sarà il mese di WhyMCA, la mobile developer conference italiana che quest’anno si terrà a Bologna e non più a Milano. E anche quest’anno CoseNonJaviste sarà presente con un talk, quello che terrò io nel pomeriggio del 24 Maggio sulle librerie disponibili su Android....
Continue reading...  

Disponibile su Google Play l’applicazione Android di CoseNonJaviste

Un blog che parla di Android non poteva non avere l’applicazione Android su Google Play (o Android Market per i nostalgici)! Quindi eccoci qua a presentarvi la nostra app con la quale potrete seguirci sul vostro smartphone Android senza aprire il browser....
Continue reading...  

Da Java e Android a Objective C e iOS andata e ritorno – parte I

Come qualcuno di voi saprà dall’ormai lontano 2009 sto sviluppando due applicazioni per android, da quando mi sono laureato (quasi otto anni fa!) sviluppo in Java applicazioni web e non. Da un po’ di tempo mi sto avvicinando all’Objective C per sviluppare per iOS, per favore non ditelo in giro, non vorrei rovinarmi la reputazione! 😛 In questo post cercherò di raccontare questa mia esperienza, cercando di essere obiettivo e non di parte (dubito di riuscirci!)....
Continue reading...  

Nuovo libro su Android in italiano: Android programmazione avanzata

I libri che parlano di Android disponibili in italiano sono pochissimi e, fino ad oggi, tutti partivano dalle basi rivolgendosi a chi non aveva esperienza con la piattaforma. Fino ad oggi perchè da poco è disponibile Android programmazione avanzata di Stefano Sanna ed Emanuele di Saverio! Come dice chiaramente il titolo il libro non è per chi non conosce niente di Android ma si rivolge a chi ha già esperienza con il sistema operativo mobile di Google....
Continue reading...  

Web App mobile con jsf2: che framework usare?

Quando si parla di sviluppo per dispositivi mobile (in particolare Android e iOs) ci troviamo sempre di fronte a un dilemma: sviluppiamo una applicazione nativa in Java o Objective C o una web app ottimizzata per il mobile? La risposta giusta non esiste ma se abbiamo già una web app sviluppata con jsf la scelta più immediata è quella di usare questo framework anche per sviluppare la versione mobile....
Continue reading...  

Indicatori di caricamento con RichFaces 4 e jQuery BlockUI

La novità più importante di RichFaces 4 è stata sicuramente il passaggio da prototype a jQuery, questo cambiamento ha portato una maggiore leggerezza di tutto il framework e molti altri vantaggi. Per sviluppatori si aprono molti scenari interessanti in quanto i numerosi plugin di jQuery già sviluppati possono essere integrati facilmente in una web app. In questo post vediamo come sfruttare jQuery BlockUI per creare facilmente un indicatore di caricamento associato a una chiamata ajax....
Continue reading...  

Search and replace su Eclipse con le regular expression

Dopo aver visto una serie di shortcut di Eclipse vediamo in questo post come sfruttare le regular expression per manipolare un testo. Le regular expression vi spaventano e state per chiudere la pagina? Aspettate ancora un attimo, vedremo che anche usando solo i costrutti base delle regular expression si possono ottenere risultati interessanti....
Continue reading...  

PrettyFaces: come rendere una applicazione jsf seo friendly

Le applicazioni web sviluppate con jsf normalmente non vanno molto d’accordo con i motori di ricerca, i parametri passati in post e il fatto che gli url spesso non sono “parlanti” sicuramente non aiutano in questo senso. Per fortuna c’è PrettyFaces, una libreria di ottima realizzazione che ci aiuta nell’importante compito di creare un sito ottimizzato per i motori di ricerca....
Continue reading...  

Ottimizzazione del traffico di rete con RichFaces

Nel file di configurazione web.xml è possibile definire molti parametri per modificare il comportamento di una applicazione web. In questo post vedremo nel dettaglio i parametri che permettono di configurare il modo in cui sono trasferiti i dati dal server al browser nel caso di una applicazione web che utilizza RichFaces 3.3.3 (molti dei parametri sono disponibili anche nella versione 4 di RichFaces)....
Continue reading...  

Dopo Angry Birds e The Sims 3 anche Folder Organizer accusato da Lodsys di violare i brevetti!

L’altro giorno tornando a casa trovo accanto alla porta un avviso di un pacco non recapitato proveniente dagli Stati Uniti. La prima cosa che mi è venuta in mente è stata: “maledetti autovelox, ci sono anche là!” visto che ad Agosto ho fatto un giro nella West Coast percorrendo 4000km in macchina! Il giorno dopo mi portano il pacco e vedo subito che è un po’ troppo grande per contenere una multa. Lo apro e c’è la sorpresa: una bella accusa di violazione di alcuni brevetti da parte di Lodsys per la mia applicazione Folder Organizer lite....
Continue reading...  

Getting Real: libro gratuito di 37signals

37Signals è una azienda di informatica abbastanza piccola (per scelta!) ma che sta facendo grandi cose nel mondo del software. Dall’esperienza accumulata negli ultimi 10 anni sono nati due libri molto interessanti, il primo è Rework. Manifesto del nuovo imprenditore minimalista. Come avere successo con poche risorse (in inglese è Rework. Change the way you work forever). Il secondo libro si intitola Getting Real ed è disponibile gratuitamente nel sito ufficiale...
Continue reading...  

EJB3 Stateless vs Stateful, quale è la differenza?

La risposta alla domanda “quale è la differenza fra ejb stateful e stateless?” sembra evidente: gli stateful mantengono lo stato e possono essere usati per il classico carrello della spesa mentre gli stateless non avendo uno stato possono essere usati per implementare dei servizi. Ma siamo sicuri che la risposta è così semplice? Per quanto viene mantenuto lo stato di un ejb stateful? Per la durata della sessione web? Proviamo a fare un po’ di chiarezza in questo post....
Continue reading...  

BetterSoftware 2011 – Diario della conferenza

BetterSoftware 2011 è finito da qualche giorno, è tempo di tirare qualche conclusione di quanto è stato detto! Come nelle precedenti edizioni ci sono stati molti talk interessanti, alcuni degli speaker già presenti negli altri passati, ma anche alcune new entry! Fra quest’ultimi c’eravamo anche noi di CoseNonJaviste che abbiamo presentato due talk, uno sul Marketing delle applicazioni Android e uno sull’Outsourcing dei progetti....
Continue reading...  

Tutorial Javascript parte II

Nella prima parte di questo tutorial Javascript abbiamo visto i costrutti principali del linguaggio. In questo post vedremo varie caratteristiche del linguaggio Javascript arrivando a parlare di Javascript object oriented. Alla fine di questa mini guida al linguaggio Javascript vedremo la soluzione al mini quiz visto all’inizio della prima parte, ve lo ricordate? Sapete già la soluzione?...
Continue reading...  

Tutorial JavaScript – Parte I

JavaScript è un linguaggio di programmazione che a prima vista sembra facile da imparare, soprattutto per chi conosce Java o un altro linguaggio con la stessa sintassi. In realtà non è così semplice come può sembrare e sicuramente non è un Java in miniatura che gira all’interno di una pagina web! In questo tutorial vedremo come entrare nel mondo JavaScript per poterlo usare in modo strutturato e per avere una base per utilizzare i vari framework tipo jQuery, extJs/Sencha Touch, Dojo, Prototype e script.aculo.us....
Continue reading...  

WhyMCA: diario della mobile developer conference

E’ da poco finito whyMCA, conferenza molto interessante sul mondo mobile che si è tenuta a Milano il 20 e 21 Maggio. Quest’anno fra quelli che avevano il badge con scritto “speaker” c’ero anche io! Nella mattinata del secondo giorno ho tenuto un talk che parlava degli widget su Android....
Continue reading...  

Java Puzzlers a Google I/O

Da meno di una settimana è finito Google I/O a San Francisco: anche quest’anno ci sono state molte novità interessanti! La cosa migliore è che anche chi non è andato dall’altra parte del mondo può rivedere tutti i talk sul canale YouTube Google Developers. Fra i tanti talk uno che mi ha colpito è quello di Josh Bloch e Jeremy Manson....
Continue reading...  

Serializzazione in gerarchie di classi

Abbiamo già parlato più volte dell’interfaccia Java Serializable e di quanto è importante utilizzarla correttamente in application server J2EE in cluster. In questo post vediamo insieme un comportamento abbastanza peculiare e poco documentato che si presenta quando implementiamo questa interfaccia in una gerarchia di classi....
Continue reading...