E' noto che lo sviluppo di applicazioni per iPhone passa necessariamente per il suo
SDK, la conoscenza del linguaggio Objective C e soprattutto il possesso di un Mac, anche se esistono tool e tecniche utili allo sviluppo di applicazioni per iPhone su Windows.
Supponiamo di voler realizzare una
nostra applicazione, che acceda a una qualche risorsa remota, e che debba funzionare su una vasta gamma di dispositivi, tra cui quelli mobile; poniamo inoltre che la nostra applicazione non debba essere strettamente
CPU-intensive. In questo caso ci può venire in aiuto
GWT, che risponde un po' a tutti i nostri requisiti.
Tuttavia per renderlo idoneo al contesto di iPhone dobbiamo tenere presente che l'iPhone ha degli
eventi specifici — come il cambiamento di orientamento della schermata, il touch, i
transition end event — e specifiche funzionalità per effettuare la transazione da una pagina all'altra; inoltre i controlli integrati in
GWT si integrano meglio con tag HTML tipo
<div> e
<table>. Per cui dobbiamo prevedere di utilizzare altri tag piuttosto che
<ul> e
<li> nell'iPhone.
Vediamo come superare tutte queste difficoltà con
GWT: innanzitutto per implementare la gestione degli eventi dell'iPhone dovremo scrivere alcuni
metodi utilizzando
JSNI. In particolare il codice che segue si riferisce al cambiamento dell'orientamento della schermata.
private native void registerOrientationChangedHandler(
OrientationChangedDomEvent handler) /*-{ var callback = function(){ handler.@net.lenharts.gwt.sampleiphoneapp.client.model.Screen$OrientationChangedDomEvent::onOrientationChanged()();
}
$wnd.addEventListener("orientationchange", callback, false); }-*/;
private native void registerOrientationChangedHandler(
OrientationChangedDomEvent handler) /*-{ var callback = function(){ handler.@net.lenharts.gwt.sampleiphoneapp.client.model.Screen$OrientationChangedDomEvent::onOrientationChanged()();
}
$wnd.addEventListener("orientationchange", callback, false); }-*/;
Tale metodo intervenire a ogni cambiamento dell'orientamento dello schermo, richiamando il metodo
handler.@net.lenharts.gwt.sampleiphoneapp.client.model.Screen$OrientationChangedDomEvent::onOrientationChanged()(), ricorrendo alla notazione usata da
GWT per richiamare del codice JavaScript all'interno di codice Java.