Archivi categoria: Android

Codemotion 2012

Anche quest’anno si rinnova l’appuntamento con il Codemotion, che si svolgerà a Roma il 23 e 24 Marzo. L’edizione 2012 porta due grandi novità: l’evento si svolge in due giornate (venerdì e sabato) e in contemporanea su due città (Roma e Madrid).

Insieme al caro Emanuele Di Saverio (giusto il tempo di riposarci dopo la pubblicazione di "Android – Programmazione Avanzata") terrò un talk dedicato alla tecnologia NFC. Faremo una panoramica sulla tecnologia e una ricognizione sulle API che consentono di utilizzarla.

Libro Android Programmazione Avanzata

Dopo tanti mesi di lavoro, tanto codice, tanti device, tanta revisione è finalmente arrivato il libro scritto a quattro mani con Emanuele Di Saverio: Android – Programmazione Avanzata.

Il libro, pubblicato dalle Edizioni FAG di Milano e realizzato con la partecipazione di Samsung Italia, è dedicato a chi già conosce la programmazione su Android e vuole approfondire alcune tematiche avanzate. Niente “Hello World”, niente introduzione ai componenti grafici e alle Activity: solo tecniche avanzate o approfondimenti su argomenti solitamente poco trattati (ad esempio, il testing o la tecnologia NFC).

Il testo è, in un certo senso, la summa dell’esperienza maturata in diversi anni di lavoro sulla piattaforma Android. Nasce dal pratico (progetti industriali) e dall’esperienza concreta degli autori (da Android 1.x ad Android 4!). Mancano, pertanto, quegli argomenti su cui né io né Emanuele abbiamo mai lavorato intensamente (ad esempio, giochi e grafica 3D). Per chi fosse interessato, in questa presentazione sono descritti nel dettaglio i nove capitoli che lo compongono:

Il libro è già acquistabile presso:

Chi preferisse acquistare l’e-book può farlo qui:

Android e il cinema

I film sono un micidiale strumento di pubblicità più o meno subdola. Non è raro vedere sospette inquadrature di autovetture, di computer o di telefonini. A volte i richiami sono espliciti (quanti portatili Apple inquadrati da dietro, con quella bella mela luminosa in evidenza!), a volte più nascosti (avete fatto caso che suono di “batteria carica” di Wall-e è il suono di avvio dei Mac?).

Non essendo un gran fruitore di TV e di cinema, immagino di conoscere solo una minuscola parte di queste citazioni maliziose. Una, però mi ha fatto proprio ridere e l’ho trovata in un film di animazione: Rio. Immagino che l’abbiamo visto in tanti ma… quanti hanno notato che le scimmie comunicano utilizzando degli smartphone Android? 🙂

Il retro del telefono sembra suggerire che si tratti di un HTC (ma non sono riuscito a capire di che modello possa trattarsi), mentre l’inquadratura del display non lascia dubbio: è Android 1.x! 🙂

Ecco due fotogrammi del film:

Linux Day 2011 a Cagliari

Anche quest’anno il GULCh (Gruppo Utenti Linux Cagliari) aderisce al Linux Day, la giornata nazionale di promozione di Linux e del Software Libero.

Il Linux Day si svolgerà il prossimo 22 Ottobre presso la “sede storica” dell’evento cagliaritano, ovvero presso la Facoltà di Ingegneria in Via Is Maglias a Cagliari e durerà l’intera giornata (dalle 8:50 alle 18:00). Il programma è come sempre molto ricco, con due tracce e due “corner” specializzati. Purtroppo anche quest’anno non mi sarà possibile partecipare (mi avrebbe fatto molto piacere, come sempre), ma se ci potessi andare seguirei certamente il keynote di Marco Marongiu, uno dei soci fondatori e coordinatore storico del gruppo, e, al pomeriggio, il talk “Sviluppare applicazioni per Android” di Paolo Cortis.

Il Linux Day è uno dei pochissimi eventi IT non commerciali, non markettari, non autocelebrativi che si svolgono a Cagliari (anzi, direi in Sardegna) e le persone che lo organizzano sono professionisti di altissimo livello. Se vi trovate da quelle parti e non avete altri impegni per sabato 22 Ottobre, vi raccomando di farci un salto.

Cambia il vento

Volantini nella cassetta delle lettere, spot televisivi: Android è ovunque. Si, lo so, non è una novità Qualche settimana fa su questo volantino ho trovato 4 terminali Android su una offerta di 9 modelli:

Guardo raramente la TV, ma stasera non ho potuto fare a meno di notare che Vodafone e Tre propongo esplicitamente ed insistentemente smartphone Android:

In attesa che arrivi il nuovo iPhone (che, come sappiamo, segnerà nuovamente il passo per tutti), Android si fa strada polverizzando tutti gli altri concorrenti. Questo ci assicura un buon futuro per il nostro lavoro… (bella svolta dopo il fallimento di JME).

Prime impressioni su Honeycomb

Ho avuto la possibilita’ di toccare con mano le qualita’ di Honeycomb, la release 3.0 di Android dedicata ai tablet, su un Motorola XOOM WiFi arrivato dagli Stati Uniti (ci vorra’ ancora un po’ per vederlo in Italia).

Non sono solito fare recensioni di hardware (le lascio agli specialisti, quali TuttoAndroid o Androidiani), ma vorrei comunque raccontare le mie impressioni. Vorrei anche sorvolare molti degli aspetti positivi: anche questi sono piu’ che celebrati da Google e Motorola 🙂 In generale, Honeycomb e’ un ambiente di buona qualita’, molto potente e con una buona usabilita’; non e’ certo un prodotto rivoluzionario ne’, credo, il punto di riferimento per la user experience, ma sono convinto che ci siano basi solide e valide per creare dell’ottimo software per i tablet Android.

E’ inevitabile il confronto con il leader: l’iPad. Che piaccia o che non piaccia, prima dell’iPad i tablet erano un mero esercizio tecnologico; con l’arrivo dell’iPad, il mondo s’e’ messo ad inseguire Apple, borbottando, criticando, deridendo, ma comunque copiando. A quanto pare Apple ha fatto molte scelte giuste e neppure tanto scontate, se la concorrenza fatica anche a copiarle.

Io sono palesemente entusiasta del mondo Android e di questa piattaforma ho fatto il mio futuro professionale dei prossimi anni; nonostante questo, non posso non trovarne le lacune e, anzi, credo che evidenziare i punti deboli sia il modo migliore per trovare spunti di miglioramento.

Ecco qualche commento sparso:

– UI. Credo che Google abbia fatto un bel lavoro: l’interfaccia utente di Honeycomb e’ piacevole, abbastanza originale in se’ e sufficientemente coerente con quanto esiste su smartphone. Me la aspettavo piu’ bella, ma questo e’ un giudizio del tutto soggettivo. Ci sono nuove animazioni, ci sono nuovi menu’ della ActionBar e nuovi tab per navigare tra i Fragment di una Activity. Questa, in realta’, e’ una degli aspetti che mi lasciano perplesso: le applicazioni esistenti utilizzano i menu’ “classici” di Android (che qui non sono piu’ accessibili attraverso tasto fisico, ma per mezzo di un pulsante virtuale che compare nella System Bar immediatamente a destra del tasto di navigazione tra le applicazioni aperte), mentre le nuove si possono avvantaggiare del nuovo menu’: l’utente, dunque, si trova di fronte due user-experience diverse e deve necessariamente verificare, per ogni applicazione, dove sia stato messo il menu’. I nuovi tab, inoltre, sono sicuramente una bella novita’ e rinfrescata rispetto ai TabWidget della versione smartphone, ma quest’ultima continuera’ a soffrire di arretratezza e soprattutto costringera’ gli sviluppatori a fare due versioni delle applicazioni. E considerato che Android non offre un meccanismo simile all’Universal Binary di iOS, il processo complessivo si complica un po’ (si, lo so, giocando con risorse e codice si puo’ avere qualcosa di molto piu’ potente dell’Universal Binary, ma – ripeto – si tratta di qualcosa di piuttosto laborioso e decisamente non lineare). Qui sotto potete vedere il rendering dei menu’ nuovi (sul browser) e di quelli vecchi (sull’ottima Bluetooth Fine Transfer di Medieval Software).

– Hardware. Il Motorola XOOM e’ “un grosso tablet”. Non voglio ripetere qui le misure pubblicate in ovunque sul web, ma al tocco sembra piu’ corposo dell’iPad di prima generazione, decisamente enorme se paragonato all’iPad 2. Anzi, quello che stona e’ proprio il fatto che XOOM e iPad 2 siano praticamente coevi (hanno due mesi di differenza) ma lo XOOM sembra di una o due generazioni precedenti. Piu’ grosso, plasticoso e con la superficie touch decisamente meno cristallina di quella dell’iPad. Direi, pero’, che spessore, peso e alluminio siano gli aspetti che rendono l’iPad migliore. Curiosamente, lo XOOM nasce come dispositivo landscape: la videocamera, infatti, e’ posta sul lato lungo anziche’ su quello corto, come avviene sull’iPad. Anche il marchio Motorola leggibile solo in landscape suggerisce di impugnare il tablet in posizione orizzontale. Direi che per vedere un tablet figo dal punto di vista hardware dovremo aspettare i nuovi modelli Samsung.

– Prestazioni. Molto veloce. Merito del sistema operativo, merito del dual-core, merito della grafica, merito della fata turchina. Non lo so, ma e’ molto veloce. Unica grave pecca e’ una inspiegabile lentezza del browser. Scrollando le pagine (ad esempio verso l’alto) la porzione che era a schermo scorre velocemente mentre la nuova appare bianca e si aggiorna dopo una frazione di secondo. Questo e’ piu’ evidente su pagine complesse ma in generale si manifesta con qualsiasi sito. Capisco che il numero di pixel da gestire e’ grande rispetto ad uno smartphone, ma e’ anche vero che la potenza di calcolo a disposizione non e’ poca e soprattutto il browser diventa un componente indispensabile su un oggetto di questa categoria e, dunque, dovrebbe essere quello meglio curato. Qui sotto ho riportato il grafico del benchmark di Quadrant eseguito sullo XOOM:

– Applicazioni. Detto senza mezzi termini: quelle non ottimizzate per Honeycomb fanno proprio schifo! Un’applicazione semplice in ambiente smartphone, fatta con componenti standard e niente fronzoli, che puo’ essere definia “passabile” sul cellulare, vista sullo XOOM diventa davvero brutta. Il problema piu’ grosso (ne parlo nel prossimo punto) e’ che il Market non consente di filtrare le app fatte esclusivamente per Honeycomb: bisogna affidarsi al titolo assegnato dal publisher (“HD”, “for Honeycomb”, “tablet”). Il tema di default di Honeycomb, poi, e’ con fondo bianco, in leggera “controtendenza” rispetto al nero degli smartphone. Insomma, per sfruttare bene i tablet ci vogliono applicazioni ad hoc.

– Market. Da quanto e’ uscito l’Android Market ha collezionato piu’ lacune che traguardi di download. Classifiche non localizzate, prezzi delle applicazioni nella valuta del publisher (mai viste le applicazioni con il prezzo espresso in Yen? 😀 ), mancanza delle statistiche per gli sviluppatori: queste sono solo alcune delle mancanze dell’Android Market che con il tempo sono state risolte. Ora, con l’arrivo di Honeycomb, molte di quelle mancanze sono piu’ o meno colmate (resta quella delle classifiche localizzate) ma se ne presenta una nuova, che accennavo sopra: non c’e’ (o, se preferite, non ho trovato) un modo automatico per vedere SOLO per applicazioni sviluppate per Honeycomb. Il Market consente di sfogliare tutta la lista delle applicazioni disponibili e non c’e’ quella bella suddivisione dello store che troviamo su iPad.

– Manufacturer. L’ho twittato una marea di volte e non ho timore di scriverlo nuovamente qui: malgrado Motorola produca dell’hardware di ottima qualita’, ha una politica pessima di supporto all’aggiornamento software. Detto in parole povere, comprare un terminale Motorola significa potenzialmente mettersi in casa un oggetto che sara’ obsoleto con il prossimo rilascio del sistema operativo, perche’ verosimilmente Motorola lo aggiornera’ dopo molti mesi o non lo aggiornera’ per niente. In passato, vedere il mio HTC Magic del giugno 2009 ufficialmente aggiornato a Froyo entro il 2010 e contemporaneamente vedere il Motorola Milestone comprato a gennaio 2010 ricevere quello stesso aggiornamento ad aprile 2011 mi ha fatto arrabbiare non poco. Ho dunque il ragionevole dubbio che Motorola abbandoni lo XOOM (primo device al mondo con Honeycomb) cosi’ come ha di fatto abbandonato il Milestone (primo device al mondo con Eclair, nella sua declinazione americana Droid). Arrivera’ lo XOOM 2 o qualcos’altro che distarra’ il manufacturer dai clienti che le hanno dato fiducia al primo lancio. Insomma, grandi annunci, grandi fanfare, ma poi l’acquirente e’ lasciato a se’ stesso. Inutile dire che se i manufacturer non supporteranno per almeno DUE anni i terminali Android in commercio, Apple restera’ l’unica garanzia di avere un oggetto che diventa obsoleto piu’ lentamente. Qualcuno dice che Apple lo fa perche’ ha pochi modelli in circolazione: questo e’ vero, ma se un manufacturer decide di vendere 10 modelli DEVE attrezzarsi per supportarli tutt’e 10. Inoltre – lo sappiamo bene – su 10 modelli che escono difficilmente abbiamo 10 hw diversi: cambiano poche cose, giusto per catturare l’attenzione di diverse fasce di clientela.

– USB. Una nota a parte merita l’interfacciamento via USB; la cosa potra’ apparire strana e di poca importanza, ma secondo me cambia parecchio la user experience su Android. Finora gli smartphone equipaggiati con Android sono stati caratterizzati da pochissima memoria flash interna (da 256MB al giga, circa), lasciando alla SD card il compito di memorizzare immagini, musica ed eventualmente i dati voluminosi delle applicazioni piu’ esigenti. Poiche’, pero’, le applicazioni si installano della memoria interna, era facile saturarla in breve tempo, costringendo l’utente a rimuovere delle applicazioni per installarne di nuove. Prima con delle utility di terze parti (utilizzabili sono con terminali rooted), poi con l’arrivo di Froyo, e’ stato possibile installare le applicazioni su SD. Anche questa e’ stata una soluzione tampone: la memoria a disposizione del sistema operativo restava comunque ridotta e comunque la rimozione della SD rendeva invisibili le applicazioni su di essa installate. Stesso discorso per terminali quali l’ottimo Nexus S, che pur dichiarando 16GB di memoria, offre tutto questo spazio come storage USB (esterno) e, dunque, soggetto alle stesse limitazioni di cui sopra (e’ pur vero che lo spazio a disposizione del sistema e’ di 1GB, dunque ben oltre la media dei terminali Android). In sintesi: per poter esportare la SD (o porzioni della memoria interna) questa deve essere “staccabile” e condivisibile sia USB. Finora questo e’ avvenuto grazie al profilo MSC (Mass-Storage Class), che consente al computer host il controllo diretto e a basso livello della periferica di memorizzazione (sino al livello del filesystem fisico). Honeycomb sostituisce MSC con il profilo MTP (Media Transfer Protocol), che condivide un filesystem logico accessibile contemporaneamente dal device e al computer host. In pratica, il controllo a basso livello resta ad Android, mentre il computer accede al filesystem attraverso un demone che lo virtualizza (come se fosse un server FTP o WebDAV). Il computer host, dunque, non puo’ effettuare operazioni come formattazione o partizionamento del filesystem. Il vantaggio e’ immediato: i 32GB del device sono sempre accessibili e tutti a disposizione del sistema operativo e delle applicazioni. Finalmente si lavora senza quelle odiose limitazioni in mente. E anche il pannello di controllo di dice che c’e’ un’unica memoria, piu’ che abbondante:

Vi e’, ovviamente, il rovescio della medaglia: mentre MSC e’ universalmente supportato, per MTP occorre un driver. Su Windows e’ integrato con il sistema operativo: il protocollo e’ stato progettato da Microsoft per i suoi player mp3! Su Linux ci si appoggia alla libmtp (usata da molti software), mentre su Mac OS X l’unica possibilita’ e’ rappresentata dall’utility XNJB. Dubito fortemente che vedremo MTP integrato nel finder in tempi brevi (ce la vedete Apple a supportare contemporaneamente un protocollo di Microsoft per i tablet di Google? 🙂 ).

In sintesi: benvenuto Honeycomb, c’era bisogno di questo slancio nel mondo Android. Ora aspettiamo il merge con la piattaforma smartphone, un Market piu’ intelligente, una UI piu’ coerente, una maggiore serieta’ dei manufacturer per l’aggiornamento dei terminali.

Android Stack

Spesso amici e colleghi mi chiedono quali terminali Android uso per fare i test… giusto qualche giorno fa li ho messi tutti assieme e ho fatto questa “foto di famiglia”:

IMG_7813

Se volete conoscere quali terminali sono, guardate la foto su Flickr oppure guardate lo stack partendo dal basso (Archos 7 Home Tablet, Zii EGG, Motorola Milestone, Geeksphone One, HTC Dream, HTC Magic, LG Optimus One, Samsung Galaxy Mini, ZTE Blade, Huawei U8220, Samsung Nexus S, Huawei Ideos).

Nasce Android Gears

Da tempo volevo avviare un regolare blogging su Android, per condividere esperienze sullo sviluppo per questo interessante sistema operativo. Alla fine, per un motivo o per un altro, non ci sono riuscito. Scrivere un articolo richiede tempo, che e’ la risorsa che scarseggia di piu’.

Se il blogging non e’ possibile, proviamo con il microblogging, ovvero con Twitter. 140 caratteri, non uno di piu’. In fondo va bene cosi’: condividere conoscenza ed esperienze non deve passare necessariamente per articoli chilometrici. Basta una keyword, un link, una nota. Questo e’ cio’ che gli sviluppatori si scambiano quotidianamente mentre scrivono codice. “Ti ricordi come si fa questo?”, “A te e’ capitato questo errore?”, “Hai letto quell’articolo?”, “Guarda questa classe: puo’ essere utile in tante situazioni”. Ecco, Android Gears vuole essere il mio modo di cinquettare quel che scopro, imparo, sviluppo su Android. Senza presunzione, senza grandi pretese: solo volonta’ di condividere, niente di piu’. Spero possa essere utile a tutti i colleghi e gli appassionati di sviluppo software.

Come “effetto collaterale”, vorrei che la sequenza di tweet costituisse una collezioni di tips da scorrere, come se fosse una guida: rileggendola tra 4 mesi, o magari tra un anno, vorrei che il lettore trovasse comunque informazioni interessanti (ammesso, ovviamente, che le cose non siano cambiate radicalmente su Android), senza informazioni inutili come “e’ stato annunciato il terminale 123 della PQR Corporation”, info utilissima oggi ma inutile fra un mese. Finche’ possibile, dunque, evitero’ dei “tweet di annuncio” (ad esempio, “e’ uscito il firmware XYZ per il terminale ABC), ma meno che non si tratti di cose molto importanti e strettamente legate all’attivita’ di sviluppo (ad esempio, “e’ stato rilasciato l’SDK per Google TV”).

Poiche’ il web non e’ un mare di isole ma di “posti connessi”, qualche tweet conterra’ anche link a risorse per gli sviluppatori. Per lo stesso motivo di cui sopra, evitero’ segnalare link ben noti e scontati, ma segnalero’ quelli piu’ particolari o esoterici (ad esempio, come far funzionare ADB per un certo terminale ribelle).

That’s all, ho scritto fin troppo.

Se volete, potete seguirmi su http://twitter.com/androidgears

Statistiche device Android a fine luglio 2010

Google ha appena pubblicato i dati sulla diffusione delle diverse versioni di Android aggiornati alla fine di luglio 2010 (ricordo che queste informazioni sono pubblicate con cadenza bisettimanale all’indirizzo http://developer.android.com/intl/fr/resources/dashboard/platform-versions.html).

Questa l’istantanea della distribuzione:

E’ interessante notare che Eclair (Android 2.1) abbia praticamente raggiunto il 60% del mercato e che la Froyo (Android 2.2) cominci ad apparire significativamente (oltre il 4%). Poiche’ in autunno e’ previsto l’aggiornamento dei terminali piu’ recenti dei manufacturer piu’ importanti (per l’Europa penso a Motorola Milestone, HTC Wildfire/legend/Desire, Samsung GalaxyS/Corby), quest’ultima percentuale e’ destinata a crescere. E’ importante notare infine che Android 1.x copre ancora il 35% del mercato: poiche’ difficilmente quei terminali saranno aggiornati e soprattutto con poca probabilita’ i loro possessori, che hanno affrontato l’acquisto nei mesi scorsi, ne compreranno uno nuovo a breve, la base installata di Cupcake e Donut avra’ una certa importanza ancora per parecchi mesi.

In chiusura, ecco il grafico comulativo con tutti i dati via via pubblicati da Google nei mesi scorsi: