|
Presentazione
Il libro affronta lo sviluppo di applicazioni network-oriented 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, SMS e MMS.
Il taglio del libro è fortemente pratico: tutti gli esempi sono stati eseguiti sui telefoni e palmari più 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.
Piano dell’opera
- La piattaforma Java ME: presenta la piattaforma Java ME organizzata in configurazioni, profili ed API opzionali. Il testo si sofferma sugli ambiti applicativi dei singoli profili e sui moduli utilizzati nella realizzazione di sistemi embedded;
- Mobile Information Device Profile: illustra il profilo MIDP, il più utilizzato su telefoni cellulari e PDA. Il capitolo descrive il modello applicativo basato sulle MIDlet, il processo di sviluppo, packaging e deployment delle applicazioni;
- Strumenti di sviluppo: offre una descrizione degli tool per lo sviluppo di applicazioni Java ME, in particolare Netbeans con Mobility Pack e gli SDK dei più importanti produttori di telefoni cellulari. Il capitolo illustra anche le modalit� di installazione del runtime Java ME su computer palmari equipaggiati con sistemi operativi Windows Mobile e Palm OS;
- Interfacce grafiche: dopo una breve panoramica delle problematiche di progettazione delle interfacce utente per dispositivi mobili, descrive la libreria di componenti grafici LCDUI, le tecniche di utilizzo dei componenti e della gestione eventi. Il capitolo si conclude con un approfondimento sui dispositivi dotati di touchscreen;
- I/O, multithreading e persistenza: affronta tre elementi fondamentali dello sviluppo della applicazioni: la gestione dei flussi di I/O, il multithreading e la persistenza. Introduce il Generic Connection Framework, alla base dell’infrastruttura di comunicazione della piattaforma Java ME. Il capitolo illustra dettagliatamente l’uso delle connessioni seriali per l�interfacciamento a GPS e lettori RFID;
- XML e Web Service: presenta la Web Services API (WSA), utilizzata per la decodifica di documenti XML e l’invocazione remota di metodi. Il capitolo illustra le tecniche di parsing attraverso la JSR 172 e la libreria opensource kXML. Descrive, infine, una tecnica di porting di una implementazione della WSA su terminali obsoleti;
- Networking: introduce il lettore al network-programming, con dettagli sull’uso delle connessioni HTTP e la gestione delle problematiche di porting su diversi dispositivi. Gli esempi pratici illustrano le modalit� di accesso a servizi Web 2.0 e la creazione di una chat multiutente;
- Messaggistica: presenta la Wireless Messaging API, utilizzata per invio e ricezione di messaggi di testo e multimediali. Il capitolo illustra la realizzazione di un sistema di attivazione remota di una MIDlet attraverso un terminale GSM connesso via seriale ad un server;
- Bluetooth: descrive il protocollo Bluetooth e le modalit� di utilizzo attraverso la JSR 82. Il capitolo approfondisce la procedura di discovery dei dispositivi e dei servizi, l’accesso a connessioni seriali RFCOMM e l’uso del protocollo OBEX per lo scambio di oggetti tra dispositivi limitrofi;
- Sicurezza: offre un’approfondita descrizione dell’infrastruttura di sicurezza del profilo
MIDP, descrivendo il processo di firma digitale delle applicazioni e la gestione dei domini
di sicurezza. Il capitolo affronta il tema della sicurezza nella gestione dei dati, presentando
una applicazione della API standard per la crittografia; - Altre API: fornisce una panoramica delle API opzionali non presentate nel resto del libro, tra cui multimedia, grafica e utility.
Esempi principali
- Hello World! (non poteva mancare!)
- Whiteboard per PDA
- Tabella di stringhe ed Hashtable persistenti
- Connessione seriale a GPS Bluetooth
- Driver Java per lettore RFID
- Atom feed reader
- HttpDownloader
- Client per web service REST Stikkit
- Chat per dispositivi mobili (client/server)
- Localizzatore automatico via SMS
- Un client SMS personalizzato
- Attivazione remota di una MIDlet via server JSE
- Controllo remoto PC via Bluetooth
- SparaMIDlet!
- Motore crittografico per messaggi
Sorgenti: JavaMicroEdition_esempi.zip
Note
Attualmente nessuna
Errata
- Pagina 22 (fine): il metodo
getProperty()
della classeMIDlet
è stato erroneamente indicatogetProprietà()
. - Pagina 251 (fine): nella esecuzione del metodo
connect()
è erroneamente cancellata l’istruzione che crea nuovi header per la successivaput()
. L’istanza diHeaderSet
, dunque, non è ottenuta assegnando il risultato dellaconnect()
ma attraverso una nuova invocazione dicreateHeaders()
. Il frammento di codice corretto è dunque:
ClientSession session = (ClientSession) Connector.open(url);
session.connect(session.createHeaderSet());
HeaderSet headerSet = session.createHeaderSet();
Articoli di approfondimento sul blog
Dove acquistarlo online
- Hoepli
- Libreria Rizzoli
- Gorilla.it
- Internet BookShop
- Librinformatica
- libreriauniversitaria.it
- webster.it
- Nero su Bianco
- Libreria Universitaria Unilibro
- shop.it
- Libraccio
Se ne parla su…
- Recensione di Pierpaolo Cira su Programmazione.it
- Corso di Mobile Computing, Prof. Bettini, Università degli Studi di Milano (testo consigliato)
- Recensione by Roberto Fraboni sul sito beeweeb
Curiosità
- Durante la scrittura del libro sono stati usati circa 30 dispostivi, tra telefoni cellulari, palmari, moduli embedded e Sun SPOT;
- Per la redazione del testo, la preparazione delle immagini e degli esempi sono stati utilizzati due Mac, un PC Windows e uno Linux, un server Linux;
- La foto a pagina 76 mostra la chiesa di San Leonardo de Siete Fuentes, nell’omonima località in provincia di Oristano
Pingback: Intervista a Stefano Sanna | JavaStaff.com