1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia
2 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
3 Introduzione: evoluzione terminali mobili Aumentano le risorse Hardware Aumentano le risorse Hardware Motorola 8700 Anno 1998 GSM 900 Mhz LCD b/w Peso 200 gr Autonomia 60h SB Nokia 6630 Anno 2004 Quadband, edge LCD 65k colori CCD 1.3 MPix S.O. Symbian Autonomia 11g SB.....
4 Introduzione: evoluzione terminali mobili....cresce la programmabilità....cresce la programmabilità Aggiornamento Firmware Ambienti IDE per lo sviluppo e il test delle Applicazioni per terminali mobili
5 Introduzione: evoluzione terminali mobili Smartphone Smartphone Nel 2002 Nokia lancia il primo Smartphone Terminale con elevate caratteristiche tecniche a metà strada fra PDA e cellulare che rilancia la programmazione di terminali mobili
6 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
7 S.O. per cellulari Perchè si può parlare di S.O. Perchè si può parlare di S.O. Microkernel Microkernel Supportano multitasking e multithreading Supportano multitasking e multithreading Gerarchie di memoria Gerarchie di memoria Adottano vere CPU (soprattuto RISC) Adottano vere CPU (soprattuto RISC) Supporto per il multimedia e le comunicazioni Supporto per il multimedia e le comunicazioni
8 S.O. per cellulari Microsoft Windows CE Microsoft Windows CE Symbian OS Symbian OS Palm OS Palm OS Embedded Linux Embedded Linux
9 S.O. per cellulari Microsoft Windows CE Microsoft Windows CE CE è la versione di windows embedded CE è la versione di windows embedded PocketPC è una particolare versione di Win CE ottimizzata per PDA e Smartphone PocketPC è una particolare versione di Win CE ottimizzata per PDA e Smartphone PocketPC 2003 è WinCE 4.2 PocketPC 2003 è WinCE 4.2
10 S.O. per cellulari Symbian OS Symbian OS Sviluppato da consorsio Symbian (Nokia, Sony, Ericsson, Motorola, ecc..) Sviluppato da consorsio Symbian (Nokia, Sony, Ericsson, Motorola, ecc..) Creato per cellulari Creato per cellulari Multithreading & Cooperative Multitasking Multithreading & Cooperative Multitasking Attualmente versione 7.0 Attualmente versione 7.0
11 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
12 Programmazione di terminali mobili Massima compatibilità Potenza e flessibilità
13 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
14 Java MIDP - introduzione MIDP = Mobile Information Device Profile Java 2 Micro Edition (J2ME) e la versione leggera di Java 2 Standard Edition (J2SE) ottimizzata per terminali mobili Java 2 Micro Edition (J2ME) e la versione leggera di Java 2 Standard Edition (J2SE) ottimizzata per terminali mobili Con J2ME è possibile creare delle MIDlet, ossia applicazioni di ridotte dimensioni che sfruttano un runtime ottimizzato per terminali e vengono eseguite da una KVM Con J2ME è possibile creare delle MIDlet, ossia applicazioni di ridotte dimensioni che sfruttano un runtime ottimizzato per terminali e vengono eseguite da una KVM J2ME prevede due livelli J2ME prevede due livelli CDC (Connected Device Configuration) per dispositivi always on (es. PDA) CDC (Connected Device Configuration) per dispositivi always on (es. PDA) CLDC (Connected Limited Device Configuration) per dispositivi meno potenti, con poca banda e accesso discontinuo (es. Cellulari) CLDC (Connected Limited Device Configuration) per dispositivi meno potenti, con poca banda e accesso discontinuo (es. Cellulari) MIDP è una estenzione che permette di interfacciarsi direttamente con lhw del termiale MIDP è una estenzione che permette di interfacciarsi direttamente con lhw del termiale MIDP si presenta come un pacchetto di librerie (API) MIDP si presenta come un pacchetto di librerie (API)
15 Java MIDP – Strumenti di sviluppo J2ME toolkit contiene: J2ME toolkit contiene: Compilatore Compilatore Emulatore Emulatore Documentazione Documentazione Non viene fornito ne un IDE, ne un editor Non viene fornito ne un IDE, ne un editor La sintassi è ovviamente JAVA La sintassi è ovviamente JAVA La struttura delle applicazioni è molto semplice La struttura delle applicazioni è molto semplice Deve estendere la classe javax.microedition.midlet.MIDlet Deve estendere la classe javax.microedition.midlet.MIDlet Deve implementare i metodi startApp, pauseApp, destroyApp Deve implementare i metodi startApp, pauseApp, destroyApp Occorre far particolare attenzione alla progettazione delle interfacce Occorre far particolare attenzione alla progettazione delle interfacce Non èsistono le classi AWT/Swing Non èsistono le classi AWT/Swing Si utilizzano una serie di contenitori come Display, Displayable, Screen, Canvams Si utilizzano una serie di contenitori come Display, Displayable, Screen, Canvams
16 Java MIDP – esempio
17 Java MIDP – esempio Classi interessanti: Classi interessanti: javax.microedition.io.Connector javax.microedition.io.Connector javax.microedition.io.SocketConnection javax.microedition.io.SocketConnection javax.microedition.io.HttpConnection javax.microedition.io.HttpConnection
18 Java MIDP – vantaggi e svantaggi Vantaggi Vantaggi Facilità di utilizzo (Java-Style) Facilità di utilizzo (Java-Style) Multipiattaforma Multipiattaforma Dimensioni molto contenute Dimensioni molto contenute Svantaggi Svantaggi Laccesso a funzionalità di basso livello è legato alla disponibilità di API fornite dal produttore del terminale Laccesso a funzionalità di basso livello è legato alla disponibilità di API fornite dal produttore del terminale Assenza di IDE Assenza di IDE
19 Java MIDP – materiale Pagina di riferimento: Pagina di riferimento: Download di J2ME Download di J2ME Ottimo tutorial in italiano Ottimo tutorial in italiano Whitepaper su KVM Whitepaper su KVM Testo Testo ISBN: autori: Qusay H. Mahmoud editore: O'Reilly lingua: Italiano anno: 2002 pagine: 245
20 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
21 Smartphone 2003 SDK - introduzione SDK della famiglia embedded SDK della famiglia embedded Si integra allinterno di Visual Studio 2003 Si integra allinterno di Visual Studio 2003 Molta documentazione Molta documentazione Programmazione Window-Style Programmazione Window-Style.Net runtime.Net runtime
22 Smartphone 2003 SDK– Strumenti di sviluppo Smartphone 2003 SDK contiene: Smartphone 2003 SDK contiene: Emulatore Emulatore Documentazione Documentazione Utility per debugging remoto Utility per debugging remoto Supporta sintassi C#, VB.net Supporta sintassi C#, VB.net Per programmare in C++ esiste eVC++ Per programmare in C++ esiste eVC++ Tutte le funzionalità vengono esposte come API Tutte le funzionalità vengono esposte come API Per la maggior parte esiste un porting in.Net Per la maggior parte esiste un porting in.Net Alcune sono accessibili solo da C++ o con P/Invoke Alcune sono accessibili solo da C++ o con P/Invoke Il set dei controlli grafici è ridotto Il set dei controlli grafici è ridotto N.B.: Loopback connection N.B.: Loopback connection
23 Smartphone 2003 SDK – esempio
24 Smartphone 2003 SDK – esempio Namespace e Classi interessanti: Namespace e Classi interessanti: System.io.Socket System.io.Socket System.Web.Services System.Web.Services
25 Smartphone 2003 SDK – vantaggi e svantaggi Vantaggi Vantaggi Curva di apprendimento molto bassa Curva di apprendimento molto bassa Molte informazioni di supporto Molte informazioni di supporto Debugger evoluto (Visual Studio) Debugger evoluto (Visual Studio) Dimensioni contenute Dimensioni contenute Svantaggi Svantaggi Il terminale deve avere PocketPC 2003 Il terminale deve avere PocketPC 2003 Necessita di VisualStudio installato Necessita di VisualStudio installato
26 Smartphone 2003 SDK – materiale Pagina di riferimento: Pagina di riferimento: Download SDK Download SDK Tutorials ed esempi Tutorials ed esempi Book on line Book on line Testi Testi
27 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
28 Symbian - introduzione SDK realizzato dalla NOKIA SDK realizzato dalla NOKIA Esistono porting per altri brand Esistono porting per altri brand Possibilità di programmare in C++ o Java con diversi compilatori/IDE Possibilità di programmare in C++ o Java con diversi compilatori/IDE JAVA MIDP SDK JAVA MIDP SDK C++ SDK C++ SDK
29 Symbian – Strumenti di sviluppo Nokia Developers Suite contiene: Nokia Developers Suite contiene: Emulatore Emulatore Documentazione Documentazione IDE IDE Esisteono altri pacchetti per lo sviluppo java Esisteono altri pacchetti per lo sviluppo java S60 Java SDK S60 Java SDK Richiede IDE esterno Richiede IDE esterno Il set dei controlli grafici è ridotto Il set dei controlli grafici è ridotto Aggiunge funzionalità di basso livello (es SMS) Aggiunge funzionalità di basso livello (es SMS)
30 Symbian – esempio
31 Symbian – vantaggi e svantaggi Vantaggi Vantaggi Programmazione Java-style Programmazione Java-style Integrabile con diversi IDE/compilatori Integrabile con diversi IDE/compilatori Accesso a funzionalità di basso livello Accesso a funzionalità di basso livello Svantaggi Svantaggi Richiede terminale Symbian Richiede terminale Symbian Poca documentazione, a volte non ben organizzata Poca documentazione, a volte non ben organizzata
32 Symbian – materiale Pagina di riferimento: Pagina di riferimento: Tutorials ed esempi Tutorials ed esempi Testi Testi Programming the Java2 Micro Edition for Symbian OS Author: Martin de Jode ISBN Wireless Java for Symbian Devices Author: Jonathan Allin Published by: Symbian Press Published in: August pages
33 Argomenti Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Programmazione di t.m. Java MIDP Java MIDP Smartphone 2003 SDK Smartphone 2003 SDK Symbian Symbian Conclusioni Conclusioni
34 Conclusioni I terminali mobili (cellulari) rappresentano oggi uno strumento potente e programmabile utilizzando un vasto insieme di tools I terminali mobili (cellulari) rappresentano oggi uno strumento potente e programmabile utilizzando un vasto insieme di tools MIDP: strumento versatile e alla portata di tutti MIDP: strumento versatile e alla portata di tutti Smartphone SDK: potente, ricco di documentazione, semplice da apprendere Smartphone SDK: potente, ricco di documentazione, semplice da apprendere Symbian: potente, ottimizzato per terminali NOKIA, Sony-Ericsson Symbian: potente, ottimizzato per terminali NOKIA, Sony-Ericsson