Ed ecco che oggi inizio a guardarmi GWT (
http://code.google.com/webtoolkit/).In pratica son una serie di librerie di Java che permettono di programmare in Java per poi produrre del codice Javascript al fine di creare applicazioni in AJAX.
Sostanzialmente ci si scorpora dall'obbligo di conoscere a menadito Javascript, ma soprattutto, di evitare di addentrarsi nei problemi di compatibilità dei broweser... fa tutto l'interprete di GWT.
Leggendo la documentazione sul sito di google code, scopro che l'IDE da preferirsi per lo sviluppo di applicazioni con GWT è l'open source
Eclipse. Infatti uno degli eseguibili di GWT può, volendo, creare dei file per usare al meglio questo IDE.
Installare GWT è semplice... poche istruzioni da seguire.
Per iniziare i progetti con eclipse basta dare dei parametri in più all'eseguibile "crea progetto" di gwt.
Creo la mia cartella di progetto, che chiamamo "GWT_Esempio", dal promt dei comandi (CMD) entro in questa cartella
eseguo poi il creatore di progetto passandogli come parametri il fatto che voglio creare un progetto eclipse che si chiama GWT_Esempio (come la cartella che ho creato) con questa riga di codice:
c:\Programmi\gwt-windows-1.4.61\projectCreator -eclipse GWT_Esempio
per poi fare uan cosa simile con il creatore di applicazioni
c:\Programmi\gwt-windows-1.4.61\applicationCreator -eclipse GWT_Esempio GWT_Moonwalk.client.GWT_Esempio
Così facendo creo i file principali che serviranno per compilare con GWT ed eseguire l'applicazione in maniera HOSTED MODE
Ma ancora meglio così si crea la situazione ideale per programmare in eclipse... posso semplicemente accedere in eclipse, cliccare file, import, import existing project, seleziono la cartella ed ecco il progetto importato... con tutto pronto per eseguire il tutto direttamente in eclipse, con la possibilità di fare il debugging
Prima disperazione:
Sembrano non esistere tutorial ufficiali di gwt... il sito di google code ha un sacco di materiale su gwt, ma pare più che altro adatto a chi conosce bene Java... e non chi l'ha iniziata a studiare meno di un mese fa
Cerco in rete dei tutorial... ne trovo alcuni per il classico "Hello World" che non mi insegnano molto, dato che sono quasi identici a Java puro... ma almeno prendo un minimo di pratica con Eclipse
Trovo un tutorial
Working with GWT, decente, inizio a capire qualcosa... ma non è spiegato molto bene e vado subito in confusione
Ne trovo un altro, sul sito della ibm:
Build an Ajax application using Google Web Toolkit, Apache Derby, and Eclipse sembra promettere bene
Mi installo quindi Derby, che se non erro è un database sviluppato e pensato per Java
Perdo tutta la mattinata e il primo pomeriggio ad installarlo... ho un conflitto con due versioni di java presenti sul portatile che ho in dotazione, un maledetteo
java.lang.UnsupportedClassVersionError
In pratica, navigando in rete, scopro che è un conflitto tra due versioni di java che ho sul pc... ho meglio... io ne uso normalmente una (qualcosa come 1.6.x), questo derby richiede una 1.4.x ma sul pc, da qualche parte, ho una 1.3.x che continua a prendere il sopravvento
impazzisco... cerco le variabili di sistema, sembra tutto ok... mamma mia aiuto cosa è
disinstallo java, reinstallo... ma nulla
dopo un po' scopro che sul pc è stato installato (prima che io lo toccassi) Oracle... e oracle ha un jdk 1.3.x
impazzendo un po' trovo la variabile di sistema installata da oracle. Ed ecco lì la stronza... c'era un "Path" settato da lui... e quindi il mio pc cercava prima lì dentro il java.exe
metto prima di questa variabile un altra path specificando la nuova directory di isntallazione
riavvio e....
funziona
derby installato... ma... alla fine mi accorgo che il tutorial non fa per me
(l'intero tutorial, che riprenderò in seguito, si trova:
parte 1 |
parte 2 |
parte 3 )
Nel pomeriggio trovo un tutorial con qualche esempio un minimo complesso... e qui inizio a capire come funziona davvero GWT:
KickStartin GWT on clint sideCi sono 3 demo, con un minimo di complessità
riesco a vedere le prime due...a modificarle un po', a capire come funzionano i Panel e I widgets (tutto funziona in pannelli a quanto pare, simili a quelli di Swing, ma ovviamente con nomi e proprietà diversi)