Archivio della categoria: Libri

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/

Android Bluetooth API


Android e iPhone OS hanno tante cose in comune, ma una e’ davvero fastidiosa e castrante per gli sviluppatori: lo stack Bluetooth e’ accessibile solo alle applicazioni di sistema ed e’ stato totalmente escluso dalle API pubbliche disponibili sugli SDK ufficiali.

Questo significa essenzialmente che e’ impossibile scrivere applicazioni in grado di connettersi a GPS esterni (o a qualsiasi altro tipo di sensore dotato di questa interfaccia), LEGO Mindstorms NXT, Arduino Bluetooth, lettori RFID con interfaccia Bluetooth e via dicendo. Si tratta certamente di una nicchia, ma resta comunque una nicchia piuttosto interessante e chi ci lavora spesso lo fa per divertimento o sperimentazione di frontiera. Senza contare le innumerevoli applicazioni industriali. Perche’ privarsene?

Leggendo il sorgente (http://source.android.com) e usando sistematicamente la reflection di Java, ho definito una API e scritto una libreria che consente di accedere alle funzionalità base dello stack Bluetooth di Android. In particolare la libreria consente di:

  • attivare/disattivare il servizio Bluetooth (e leggerne lo stato corrente)
  • effettuare una scansione dei dispositivi Bluetooth limitrofi (e conoscerne l’indirizzo, la classe e il friendly name
  • effettuare il pairing con un device remoto
  • aprire una connessione seriale RFCOMM verso un dispositivo remoto

La Experimental Android Bluetooth Library e’ pubblicata gratuitamente sotto licenza Apache 2.0 ed e’ disponibile su:

http://code.google.com/p/android-bluetooth/

Rispetto a progetti simili, questa API (e la relativa implementazione) non richiede che l’accesso root al terminale. In altre parole, funziona su qualsiasi terminale commerciale, senza che sia necessario effettuare alcuna modifica al firmware. Essendo basata sulla reflection, funziona… finché Google non decidera’ di cambiare lo stack Bluetooth di Android (ed è verosimile che cambi, visto che il ramo del sorgente piu’ recente contiene pezzi di una nuova API e chiamate alla vecchia libreria precedente alla 0.9). Ho testato l’API con successo su Cupcake e sulla versione 1.1, il funzionamento sembra abbastanza stabile.

Una applicazione (chiamata “Bluetooth Samples”) che mostra funzionalità fornite dalla libreria è disponibile sull’Android Market. Il sorgente dell’applicazione e’ pubblicato insieme alla libreria su Google Code. L’applicazione consente anche di testare la connession RFCOMM, permettendo di connettersi ad un GPS Bluetooth del quale e’ visualizzato lo stream NMEA. Qui di seguito alcuni snapshot dell’applicazione:

bluetooth_samples_01.png

bluetooth_samples_02.png

bluetooth_samples_03.png

bluetooth_samples_05.png

bluetooth_samples_08.png

bluetooth_samples_09.png

bluetooth_samples_10.png

bluetooth_samples_11.png

bluetooth_samples_12.png

bluetooth_samples_13.png

Libro: Spring 2.5 Aspect Oriented Programming


Segnalare un libro è sempre un piacere, specie se il libro in questione è scritto da un amico. È dunque con grande piacere che vi presento il libro di Massimiliano Dessì intitolato Spring 2.5 Aspect Oriented Programming e edito da Packt Publishing:

spring_aop.jpg

Il libro di Massimiliano, disponibile da questo mese sul sito dell’editore (in formato cartaceo e PDF), spiega in dettaglio come la programmazione orientata agli aspetti possa migliorare la qualità del codice di applicativi Spring in termini di manutenibilità e robustezza. Dalla descrizione del libro:

Developing powerful web applications with clean, manageable code makes the maintenance process much easier. Aspect-Oriented Programming (AOP) is the easiest and quickest way to achieve such results. Spring is the only Java framework to offer AOP features. The combined power of Spring and AOP gives a powerful and flexible platform to develop and maintain feature-rich web applications quickly.

This book will help you to write clean, manageable code for your Java applications quickly, utilizing the combined power of Spring and AOP. You will master the concepts of AOP by developing several real-life AOP-based applications with the Spring Framework, implementing the basic components of Spring AOP: Advice, Joinpoint, Pointcut, and Advisor.

This book will teach you everything you need to know to use AOP with Spring. It starts by explaining the AOP features of Spring and then moves ahead with configuring Spring AOP and using its core classes, with lot of examples. It moves on to explain the AspectJ support in Spring. Then you will develop a three-layered example web application designed with Domain-Driven Design (DDD) and built with Test-Driven Development methodology using the full potential of AOP for security, concurrency, caching, and transactions.

Learn how Aspect-Oriented Programming can support Object-Oriented Programming to solve problems in the implementation phase

Write clean and concise code by implementing concurrency control in cross-cutting functionalities to manage code easily and create applications quickly

Realize a dynamic proxy with JDK, by implementing an interface that manages invocations

Realize the structural behavior of the pattern proxy design pattern by applying the crosscutting concerns of security, logging, and transactionality to specific Joinpoints

Simplify applying Advices through using AspectJ annotations

Develop better applications by handling important functionalities such as transaction management, application logging, exception management, and layout

Learn how the AOP enabled by the Spring Framework and Inversion of Control (IoC), can help you to remove the implementation compromises in applications

Ho avuto l’onore di fare da copy-editor per questo libro, dando una mano a Max nella revisione dei capitoli. È stato un lavoro faticoso (per lui!), ma il risultato è di grande livello. Consiglio a tutti coloro che lavorano su Spring (e non solo) di acquistarlo, sarà sicuramente un valido aiuto nella progettazione e nello sviluppo.

Bravo Max, continua così! Complimenti!

Libro: HCI Fondamenti e Prospettive


È appena stato pubblicato il libro "Human Computer Interaction – Fondamenti e Prospettive", curato da Alessandro Soro e edito dalla casa editrice Polimetrica. Il testo affronta una tematica estremamente interessante e contiene i contributi di numerosi esperti italiani della materia. Dalla pagina del sito dell’editore:

Quest’opera accompagna il lettore alla scoperta della disciplina dell’interazione uomo-macchina grazie ai contributi di alcuni fra i più affermati docenti, ricercatori e professionisti del settore. Partendo dalle necessarie basi di ergonomia, psicologia, e scienza dell’informazione, attraverso le più attuali problematiche legate all’accessibilità universale, all’ingegneria dell’usabilità, alla valutazione analitica e empirica della qualità dell’interazione, arriva a esaminare concretamente le sfide e le opportunità delle nuove tecnologie nei campi del mobile computing, delle interfacce utente multi-dispositivi, della realtà virtuale e dell’interazione tangibile…

hci_fondamenti_prospettive_320.jpg

Ho avuto il grande onore di partecipare alla stesura di quest’opera (credo la prima in italiano su questo argomento), curando il capitolo sul Mobile Computing, in particolare sulla problematiche di navigazione tra le viste delle interfacce grafiche dei terminali mobili e l’evoluzione delle applicazioni grazie all’uso dei sensori e all’interfacciamento con sistemi di pervasive e capillary computing.

Complimenti, Alessandro, per questo ottimo lavoro! Ti auguro che raggiunga il successo che merita e che la Scuola Estiva da cui è scaturito diventi un evento di riferimento in Italia.

Libro: I Contratti dell’Informatica


Vi segnalo il libro I Contratti dell’Informatica, pubblicato dalla casa editrice Experta, e scritto da Antonino Attanasio, Giuseppe Bellazzi, David D’Agostino e Massimo Farina.

contratti_informatica.jpg

Come recita il titolo, questo libro parla dei contratti legati al mondo dell’informatica e, dunque, degli aspetti civilisti e fiscali affrontati con approccio pratico e basato su una ricca casistica. Tra i temi trattati: la tutela giuridica del software, la creazione e la distribuzione di proprietà intellettuale, i contratti di cessione e di realizzazione, i servizi informatici e i profili tributari.

Gli autori del libro hanno dei CV di primissimo livello e il testo è di sicuro interesse per gli addetti ai lavori (più giuristi che informatici: certi argomenti sono piuttosto tosti da digerire!).

iPhone Open Application Development


In attesa dell’SDK ufficiale e di un terminale con cui giocare (!), segnalo l’e-book "iPhone Open Application Development" di O’Reilly, che descrive la procedura "non ufficiale" di sviluppo di applicazioni per iPhone e iPod Touch.

iphone_oreilly_small.jpg

Il libro è in versione Rough Cuts, "a tagli approssimativi". È possibile fornire all’autore dei suggerimenti su come migliorare il testo o chiarire parti ambigue. La versione PDF, particolarmente economica, può saziare subito gli impazienti, che potranno poi acquistare il testo completo quando sarà pronto (maggio 2008, ovvero quando l’SDK sarà finalmente stato pubblicato).

Pur non essendo completo di tutti gli argomenti (manca, ad esempio, il networking, che probabilmente può essere mediato direttamente dallo sviluppo Mac OS X), è molto interessante e ben scritto. Per certi aspetti ricorda i primissimi libri su Linux! :-) Grazie a Roberto Fraboni per averlo trovato e aver contagiato la curiosità per un po’ di sano hacking sull’iPod Touch.

Esce il mio libro!

Con grande emozione annuncio ufficialmente l’uscita del mio primo libro:

Java Micro Edition

Sviluppare applicazioni network-oriented per telefoni cellulari e PDA

pubblicato dalla casa editrice Hoepli.

cover_blog.png

Il libro affronta lo sviluppo di applicazioni su piattaforma Java ME e profilo MIDP, sia su telefoni cellulari che su computer palmari. Gli argomenti trattati riguardano prevalentemente il network programming, ovvero lo sviluppo di applicazioni dedicate alla comunicazione via seriale, GPRS/UMTS, Bluetooth e messaggi.

Tra gli esempi piu’ importanti vi sono: interfacciamento a lettori RFID e GPS Bluetooth, gestione efficiente della persistenza, feed reader e accesso a web service (anche Web 2.0), una chat per device mobili, attivazione remota di MIDlet da server a cellulare, un controllo remoto di PC via Bluetooth. Un intero capitolo e’ dedicato alla gestione della sicurezza su MIDP, dai protection domain alla firma digitale delle applicazioni.

Il libro e’ fortemente pratico: tutti gli esempi sono stati eseguiti sui telefoni e palmari piu’ diffusi sul mercato italiano (tra cui Nokia, Sony-Ericsson e i PDA equipaggiati con Windows Mobile e Palm OS) ed evidenzia alcune importanti problematiche di porting su diversi tipi di dispositivi. Il libro accenna allo sviluppo su piattaforma Sun SPOT e alla realizzazione di una utility per l’invio e la ricezione di messaggi crittografati.

Il libro, curato da liberipensieri.com, e’ gia’ disponibile presso il catalogo dell’editore. A breve apriro’ su questo sito una sezione dedicata da cui scaricare sorgenti degli esempi descritti nel testo e articoli di approfondimento.

Diritto e Nuove Tecnologie

E’ periodo di annunci di nuovi libri! Stavolta vi segnalo “Diritto e Nuove Tecnologie”, scritto da Massimo Farina per la casa editrice Experta.

max_libro_diritto_small.jpg

Il testo di Massimo affronta temi quali il contratto elettronico, la firma digitale, la tutela dei nomi a dominio, proprieta’ intellettuale e tecnologie digitali. Nel capitolo dedicato alla firma digitale e’ presente una corposa sezione, per la quale ho avuto il piacere di collaborare con Massimo, che illustra le modalita’ di utilizzo in ambiente Windows, Mac OS X e Linux. Un libro molto interessante, la cui lettura e’ certamente consigliata agli addetti ai lavori ma anche a coloro che vogliono conoscere come il nostro ordinamento recepisce l’evoluzione tecnologica della Rete.

Scienziati di ventura

Ci sono libri che fanno pensare, libri che fanno sognare, libri che fanno arrabbiare, libri che lasciano indifferenti. Alla prima categoria appartiene il lavoro di Andrea Mameli e Mauro Scanu, che hanno recentemente pubblicato “Scienziati di ventura – Storie di cervelli erranti tra la Sardegna e il mondo”, edito dalla Cuec di Cagliari. Questo libro racconta l’emigrazione dei ricercatori sardi dalla loro terra, il loro viaggio per trovare una occupazione stabile e il loro sguardo sempre puntato all’isola.

scienziati.png

Costruito su una corposa serie di interviste a importanti scienziati sardi sparsi per il mondo, lo scritto di Andrea e Mauro offre una immagine, ahime’, dolorosa della Sardegna. La conclusione a cui molti dei protagonisti giungono e’ che tornare in Sardegna significherebbe far cessare le attivita’ di ricerca o, peggio ancora, tornare a misere logiche di potere che affliggono il sistema Italia in diversi settori. E’ libro appassionato e appassionante, dove gli autori sono discreti ascoltatori delle testimonianze a volte sofferte degli emigrati, che guardano all’isola con malinconia per cio’ che hanno lasciato e timore per cio’ che non hanno mai trovato.

Il libro continua il cammino di studio di Andrea e Mauro sul blog http://scienziatidiventura.blogspot.com/, arricchito di nuovi contributi e approfondimenti.