Sviluppare Applicazioni Mobile Native
in HTML e JavaScript
Fabio Franzini
Presentazioni
 Fabio Franzini
 Consulente, Programmatore e MCT Trainer su piattaforma
.NET
 www.fabiofranzini.com
 [email protected]
 @franzinifabio
START!!
Background
 Evoluzione del “Mobile Web”
 Albori: WAP, cHTML, mHTML
 Phone’s WEB Browser
 WAP: puah!!
WAP, cHTML, mHTML
Mobile Web Oggi
 Smart Phones
 Sistemi Operativi Mobile completi
 iPhone OS, Android, Simbian OS, Blackberry, Windows
Mobile, WebOS, Maemo, ecc..
 Cross-platform Web Browser (Webkit!!)
 3G, WiFi
Smart Phones
Sviluppare oggi per il Mobile Web
 Powerfull Web Browser
 Web 2.0
 Social
 Geo-localization
 Ecc..
Vantaggi
 HTML
 CSS
 JavaScript
 Deploy semplice
 Ecc..
Limitazioni
• Web Browser??
• Sandbox indipendente dal resto del OS
Soluzione
Native App!!!
Native App e App. Store
Ok, ma…
 iPhone: Objective-C
 Android, Blackberry: Java
 Nokia Symbian: C / JavaScript
 Sony Ericsson: Java
 Window Mobile: .NET / C++ / VB
…quindi!!
Native App VS Web App
Native App
Web App
Cross Platform?
No, mah…
Si
Accesso alle API del SO?
Si
No
Store di dati?
Si
Ni
Connessione dati richiesta?
No
Si
Velocita’ di esecuzione?
Ottima
Buona
Tecnologia di sviluppo?
Objective C, Java, C++,
ecc..
HTML, CSS, JavaScript
Update installabili?
Si
No
Ok, capito!! Ma allora?
Confusi??
Native App Cross-Platform
HTML, CSS, JavaScript, Images, ecc..
+
API native del telefono (Geo-localizzazione, Contatti,
Accelerometro, Fotocamera, Vibrazione, ecc ..)
=
Wrapper sul Web Browser con supporto alle API del
telefono.
Un esempio?
PhoneGap
Cos’è PhoneGap
PhoneGap è uno strumento di sviluppo opensource, realizzato
da Nitobi, utile per la costruzione veloce e facile di Applicazioni
Mobile con JavaScript
PhoneGap in dettaglio 1/2
 E’ un container con wrapper sul Web Browser del dispositivo
 Espone un insieme di API del dispositivo, astraendo le
medesime, e le rende disponibili tramite JavaScript
PhoneGap in dettaglio 2/2
 In base alla piattaforma con la quale dovrà interfacciarsi,
l’implementazione sarà di sviluppata in: Objective C, Java e
così via;
 L’implementazione è fornita dallo stesso framework, il
runtime si appoggia sul Web Browser e sulle estensioni per
quella piattaforma.
 Il risultato è un pacchetto composto di due elementi
principali:
 il runtime si occupa di dialogare direttamente con il dispositivo
 le parti statiche (HTML, JavaScript, ecc) offrono l’interfaccia
verso l’utente.
PhoneGap in dettaglio
Piattaforme supportate
 iPhone / iPad??
 Android
 Blackberry
 Palm ~
 Symbian ~
 Windows Mobile ~
iPhone???
 http://bit.ly/7wmgsv
 “The recent changes to Apple’s iPhone developer agreement,
this has ZERO impact on PhoneGap!”
 “Apps built with PhoneGap will continue to be reviewed
based on their own merits and NOT dismissed/rejected
because they use PhoneGap.”
Features
 Accelerometro
 Audio
 Camera
 Contacts
 File IO
 SMS
 Settings
Features Supportate
Esampio di API 1/3
• Platform
– document.getElementById("platform").innerHTML = device.platform;
• Alert
– navigator.notification.alert(“Mio Messaggio",“Attenzione", "Ok");
• Vibration
– navigator.notification.vibrate(1000);
• Media
– var media = Media.new("hammer_time.wav", win, fail);
– media.play();
– media.stop();
Esempio di API 2/3
• GetCurrentPosition
– function getLocation()
{
var win = function(p)
{
alert( p.coords.latitude + " " + p.coords.longitude );
};
var fail = function(){ //default query };
navigator.geolocation.getCurrentPosition(win, fail);
}
Esempio di API 3/3
• GetCurrentAcceleration
– function getAccel()
{
var win = function(a)
{
document.getElementById('x').innerHTML = a.x;
document.getElementById('y').innerHTML = a.y;
document.getElementById('z').innerHTML = a.z;
};
var fail = function(){};
navigator.accelerometer.getCurrentAcceleration(win, fail);
}
Framework di supporto?
 XUI
 jQuery
 jQuery UI
 jQTouch
 QuelloCheVolete.js
Alcuni numeri
 iPhone App = 364 kb
 Html, CSS, JavaScript, Media = 124 kb
 Stessa Web App + PhoneGap = 240 kb
Applicazioni già sviluppate
Applicazioni già sviluppate
http://phonegap.com/projects
Vantaggi di PhoneGap
 Sviluppo con semplice conoscenza di HTML, CSS, JavaScript
 Creazione di Applicazioni Native!!!
 Multi Piattaforma!!!!
 Applicazioni accettate dall’Apple AppStore!!!! ;-)
Svantaggi di PhoneGap
 Documentazione in costruzione
 Non realmente all’altezza per applicazioni con uso massivo di
grafica (almeno per adesso).
… è l’unico runtime? No, ma…
 PhoneGap
 Nokia WRT
 Appcelerator
Nokia S60
iPhone
Android
Blackberry
Windows Mobile
PhoneGap
Demo
Domande??
Tutto chiaro??
Ciao, alla prossima!! ;-)
Fabio Franzini
www.fabiofranzini.com
[email protected]
@franzinifabio
Scarica

Sviluppare Applicazioni Mobile Native in HTML e JavaScript