Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Beginning Android 4
Recensito da Davide Panceri il 11-04-2012 ore 09:26
Copertina ISBN: 978143023984090000
Autori: Grant Allen
Editore: Apress
Lingua: Inglese
Anno: 2012
Pagine: 581
Allegati: Nessuno
Intel Parallel Studio XE
Anche se i tutorial in formato elettronico, aggiornati e gratuiti, non mancano, chi preferisce la concretezza di un manuale cartaceo potrebbe prendere in considerazione l'acquisto di questo volume introduttivo sulla versione 4 di Android, una guida di base, come suggerisce il titolo, ma che non rinuncia alla completezza, (almeno come numero di argomenti, facendo leva proprio sulle dimensioni e la varietà di argomenti trattati).

Il manuale comincia con una brevissima prefazione, nella quale sono indicati i prerequisiti per il lettore, e dove compare anche un collegamento utile a comprendere cosa sia necessario sapere, in particolare riguardo a Java, prima di iniziare la programmazione Android. A questo proposito, esiste anche un manuale ad hoc di Apress, "Learn Java for Android Development", di cui si parla anche in un altro libro.

Dalla pagina web del libro è possibile scaricare il codice sorgente dei progetti insieme all'indice completo, ed è possibile accedere al modulo per la segnalazione degli errori. Vi si trova anche una descrizione un po' sommaria dei contenuti, che riflette in poche righe il contenuto di quarantanove capitoli. Lasciando ogni speranza, dunque, entriamo.

Il primo capitolo illustra the big picture: cosa c'è e cosa manca nei dispositivi mobili, cos'è Android e in particolare le sue quattro articolazioni (attività, servizi, intenti e fornitori di contenuti) e tutto quanto mette a disposizione; infine, un quadro di quello che si troverà nel seguito del libro: prima la predisposizione dell'ambiente, poi la creazione di un semplice progetto, e infine l'esplorazione completa o quasi delle API.

Eccoci dunque al secondo capitolo, dove ci si predispone a lavorare installando il JDK dalla versione 5 in su, poi gli strumenti di sviluppo Android, il plug-in per Eclipse, o eventualmente Ant di Apache, e poi impostando l'emulatore o, se esiste, collegando il dispositivo su cui effettuare le prove. Come promesso, il terzo capitolo porta alla creazione del primo progetto Android, con o senza Eclipse, per poi procedere nel quarto all'analisi delle strutture che sono state così generate, e nel quinto all'esame delle peculiarità di Eclipse, anche se il capitolo si conclude rivendicando una completa indipendenza dall'ambiente di sviluppo usato dal lettore.

Il sesto capitolo mostra come apportare alcune migliorie al progetto appena creato, in particolare al supporto di diversi formati dello schermo e differenti versioni di Android. Qui si conclude la prima parte, che evidentemente ha uno scopo di conoscenza molto generale; infatti la seconda si apre con una riscrittura del progetto che viene effettuata molto rapidamente nel settimo capitolo, inserendo il codice per creare una semplice presentazione di informazioni (data e ora).

Con l'ottavo capitolo si iniziano a visitare i layout XML prima di arricchire un po' la conoscenza dell'interfaccia grafica tramite i widget del nono capitolo, e i container del decimo. I capitoli undici e dodici invece avviano all'interazione con l'utente, attraverso la tastiera, ma anche controlli cone Spinner, GridView e i campi di testo che eventualmente si autocompletano. Altri strumenti utili di questo genere sono le ListView approfondite nel capitolo tredici, o i TimePicker del quattordicesimo.

Nel quindicesimo capitolo invece si parla del browser e di come includere il package android.webkit nei progetti. Un leggero cambio di rotta nel capitolo sedici, dove si parla invece di menu, e nel diciassette, che in tre pagine e due figure accenna ai messaggi pop-up. Altro capitolo lampo il diciottesimo, che impiega appena quattro pagine per spiegare le principali caratteristiche delle cosiddette attività, e dei relativi cicli di vita con i metodi correlati. Qualche dettaglio in più viene invece inserito nel diciannovesimo capitolo, dedicato alla gestione della rotazione.

Il capitolo venti introduce un argomento complesso e non banale, ovvero i thread, e così anche i due successivi che si occupano di intent, attività e subattività. Procedendo sulla strada delle applicazioni complesse si incontra la necessità di gestire informazioni salvate al di fuori del codice Java strettamente legato all'applicazione, come viene mostrato nel capitolo 23 che tra gli altri esempi si occupa di immagini, XML, caratteri o altre tipologie di file. La seconda parte del libro si chiude con il capitolo ventiquattro nel quale vengono rapidamente esplorati gli stili, prendendo spunto da un esempio e concludendo con una fulminea definizione e descrizione dei temi.

A questo punto si apre la terza parte del libro, dedicata ai tablet, partendo da una considerazione storica relativa alla risoluzione dei dispositivi Android; dal 2009 in poi si assiste ad una moltiplicazione dei formati e del relativo supporto, e dalla versione 3.0 troviamo due modalità di gestione delle diverse dimensioni del display, di cui si parla qui, nel capitolo 28, oltre che nella documentazione. Nel frattempo, i capitoli 26 e 27 sono dedicati ad alcuni aspetti specifici dei tablet come la Action Bar.

La terza parte si chiude con il capitolo ventinove, dedicato allo spinoso problema dei cambi della piattaforma: al momento esce una nuova versione ogni sei-dodici mesi, e le cose cambiano anche nell'hardware con l'arrivo di televisori, netbook e altre diavolerie che in futuro saranno adattate o inventate. Il problema si rileva fin dall'installazione degli strumenti di sviluppo, e prosegue con la possibile confusione che nasce leggendo di target o SDK version, per cui è necessario chiarire bene i concetti e soprattutto presentare le soluzioni giuste per capire di quali classi si dispone, e come ad esempio isolare il codice Honeycomb o scrivere app dedicate solo al tablet.

Col capitolo trenta inizia la quarta parte del libro, che parla di accesso ai file in lettura e scrittura, tenendo conto dell'importanza della velocità e della destinazione. Attenzione in certi casi anche al file system YAFFS, problema peraltro aggirabile usando SQLite o la classe Java RandomAccessFile in modalità sincrona.

Il capitolo trentuno è dedicato alla preferenze, mappe formate da coppie chiave/valore che permettono di specificare e conservare la configurazione di un programma o di una singola attività, grazie alle API che vengono qui illustrate ed esemplificate. Il successivo invece introduce SQLite, pur riconoscendo fin dalla premessa che per approfondire l'argomento sarebbe necessario consultare altro materiale. L'esempio parte dalla creazione del database e, dopo la creazione delle tabelle e l'inserimento dei dati, mostra come effettuare delle query e visualizzarli in una ListView. Un cenno anche alla possibilità di distribuire un'applicazione con dati di esempio.

Il capitolo 33, anche se breve, potrebbe aprire nuovi orizzonti fino a sviluppi imprevedibili, dal momento che spiega come integrare librerie Java nel progetto Android, ma soprattutto come fare in modo che poi il tutto funzioni, per esempio limitandosi ad includere il codice strettamente necessario, magari poi ricompilandolo prima dell'uso. Dal momento che si può incorporare un linguaggio di scripting, viene proposto un esempio di IDE BeanShell, per poi concludere il capitolo con indicazioni sull'uso di altri linguaggi come JRuby, Perl Python, Lua, Rhino e PHP.

Un altro capitolo interessante è il trentaquattresimo, dedicato alla comunicazione via Internet, via Wi-Fi o con costosi servizi di telefonia mobile, e all'uso che ne possono fare le applicazioni Android, a parte quello già illustrato nel capitolo 15 a proposito di Webkit. L'intenzione è quella di usare e riusare componenti già esistenti, partendo dalla libreria HttpClient di Apache inclusa nel sistema.

Con il capitolo trentacinquesimo inizia la quinta parte del libro, dedicata ai servizi, ovvero quelle attività durature che a volte bisogna prolungare anche quando ne vengono avviate delle altre; ad esempio, si può mantenere la connessione a una chat anche se nel frattempo arriva una telefonata, oppure aggiornare un feed RSS, o magari connettersi alla rete cellulare per effettuare aggiornamenti e incrementare silenziosamente i consumi del cellulare.

Non sono molte le applicazioni che necessitano di servizi, e quasi mai ne serve più di uno, ma si tratta di strumenti che è bene conoscere e sapere usare quando serve, a partire dalle classi che vanno estese per proseguire con i metodi, compreso onTrimMemory introdotto da Android 4.0 per la gestione automatica di situazioni in cui la memoria scarseggia. Il capitolo successivo esamina alcuni scenari d'impiego dei servizi e la relativa implementazione; ad esempio, il download, l'ascolto di audiolibri o musica, l'uso di un Web Service per il reperimento di informazioni.

Il passaggio successivo, argomento del capitolo 37, riguarda la gestione delle notifiche rivolte all'utente attraverso vibrazioni del telefono, messaggi pop-up, o icone che si muovono o cambiano aspetto; evidentemente si tratta di un insieme di capacità organizzate sotto forma di framework, che permette ad esempio di aggiungere icone di stato o lampeggiamenti vari a quelli eventualmente già presenti sul dispositivo, nei limiti del possibile. Nell'ultima sezione del capitolo vengono evidenziate alcune peculiarità di Ice Cream Sandwich e Honeycomb.

La sesta parte del libro affronta alcuni argomenti di varia natura come le richieste di permessi nel capitolo 38, l'accesso a servizi legati al GPS nel capitolo 39, l'uso delle mappe di Google nel sucessivo — prende in considerazione anche i possibili problemi legali o di contratto ed eventuali alternative — la gestione delle chiamate telefoniche nel 41 e dei font nel 42, mentre il capitolo 43 si occupa di strumenti di sviluppo aggiuntivi, come ad esempio Hierarchy Viewer per esplorare la ramificazione delle classi di una applicazione, ma soprattutto DDMS per controllare un gran numero di aspetti e attività dell'applicazione.

Avviandosi alla conclusione si parla del possibile utilizzo di piattaforme alternative per lo sviluppo Android: anche se principalmente si utilizza Java, c'è spazio anche per chi conosce meglio e preferisce JavaScript oppure HTML5 — capitolo 45 — PhoneGap, esaminato nel capitolo 46, o magari Rhodes, JRuby, Mono, App Inventor o Titanium Mobile, brevemente trattati tutit insieme nelle sei pagine del capitolo 47.

In chiusura, cinque pagine del capitolo 49 tratteggiano alcune delle possibili linee di sviluppo futuro della piattaforma, mentre l'ormai tradizionale domanda Where Do We Go from Here trova una breve risposta nell'ultimo capitolo del libro, il numero 49.
proUn manuale completo nella varietà di argomenti, che prepara ad affrontare diversi aspetti della programmazione Android.
controA voler essere completi si rischia di risultare superficiali; d'altra parte il beginning del titolo è abbastanza chiaro.
Precedente: OS/2 al quarto di secolo
Successiva: Linear Programming and Network Flows (quarta edizione)
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.264 secondi.