Sie sind auf Seite 1von 37

Corso Java ME

Sviluppo di applicazioni per telefoni


cellulari e computer palmari

http://www.gerdavax.it/corsojavame

Stefano Sanna
Versione 1.0.0 gerdavax@gerdavax.it
31 Maggio 2006

1
Corso Java ME – http://www.gerdavax.it/corsojavame
Licenza
Copyright e marchi citati

2
Corso Java ME – http://www.gerdavax.it/corsojavame
Licenza
● Il materiale prodotto per questo corso (slide,
codice sorgente, immagini originali) è stato
rilasciata sotto la licenza
Creative Commons
Attribuzione-NonCommerciale-StessaLicenza2.5

● Per leggere una copia della licenza visita il sito


web:
– http://creativecommons.org/licenses/publicdomain/

o spedite una lettera a Creative Commons, 559


Nathan Abbott Way, Stanford, California 94305,
USA

3
Corso Java ME – http://www.gerdavax.it/corsojavame
Licenza... in pratica :-)
● E' consentito:
– utilizzare le slide per autoistruzione
– utilizzare le slide per corsi all'interno di scuole
pubbliche o università
– stampare le slide per uso personale
– ridistribuire copia delle slide senza modifiche
● Non è consentito:
– utilizzare le slide per tenere un corso a pagamento
– utilizzare le slide per un qualsiasi scopo
nascondendo le informazioni sull'autore
– modificare il contenuto delle slide

4
Corso Java ME – http://www.gerdavax.it/corsojavame
Limitazione di responsabilità

Malgrado l'impegno e la buona volontà a fornire


contenuti tecnicamente corretti, è possibile che ci
siano errori. Per questo motivo e data la gratuità
della licenza, il materiale è fornito “COSI' COM'E'”,
“AS IS”, e non si fornisce alcuna garanzia sulle
informazioni contenute in questa presentazione né ci
si assume alcuna responsabilità da eventuali danni
causati dall'uso proprio o improprio delle suddette.

5
Corso Java ME – http://www.gerdavax.it/corsojavame
Marchi citati
● I marchi dei prodotti citati in questa presentazione
sono di proprietà dei rispettivi titolari
● Java e tutti i marchi e simboli ad esso correlati
sono di proprietà di Sun Microsystems

● L'autore non ha alcun legame con Sun


Microsystems e con i produttori dei dispositivi e
dei software citati in questa presentazione. Le
considerazioni esposte hanno carattere di
disquisizione tecnica e non esprimono giudizi
positivi o negativi su nessun prodotto

6
Corso Java ME – http://www.gerdavax.it/corsojavame
Mobile
Computing
... non chiamateli computer portatili!

7
Corso Java ME – http://www.gerdavax.it/corsojavame
Sistemi operativi per dispositivi mobili
● Il mercato mobile offre una buona varietà di
sistemi operativi, ciascuno leader in un'area di
mercato:
– Sistemi proprietari (Nokia OS, Motorola...)
– Symbian OS
– Microsoft Windows Mobile
– Palm OS
– Linux
– Savaje OS

8
Corso Java ME – http://www.gerdavax.it/corsojavame
Symbian OS
● E' la soluzione software più potente per la
telefonia cellulare: attraverso la ricca libreria
C++ è possibile utilizzare tutte le funzioni del
dispositivo e, nelle versioni più recenti, accedere
alle funzioni del kernel
● Le nuove versioni includono funzionalità VoIP,
gestione DRM, connettività estesa (TUTTO!),
multimedia avanzato...
● 11.6 milioni di dispositivi Symbian venduti nel
primo trimestre 2006...
● E' interessante notare che i migliori
terminali Java ME sono quelli
equipaggiati con Symbian... :-)

9
Corso Java ME – http://www.gerdavax.it/corsojavame
Symbian OS

Fonte: Symbian

10
Corso Java ME – http://www.gerdavax.it/corsojavame
Microsoft Windows Mobile
● E' il sistema operativo leader per PDA, navigatori
satellitari portatili e automotive (Windows CE)
● La versione 5.0 ha introdotto
sensibili migliorie in termini
di prestazioni, robustezza,
gestione dei dati, coerenza
della interfaccia utente e
connettività wireless

● Prevede due ambienti di programmazione


principali:
– Win32 (C++) come piattaforma nativa
– .NET Compact Framework (managed platform)
11
Corso Java ME – http://www.gerdavax.it/corsojavame
Novità di Windows Mobile 5.0
● Windows Mobile 5.0 introduce importanti novità
per lo sviluppo su piattaforma nativa e managed:
– Win32: Direct3D Mobile, DirectDraw, DirectShow,
GPS, identificazione device, DRM, interazione PC
– Managed: Telephony, Outlook Mobile,
Messaging, Configuration Manager
● Entrambi gli ambienti hanno ora supporto per:
– interazione con la barra di stato e notifica, supporto
multimedia e camera, integrazione con Pocket
Outlook e gestione email
● I dati utente sono su memoria flash: leggero
degrado di prestazioni su accesso memoria ma
totale persistenza dei dati. Finalmente!
12
Corso Java ME – http://www.gerdavax.it/corsojavame
Palm OS
● Sistema operativo leader negli Anni '90, ha
conosciuto un progressivo declino a causa di una
scarsa propersione all'evoluzione: sono usciti
nuovi dispositivi ma il sistema è rimasto... vecchio
● Si attende da anni la versione Cobalt 6.1, le cui
caratteristiche annunciate, però, sono meno
avanzate di prodotti già presenti sul mercato
● PalmSource è stata acquisita da
ACCESS che ha manifestato la
volontà di incentivare il progetto
di integrazione della piattaforma
PalmOS su Linux
● Da valutare con prudenza...

13
Corso Java ME – http://www.gerdavax.it/corsojavame
Linux
● Linux ha recentemente attirato l'attenzione del
mercato mobile, grazie alle iniziative di Nokia,
Motorola e Access (nuova proprietaria di
PalmSource)
● Essendo un ambiente opensource e supportato da
una comunità vastissima, ha grandissime
potenzialità
● Il limite più grande, oggi, è che il
mercato di riferimento per il mobile
non è quello hacker/geek ma
squisitamente consumer...

Sharp Zaurus

14
Corso Java ME – http://www.gerdavax.it/corsojavame
Maemo
● Commercializzata come “InternetTablet 2005”, è
la piattaforma lanciata da Nokia per il “mobile
Internet browsing”: attraverso una nuova classe di
dispositivi con cui l'utente può estendere il proprio
terminale telefonico con funzionalita' di browser,
email, media player
● E' interamente basata su Linux
e software open source: Debian,
GTK+ (esteso), Bluez...
● Nokia supporta la community di
sviluppatori:
– http://www.maemo.org

15
Corso Java ME – http://www.gerdavax.it/corsojavame
Internet Tablet: il compendio del cellulare
● Nokia ha annunciato nella primavera del 2005
l'Internet Tablet “Nokia 770”, un dispositivo
handheld dotato di caratteristiche interessanti:
– equipaggiato con la piattaforma Maemo
– CPU Texas Instruments OMAP 1710 220MHz
– 128MB + RS-MMC 64MB
– display 800x480
– connettività WiFi b/g
– Bluetooth

16
Corso Java ME – http://www.gerdavax.it/corsojavame
Motorola A1200: il Linux-phone!
● Motorola ha già da tempo PDA-phone basati su
Linux (A780, E680/E680i...)
● L'A1200 introduce una importante
notivà: parti del codice saranno
distribuite con licenza open source
e questo non potrà che facilitare la
diffusione delle applicazione e il
forte contributo della community
● Maggiori dettagli su:
– http://developer.motorola.com
Fonte: Motorola
– https://opensource.motorola.com

17
Corso Java ME – http://www.gerdavax.it/corsojavame
Savaje
● Sistema operativo scritto quasi totalmente in Java
● E' un notevole passo in avanti per la piattaforma
Java ME: per la prima volta arriva Swing su
cellulare (con una opportuna versione custom
specificata dall'Advanced Graphics and User
Interface Optional Package, JSR 209)!!!
Fonte: Savaje
● La Developer Edition è
stata venduta in
anteprima alla JavaOne
2006 .
● Info:
– http://www.savaje.com

18
Corso Java ME – http://www.gerdavax.it/corsojavame
Ambienti di sviluppo
● C++ per codice nativo
● Java ME
● C# e .NET Compact Framework
● Python
● Flash Lite
● Mobile AJAX (Opera Platform)

19
Corso Java ME – http://www.gerdavax.it/corsojavame
C++ per codice nativo
● Sviluppare in C++ garantisce:
– massime prestazioni
– massima libertà di accesso alle funzioni del sistema
operativo e dell'hardware
– allineamento con le ultime novità del mercato

● Non solo vantaggi:


– la curva di apprendimento è ripida e faticosa
– la portabilità del codice è molto limitata
– la comunità degli sviluppatori è meno numerosa

20
Corso Java ME – http://www.gerdavax.it/corsojavame
Java ME
● E' la tecnologia leader per lo sviluppo di
applicazioni per la telefonia cellulare
● Supportata dalla stragrande maggioranza di
produttori, può vantare milioni di sviluppatori e
migliaia di progetti, librerie, tutorial, forum etc
etc...
● La architettura multipiattaforma di Java permette
di eseguire le applicazione su una molteplicità di
dispositivi diversi per caratteristiche
● E' in forte crescita: cresce il numero di API
opzionali che coprono settori applicativi strategici
e si accelera il processo di adozione da parte dei
produttori di dispositivi

21
Corso Java ME – http://www.gerdavax.it/corsojavame
Java ME vs C++ su Symbian: ha senso?
● Java ME ha una forte vocazione multipiattaforma
ma...
● ... i migliori dispositivi (in termini di prestazioni,
completezza delle API, diffusione sul mercato)
sono quelli basati su Symbian (Series 60)...
● Praticamente i due ambienti di programmazione,
nella piattaforma leader, convivono:
– si possono confrontare?
– sono realmente concorrenti?

● Nokia offre una interessante chiave di lettura...

22
Corso Java ME – http://www.gerdavax.it/corsojavame
Java ME & C++ su Symbian

23
Corso Java ME – http://www.gerdavax.it/corsojavame
Java ME & C++ su Symbian

24
Corso Java ME – http://www.gerdavax.it/corsojavame
Java ME & C++ su Symbian

25
Corso Java ME – http://www.gerdavax.it/corsojavame
C# e .NET Compact Framework
● E' il .NET Framework ottimizzato per dispositivi
mobili equipaggiati con Windows Mobile
● La versione 1.0 era poco interessante: la 2.0
arricchisce l'API con supporto Bluetooth, GUI
completa, integrazione con componenti quali
Pocket Internet Explorer, Pocket Outlook
● Info:
– http://msdn.microsoft.com/netframework/program
ming/netcf/default.aspx
● Il progetto MONO (http://www.mono-project.com)
ha come obiettivo lo sviluppo di una versione
open source del .NET Framework: esiste un
porting per Maemo
26
Corso Java ME – http://www.gerdavax.it/corsojavame
Python
● Python è un ottimo linguaggio di
scripting dotato di una eccezionale
duttilità e di una ricca libreria
● In ambito ambito mobile è particolarmente
apprezzato per la estrema velocità di codifica,
che permette di realizzare in breve tempo
prototipi completi
● Sono attualmente disponibili porting per Maemo,
Windows Mobile e Nokia Series 60
● Info:
– http://www.python.org
– http://opensource.nokia.com

27
Corso Java ME – http://www.gerdavax.it/corsojavame
Python Bluetooth Console

28
Corso Java ME – http://www.gerdavax.it/corsojavame
Flash Lite
● E' un adattamento della piattaforma Flash per il
mondo dei dispositivi mobili
● Tra le funzionalità:
– supporto allo standard Flash 7
– persistenza, XML dinamico
Fonte:
– grafica vettoriale, multimedia avanzato Mobile Innovation

– gestione testi e rendering


● Disponibile su 140 terminali (venditi 77 milioni!)
● Supportata da Nokia, Sony-Ericsson, Motorola...
● Info:
– http://www.adobe.com/mobile/
– http://www.flashmobilegroup.org/
29
Corso Java ME – http://www.gerdavax.it/corsojavame
Flash Lite

Fonte: Macromedia

30
Corso Java ME – http://www.gerdavax.it/corsojavame
Mobile AJAX
● AJAX (Asynchronous JavaScript And XML) è... una
tecnologia del 1998 valorizzata di recente grazie
ad applicazioni quali Google Mail e Google Maps
● Grazie al supporto del browser HTML, dei CSS e di
JavaScript, permette di sviluppare applicazioni di
grande impatto e fortemente interattive
● Opera Platform porta questi
concetti su Series 60, con
accesso alle funzionalità
del dispositivo quali
rubrica, messaging...
● Info:
– http://www.opera.com/products/mobile/platform/
31
Corso Java ME – http://www.gerdavax.it/corsojavame
Mobile Applications: un altro mondo!
● La scelta del sistema operativo e dell'ambiente di
programmazione è solo il primo passo...
● E' un ambito applicativo relativamente giovane (6
anni circa): siamo ancora in DOS! :-)

● Lavorare in ambito mobile richiede:


– buona conoscenza di dispositivi, reti, protocolli
– intuizione sulle aspettative degli utenti (non sono
tecnici!)
– un po' di fantasia ma anche molta concretezza
– buone idee (!)

32
Corso Java ME – http://www.gerdavax.it/corsojavame
Dove vive l'applicazione mobile...
● Una mobile application “vive” in ambiente
piuttosto particolare:
– si rivolge ad una utenza non esperta
– è eseguita in un oggetto “nato per fare altro”
(telefonate ed SMS)
– ha a disposizione
● prestazioni ridotte
● memoria limitata
● display e input... ridicoli (!)
● alimentazione precaria
● un sistema potenzialmente mai riavviato
● connettività intermittente
● Ma il vero problema sono gli utenti! ;-)
33
Corso Java ME – http://www.gerdavax.it/corsojavame
Mobile Computing
● Una applicazione mobile:
– memorizza le informazioni in modo rapido e sicuro
– aggiorna l'utente con le informazioni disponibili in
rete
– comunica ma è in grado di funzionare in maniera
intelligente anche in caso di assenza di rete
(“impossibile accedere al server: riprovare più
tardi” non è una risposta particolarmente
intelligente!)
– tiene conto della posizione corrente
– tiene conto del contesto di utilizzo
– si integra con le altre applicazioni sul dispositivo

34
Corso Java ME – http://www.gerdavax.it/corsojavame
Corso Java ME
● I contenuti di questo corso:
– Introduzione a Java ME: configurazioni e profili
– CLDC 1.1 e MIDP 2.0
– Interfacce grafiche
– Networking
– Persistenza
– MIDP su PDA
– Wireless Messaging API

● Ambienti di riferimento: Java Wireless Toolkit,


Netbeans + Mobility Pack, Nokia Carbide.j

35
Corso Java ME – http://www.gerdavax.it/corsojavame
ROADMAP del Corso Java ME
● Il “Corso Java ME” sarà arricchito secondo questa
tempistica:
– Settembre 2006:
● PIM (JSR 75)
– Ottobre 2006:
● Bluetooth (JSR 82)
– Dicembre 2006:
● Mobile Media API (JSR 135)

● Entro il 2006 sarà inclusa una sezione dedicata a


CDC e Personal Profile

36
Corso Java ME – http://www.gerdavax.it/corsojavame
Corso Java ME
http://www.gerdavax.it/corsojavame

37
Corso Java ME – http://www.gerdavax.it/corsojavame

Das könnte Ihnen auch gefallen