Archivi categoria: Android

Android Programmazione Avanzata (seconda edizione)

Ho realizzato solo nei giorni scorsi che, preso dal solito turbine infinito di cose da fare, avevo totalmente scordato di pubblicare sul mio blog la notizia della pubblicazione della seconda edizione del libro “Android Programmazione Avanzata”. Per la precisione, il libro è stato pubblicato a giugno dello scorso anno e porta con sé tante novità.

libro_2nd

Prima di tutto sono cambiati gli autori: il grandissimo Emanuele Di Saverio ha lasciato il testimone a una compagnia più numerosa, composta da Fabio Collini, Matteo Bonifazi (già autore di Android in Sette giorni) e Alessandro Martellucci. In realtà, Fabio Collini ha curato circa il 50% degli argomenti, mentre io, Matteo e Alessandro abbiamo curato il resto. È cambiata anche la casa editrice: FAG ha ceduto la pubblicazione a LSWR.

È stato un lavoro molto faticoso ma entusiasmante. La fatica ha una doppia origine: prima di tutto, scrivere un libro di programmazione avanzata che distilli l’esperienza reale degli autori richiede tanto tempo, tanta sperimentazione e soprattutto costringe a scartare tutti quei temi di cui sono pieni il web e altri libri. In secondo luogo, man mano che gli anni avanzano, gli impegni di ciascuno (tra lavoro e famiglia) lasciano sempre meno tempo a disposizione della scrittura e purtroppo non tutte le sere si ha l’energia o l’ispirazione per fare un lavoro di qualità. Se la fatica non passa facilmente, lavorare con persone in gamba come Fabio, Matteo e Alessandro ha reso l’impresa raggiungibile. Sarebbe stato impossibile, anche con tutto il tempo del mondo a disposizione, raggiungere la qualità che ciascuno di loro ha portato al libro. Non diversamente dal 2012 con Emanuele, anche se dopo tre anni Android è ancora più grande, i temi sempre più numerosi e, appunto, tempo ed energie sempre di meno.

Io ho curato il capitolo su Bluetooth, che in questa nuova edizione si arricchisce di tutta la nuova specifica Bluetooth Low Energy.

Ecco la ghiotta lista di argomenti:

  • Activity e task in background (tema sempre caldissimo!!!)
  • Programmazione funzionale
  • Grafica e interfaccia utente
  • Supporto multidevice
  • Bluetooth
  • Android Wear
  • Chromecast e Google Cast
  • Qualità del codice
  • Sicurezza (appendice)

Spariscono notifiche push, NFC e networking, che ormai non sono più argomenti avanzati. Chissà quali spariranno nella terza edizione e quali saranno quelli nuovi. Direi che se ne parlerà tra qualche anno! 😀

Come sempre, il libro è disponibile in tutte le librerie fisiche e virtuali, ad esempio su Amazon e IBS.

Introduzione alla tecnologia iBeacon

Con grande orgoglio e con l’emozione di sempre, anche quest’anno sono stato invitato a parlare al Codemotion che si è svolto all’Università Roma3. Ho parlato della tecnologia iBeacon e della localizzazione indoor e a corto raggio.

codemotion2015_badge

Il tema ha attirato un pubblico numeroso e spero sia stato di interesse per tutti i partecipanti.

codemotion2015_me

Iniziato timidamente molti anni fa, il Codemotion si conferma l’evento italiano più importante per sviluppatori, hacker, maker, innovatori, aziende e appassionati. Averlo trasformato da evento gratuito ad evento a pagamento non ha ridotto l’affollamento ma solo sfrondato i partecipanti casuali e annoiati, che portano casino e si addormentano durante i talk.

È un evento notevole, bellissimo, che credo abbia ancora ampissimi spazi di miglioramento: questo è assolutamente positivo, perché significa che gli anni avvenire porteranno novità e nuovi stimoli. Qualche nota: sarebbe molto utile che TUTTI i talk venissero registrati, per creare un mega archivio di tutto quanto prodotto dagli speaker; dovrebbe essere possibile (in qualche modo) segnalare la necessità di replicare un talk (magari perché due molto interessanti sono in sovrapposizione); i talk dovrebbero durare un po’ di più (40 minuti sono pochi).

Per me è stata anche una occasione per rivedere tanti amici che non vedevo da tempo (uno per tutti: Edoardo Schepis, che forse non vedevo da 10 anni! Ma anche Ugo, Giorgio, Guido, Daniela…): è stato molto bello constatare che, malgrado i capelli bianchi, qualche chilo in più, le chiacchierate più a parlare dei bambini che dei viaggi, siamo sempre gli stessi, sempre “hungry & foolish” anche prima dell’esortazione di Steve Jobs.

Ancora, durante il Codemotion si è creata una incredibile coincidenza: io e il mio Amico storico Massimo Farina (che si occupa di Diritto dell’Informatica) ci siamo trovati nella stessa aula, uno di seguito all’altro, a presentare un seminario. Insomma, dopo anni passati sui banchi di scuola e anni di avventure, la vita continua a farci incontrare e lavorare assieme.

codemotion_panel

Infine, vorrei ancora una volta ringraziare Mara Marzocchi (e Marco Casario, e Chiara, e Massimo, e Viviana, e Gosia, e…. tutti) perché ha avuto l’intuizione del Codemotion e la tenacia per realizzarla.

Sviluppare applicazioni per Android in 7 giorni

Una delle domande che mi viene posta più di frequente è quale sia il modo migliore di approcciare lo sviluppo su Android.

Solitamente la risposta è semplice: “prendi i tutorial ufficiali e uno smartphone con cui giocare, lascia perdere le bibbie e gli emulatori”. Ritengo, infatti, che i tutorial ufficiali siano ben fatti e che toccare con mano il risultato del proprio lavoro sia gratificante e sfidante allo stesso tempo.

Mi rendo conto, però, che oggi Android è davvero tropo grande per partire da là (nel 2008, quando ho iniziato a giocarci, era decisamente molto più piccolo… seppur enorme rispetto a JME!). Anche i tutorial cominciano ad essere tanti e spesso diventa difficile orientarsi. Fermo restando il consiglio sull’uso di uno smartphone fisico, credo che un ottimo aiuto per avvicinarsi alla programmazione Android sia il libro recentemente pubblicato da Matteo Bonifazi per l’editore LSWR. “Sviluppare applicazioni per Android in 7 giorni” è un libro onesto: in poco meno di 200 pagine e senza la pretesa di candidarsi a onniscenza di Android, questo volume insegna le basi per tradurre le idee in app funzionanti e pubblicabili. Un passo per volta, un tema al giorno, appunto, per una settimana, dal setup dell’ambiente di sviluppo alla pubblicazione sul Play Store. Compresi tracciamenti e pubblicità. Senza paroloni, senza trucchi (tipo traduzioni 1:1 di altri testi, ndr). Un libro onesto, appunto, scritto da chi il codice lo scrive tutti i giorni. Il titolo non deve tranne in inganno: non è una guida imprecisa o all’acqua di rose, ma è evidente che l’autore ha faticato non poco per essere conciso (e già Pascal dice che essere brevi è molto più faticoso che essere prolissi: “Questa lettera è più lunga delle altre perché non ho avuto agio di farla più breve.”). Ovviamente il lettore deve conoscere i concetti base della programmazione in linguaggio Java e deve possedere i fondamenti della programmazione ad oggetti.

App-Android-7-giorni

C’è tutto? No, assolutamente no. C’è quello che occorre per iniziare? Sì, assolutamente sì. Matteo ha sapientemente tolto dettagli inutili, lasciando quelli che servono a comprendere con rigore i meccanismi base del sistema. Insomma, il libro vale quel che costa e il tempo che si passa a leggerlo. Per molti aspetti, ha un approccio da maker, con la coscienza che puntare ad oltre un miliardo di device richiede comunque metodo.

Il libro è disponibile in formato cartaceo e ebook su Amazon e altri bookstore.

C’è anche un sito ufficiale a supporto: https://androidinsettegiorni.wordpress.com/

Google TV a Codemotion 2013

La stampa dice in continuazione che l’Italia e’ arretrata in quanto a innovazione e fermento nelle nuove tecnologie. Ma mentre giornali, TV e blogger si affannano a piangersi addosso o a celebrare progetti autoreferenzianti, un manipolo di persone che parla poco e fa tanto ha portato l’evento casereccio del JIP Day (era il 2005!) a diventare Java Day prima e Codemotion poi.

C’e’ poco da fare: il Codemotion e’ l’evento italiano piu’ importante dedicato al mondo della programmazione. Tutti gli altri eventi, anche quelli storici, sono ormai vetrine commerciali dove si snocciolano sigle e opportunita’ di business, ma il vero codice, il vero motore che alimenta i prodotti pulsa da un’altra parte. Neppure la crisi puo’ fermare il team del Codemotion. E neppure le Alpi: il Codemotion e’ infatti sbarcato a Madrid (dallo scorso anno) e a Berlino (novita’ del 2013). I numeri parlano chiaro: si e’ passati dai 600 partecipanti del 2006 ai 3700 presenti del 2012, con un’offerta di ben 88 talk.

Quest’anno ci saranno cento interventi e… ci saro’ anch’io (a Roma, ovviamente)! 🙂 Benche’ al Codemotion mi senta a casa, non nascondo che guardare questi numeri mette un po’ di apprensione, specie durante la preparazione del talk sulla Google TV che ho proposto agli organizzatori. Nel mio intervento parlero’ di come questa piattaforma si inserisce nell’ecosistema Android e di quali sono le potenzialita’ per gli sviluppatori e le aziende. Chi fosse interessato, potra’ seguire il talk il 22 marzo 2013 nella traccia INNOVATE, dalle 11:40 alle 12:20.

See you there!

Attenzione alla configurazione SMS sugli Xperia

Il Natale ha portato in famiglia un Sony Xperia Acro S, un buon terminale Android (schermo 720×1280, NFC, fotocamera 12MPX, ICS e aggiornamento JB imminente, CPU e resto di buon livello) caratterizzato da una poderosa resistenza a polveri e liquidi.

Dopo qualche settimana di utilizzo, la lettura del credito telefonico indica che c’è qualcosa che non va: sembra che l’operatore stia facendo pagare uno sproposito per gli SMS. La cosa è doppiamente inspiegabile, visto che proprio con l’Acro S abbiamo attivato una tariffa con un certo numero di SMS inclusi e che il relativo contatore dica che siamo ben al di sotto della soglia massima.

Dopo aver speso un buon quarto d’ora per capire come parlare con un operatore (eh, non ci sono piu’ i customer care di una volta!), un ragazzo gentile chiede subito: “avete uno smartphone Sony con sistema operativo Android?”. “Ehm… si, perché?”. “Controllate le impostazioni: quei terminali hanno l’opzione per la notifica di ricezione degli SMS attiva come impostazione predefinita”. “Ah, che fortuna, grazie!”. E’ stato sufficiente andare sul pannello di configurazione degli SMS per trovare conferma di quanto anticipato dall’operatore:

xperia_sms

E’ evidente che e’ piuttosto azzardato da parte del manufacturer lasciare questa impostazione predefinita, perche’ e’ certo che qualsiasi utente ci rimettera’ di tasca.

Insomma: l’operatore (giustamente) non ci faceva pagare gli SMS, ma (altrettanto giustamente, sigh!) ci faceva pagare le notifiche di ricezione (che può non apparivano sul display).

Problema risolto, peccato per i soldi sprecati…

Le tante (troppe) risoluzioni dei device Android

Qualche mese fa l’ottimo sito Melablog ha pubblicato una infografica realizzata da Chris Koerner mentre si attendeva il lancio dell’iPad 3 (poi svelato come New iPad). L’infografica, che qui sotto riporto per semplicità, mostrava le (allora potenziali) 4 risoluzioni diverse nel mondo iOS (in realtà due, ciascuna con il suo doppio):

E’ immediato constatare che su Android le risoluzioni sono MOLTE DI PIU’; ho pensato,dunque, di rappresentare le dimensioni in scala di tutte le risoluzioni dei terminali Android che conosco finora. Alcune figurano due volte, ad esempio la 600×1024 (portrait) del primo Samsung Galaxy Tab 7″ e la 1024×600 (landscape) del nuovo Samsung Galaxy Tab 7″ Plus, poiché effettivamente mentre i tablet Android più recenti sono pensati per un accesso al 99% in landscape (si pensi, ad esempio, al fatto che la stessa applicazione Android Market funziona solo in lanscape!), mentre i primi tablet e altri oggetti ibridi come il Galaxy Note sono esplicitamente pensati per un utilizzo in modalità verticale.

(cliccare per vedere ingrandito)

Nel dettaglio:

  1. 240×320 del piccolo Huawei Ideos
  2. 240×400 del Samsung Galaxy Mini di qualche tempo fa
  3. 320×480 del primo HTC Dream (come il primo iPhone)
  4. 480×800 del Nexus One
  5. 480×854 del Motorola Milestone
  6. 540×960 del HTC Sensation
  7. 600×1024 del Samsung Galaxy Tab 7″
  8. 720×1280 del Samsung Galaxy Nexus
  9. 1280×800 di tutti i primi tablet Honeycomb, ad esempio il Motorola Xoom e il Samsung Galaxy Tab 10.1

Emerge cosi’ che ci sono 9 risoluzioni diverse, che diventano 11 se si considerano separate le due modalità portrait e landscape delle risoluzioni 600×1024 e 800×1280. Malgrado l’API di Android consenta di scrivere con una certa agilità UI scalabili, è innegabile che supportare una così grande varietà di risoluzioni e densità richieda più di una accortezza da parte di sviluppatori e designer. Ne è prova il fatto che, a partire dalla release 3.2, è finalmente arrivato il modo di specificare esattamente per quale display è progettato un layout, uscendo dalla logica “troppo sempliciotta” degli screen small, normal, large… Questo proliferare di risoluzioni è forse uno degli aspetti più controversi dell’evoluzione di Android e, per certi versi, sembra che a Mountain View abbiano sottovalutato il problema o semplicemente gli è sfuggito di mano.