Google Web Toolkit, Take 2
Dagens anden situation blev for mit (Søren) vedkommende denne her GWT session, fordi det efterhånden er noget tid siden jeg har arbejdet med GWT og så derfor denne her session som en god mulighed for at blive opdateret lidt.
Det skulle vise sig at være nok en af de bedste sessions, da jeg føler jeg fik meget ud af det plus at det var et insisterende velforberedt og underholdende oplæg. note : hvordan det lykkedes den ældre kineser ved siden af mig at sove gennem hele sessionen er mig en gåde .-)
Sessionen blev holdt af David Geary, som har lidt på samvittighed, skrevet bøger og client side java ui, server side java ui, været med til Apache Tiles, Struts og et par andre OSS projekter.
Med udgangspunkt i en applikation gennemgik har udvalgte dele af GWT 2.0, herunder også de helt initielle steps med at lave en web-app, som man kan deploye til en web container, hvorefter han med et eksmpel lige viste hvordan eksempel applikationen virker, masser af kode eksempler og rigtig fint.
Han viste også lige Quake II lavet i GWT, det var rimelig godt klaret.
Herefter gik han igennem nogle af de features der er i GWT 2.0
Hosted Mode
- Hosted mode understøtte nu apier for alle moderne browsere
Layout
- Layout paneler er i GWT 2.0 ren CSS ingen Javascript. Giver rigtig god performance også
Event Handling
- Event handlere er mere fine-grained end listeners, MouseClickHandler, MouseUnclickHandler istedet for bare MouseListener. De har alle kun en metode
- HandlerManager er en event bus. Man registrerer en type af event og en handler. På den måde kan man fire events fra alle mulige steder fra, så på den måde kan må få et renere skel mellem Model og Controller. Man skal altså ikke have eventhandleren registreret direkte på View objektet, istedet smider man en event ned i bussen når man f.eks. klikker.
History
- Hvad gør man med Back knappen ?. med GWT kan man hooke ind i back/forward, via History klassen. Man registrer en value change handler. Det virker en lille smule avanceret at anvende det, men jeg kan godt se at det er svært hvis man vil undgå back/forward. Han viste det i demo, jeg syntes der er lidt cost med at ens url’er blive virkelig grimme. Men man styrer som sagt hvad man gerne vil have i sin history.
Code Splitting
- Med GWT 2.0 kan man partitionere sin kode, så man kan specificere hvad for noget kode der først skal loades når man faktisk skal bruge den. Ret simpelt med at man bare wrapper i GWT.runAsync. Kan være ret smart hvis man har meget store apps, der jo så loader masser af kode inden det kan starte op.
Speed Tracer
- Tool hvor man kan måle hver eneste lille bitte event tager i sin UI. Temmelig detaljeret, og den virker jo på alle web apps. Det så faktisk ret fint ud. Speedtracer kan findes her.
Declarative UI’s
- UIBinder. Man kan beskrive sin UI i XML istedet for at skrive java, og så kan man så annotere dette UI element med @UiField og @UiHandler.
PLUS :
- Virkelig god taler, han er også underviser og har været til at udforme SCWCD ( Sun Certified Web Component Developer) og tydeligvis meget trænet i at holde sessions som denne her.
- Jeg lærte en del om GWT gennem eksemplerne, da det er noget tid siden jeg selv brugte det.
- Masser af humor og en smule Oracle, AWT og Struts bashing
. Sjov anekdote omkring hans fortid som smalltalk programmør og den gang Sun så ligepludselig sagde til ham han skulle skifte til Java og hans oplevelser med AWT.
MINUS :
- Jeg havde den sovende kineser ved siden af mig, som konstant lå på min skulder. Forholdsvis distraherende må man sige.