GWT Architectures and Lessons
Learned
p.g.taboada | pgt technology scouting GmbH
Papick G. Taboada
pgt technology scouting GmbH!
http://pgt.de
Orientation in Objects GmbH!
http://oio.de
http://gwtreferencelist.appspot.com
‣ GWT Development
‣ Basics	

‣ Structuring the UI
Shift
happened
Java development, 	

JS deployment, 	

Async,	

RPC,	

RIA/ single page,	

...
Web 2.0 ?
development 

is all about…	

!

…js	

…html	

…css	

!

none of it	

!

…jcp	

…oracle	

… IBM	

… backend
what is a GWT
application?
a chunk of JS that does a lot of DOM
manipulation to create web
applications
UI component model

Components

Widget t = new TextBox();	

!

RootPanel.get().add(t);
Browser

Composite
+ testability!
+ maintainance!
+ product development

Architecture shift
Web applications

Model 2 web applications

Rich internet applications
!
eb t
w en
sic pm
as lo
cl ve
de

Server

Browser

user action
e

ons
html resp
full

user action
po
l html res
ful

nse

user action
po
l html res
ful

nse



eb ent
w
IA pm
R lo
ve
de

Server

Browser
first reques

t
e

l respons
full htm

event
event
event

data reque

st

data

event
data reque

data

st
Web frameworks
low level, generic tools
let‘s build big things
TextBox t0 = new TextBox();	

TextBox t1 = new TextBox();	

TextBox t2 = new TextBox();	

TextBox t3 = new TextBox();	

TextBox t4 = new TextBox();	

VerticalPanel...	

SplitPanel...	

ScrollPanel	

RootPanel.get().add(mainPanel);
maintainance hell
MacGyver
All he needed was a ballpoint 

pen and a paper clip
Ops
app-framework wizardry needed
‣ GWT Development	

‣ Basics
‣ Structuring the UI
DANGER 	

GWT DEVELOPMENT IS
COMPLICATED HOT NEW
STUFF.
NOT REALLY
GWT
development
is not new, 	

but different
WEB DEVELOPMENT 	

IS NOT NEW...
HTML 2.0
November 1995

HTML 4.0 update
April 1998
HTML 4.0.1
Dez 1999

CSS 1
Dez 1996

XHTML 1.0
Jan 2000

HTML 3.2
Januar 1997

J2SE 1.3
Mai 2000

HTML 4.0
Dezember 1997
JDK 1.0
Jan 1996

CSS 2.1
XHTML 1.1
Mai 2001

J2SE 1.2
Dez 1998
JDK 1.1
Feb 1997
CSS 2
Mai 1998

Java EE 1.2
Dez 1999

Internet Explorer 6
Aug 2001

Feb 2004 – Jun 2011

CSS level 2 revision 1, often referred to as "CS
errors in CSS 2, removes poorly supported or n
interoperable features and adds already-imple
browser extensions to the specification. In orde
with the W3C Process for standardizing techn
specifications, CSS 2.1 went back and forth be
Working Draft status and Candidate Recomm
status for many years.

THE
Jan 2000

Jan 2005
RICH CLIENT DEVELOPMENT 	

IS NOT NEW EITHER
nothing new here
Jan 2007

nothing new here too
YES! This is my code!
It’s all about

software 

engineering
Just a 

few tips
USE MVP!
You will get
used to it
event bus please
http://jarrettws.blogspot.de/2010/05/public-transport.html
eventbus.fireEvent(
NotificationEvent.info(
"Daten wurden erfolgreich gespeichert"
)
);
SINGLETON	

don‘t public static instance
BUT ON IE 6 IT IS SO SLOW!
BUT ON IE 7 IT IS SO SLOW!
BUT ON IE 8 IT IS SO SLOW!
BUT ON IE 9 IT IS SO SLOW!
DID ANYONE TEST ON IE / SURFACE?
browsers day to day job
too many HTTP requests
> 2400 DOM elements

WTF?
too many widgets
use large HTML chunks
too many widgets ain‘t good
<div />
a Widget is a JS thing holding a
DOM element
CREATE CUSTOM WIDGETS
CREATE CUSTOM EVENTS

don‘t extend SimplePanel
don‘t extend VerticalPanel
don‘t extend FlextTable
extend composite!!!
@-webkit-keyframes
{
from
{
box-shadow:
}
50%
{
box-shadow:
}
to
{
box-shadow:
}
}

redPulse

0px 0px 2px #ff0033;

0px 0px 10px #ff0033;

0px 0px 2px #ff0033;

if you can, do it in CSS
<g:LayoutPanel styleName="{B.style.mainContent}">
<g:layer left="0" right="340px" top="0" height="50%">
<g:SimpleLayoutPanel styleName="{B.style.mainWidget}" addS
<ux:DashboardTermineDataGrid ui:field="terminetable" sty
</g:SimpleLayoutPanel>
</g:layer>
<g:layer right="0" width="340px" top="0" height="50%">
<g:SimpleLayoutPanel styleName="{B.style.mainWidget}" addS
<ux:KWStatsDataGrid ui:field="statstable" styleName="{B.
</g:SimpleLayoutPanel>
</g:layer>
<g:layer right="0" left="0" bottom="0" height="50%">
<g:SimpleLayoutPanel styleName="{B.style.mainWidget}" addS
<ux:WartelisteDataGrid ui:field="wartelistetable" styleN
</g:SimpleLayoutPanel>
</g:layer>
</g:LayoutPanel>

use LayoutPanel
Ray Ryan - lessons learned
‣ GWT Development	

‣ Basics	

‣ Structuring the UI
some action

mainPanel.setWiget( aWidget
);

mainPanel.setWiget( bWidget
);

„View B“
„View A“

„just do it“ pattern
hard to maintain
history
management
from day one!	

!

back button and
refresh as a
feature (not a
catastrophe)
keep it stupid simple
• use PLACES

framework for main
level navigation	


• if you really need

to, nest activities
for a second level.
try not to.	


• use dialogs for user

input, showing data.
dialogs are easily
reused.
‣ he will be using photoshop
or dreamweaver	

‣ he will not use the
software	

‣ he will not build the
software	

‣ he will not maintain the
software

Once upon a time, a
good designer does
good a good looking
design...
GWT Architectures and Lessons Learned (WJAX 2013)
top menue bound to places framework
switching between places with fade in and out
teach user to wait until application is ready again
gives us enough time to load the required content
300ms out

500ms in
GWT Architectures and Lessons Learned (WJAX 2013)
Components
inside of
„activity“ fire
non public,
custom events
datepicker
sends WEEK
selected event
presenter may
goto itself, view
may be cached
#

ashtag?!?
STATELESS
VIEW	

!

URL contains
EVERYTHING
needed to
rebuild view

user hits 

reload

view is back
again

GWT apps
starts, activity
gets fired

presenter
loads data
from server
some actions don‘t require PLACE navigation at all
use POPUPS/ DIALOGS to stay ABOVE navigation
let POPUPS/
DIALOGS move
slowly into view
pin POPUPS to
one side of the
window
Search DIALOG
slides in from right
side, stays on TOP

Don‘t move your
user away from his
„PLACE“ unless
you have to.
Navigation should not hurt
• The application shown uses only 3
levels of navigation, DOES NOT
NEED MORE	


• PLACES used for bookmarkable
entry points/ back button
navigation consistency	


• Activities should be STATELESS, to
survive page reloads	


• Learn from OTHERS, lookout for
hashtags…
BEFORE YOU ADD THE LOGO
TO THE TOP

HOW MANY PIXELS DO
YOUR USERS HAVE?

the designer or
marketing guy
using photoshop is
probably sitting in
front of a 27“
apple cinema
display
Thanks!

More Related Content

PDF
Javaland 2014 / GWT architectures and lessons learned
PPTX
JHipster presentation by Gaetan Bloch
PPTX
Creating books app with react native
PDF
Android development War Stories
PPTX
Pain Driven Development by Alexandr Sugak
PDF
Full stack-web-design
PDF
The Hitchhiker's Guide to Building a Progressive Web App
PPTX
Real-Time Multi-Device Theming
Javaland 2014 / GWT architectures and lessons learned
JHipster presentation by Gaetan Bloch
Creating books app with react native
Android development War Stories
Pain Driven Development by Alexandr Sugak
Full stack-web-design
The Hitchhiker's Guide to Building a Progressive Web App
Real-Time Multi-Device Theming

What's hot (20)

PDF
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
PDF
Django Deployer
PDF
Power of React Native
PDF
Experiences building apps with React Native @DomCode 2016
PDF
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
PDF
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
PDF
CraftCamp for Students - Introduction to JHipster
PPTX
React Native
PPTX
Architecture & Workflow of Modern Web Apps
PDF
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
PDF
React native sharing
PDF
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
PDF
React native first impression
PDF
Going Native With React
PDF
What's This React Native Thing I Keep Hearing About?
PDF
From devOps to front end Ops, test first
PPTX
AngularJS to React
PDF
Use groovy & grails in your spring boot projects
PDF
LeapMotion for Web with React and Flux
PPTX
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Django Deployer
Power of React Native
Experiences building apps with React Native @DomCode 2016
카카오 공용준님의 "DevOps: on going pursuit of effectiveness"
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
CraftCamp for Students - Introduction to JHipster
React Native
Architecture & Workflow of Modern Web Apps
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
React native sharing
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
React native first impression
Going Native With React
What's This React Native Thing I Keep Hearing About?
From devOps to front end Ops, test first
AngularJS to React
Use groovy & grails in your spring boot projects
LeapMotion for Web with React and Flux
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...

Similar to GWT Architectures and Lessons Learned (WJAX 2013) (20)

PDF
Service worker API
KEY
Fake it 'til you make it
PDF
Usability in the GeoWeb
PDF
Desktop apps with node webkit
PPTX
Station Four: Web Redesign Presentation
PDF
Angular (v2 and up) - Morning to understand - Linagora
PDF
Mobile is slow - Over the Air 2013
PDF
PDF
Sam segal resume
PDF
Building a full-stack app with Golang and Google Cloud Platform in one week
PDF
Cross-platform Desktop application with AngularJS and build with Node-webkit
PPTX
Web summit.pptx
PDF
Hybrid mobile apps
PDF
Vn-info meetup on Node.js
PDF
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
PPT
Introduction to Google Web Toolkit
PPTX
From React to React Native - Things I wish I knew when I started
PPTX
We-Donut.io presentation of Platform
PPT
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
DOCX
SamSegalResume
Service worker API
Fake it 'til you make it
Usability in the GeoWeb
Desktop apps with node webkit
Station Four: Web Redesign Presentation
Angular (v2 and up) - Morning to understand - Linagora
Mobile is slow - Over the Air 2013
Sam segal resume
Building a full-stack app with Golang and Google Cloud Platform in one week
Cross-platform Desktop application with AngularJS and build with Node-webkit
Web summit.pptx
Hybrid mobile apps
Vn-info meetup on Node.js
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
Introduction to Google Web Toolkit
From React to React Native - Things I wish I knew when I started
We-Donut.io presentation of Platform
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SamSegalResume

More from pgt technology scouting GmbH (7)

PDF
GWT widget development
PDF
Client-Server-Kommunikation mit dem Command Pattern
PDF
GWT architecture best practices and lessons learned
KEY
GWT - building a better web
KEY
Modularization in java 8
KEY
Gwt, die bessere spinne
ZIP
Google Web Toolkit
GWT widget development
Client-Server-Kommunikation mit dem Command Pattern
GWT architecture best practices and lessons learned
GWT - building a better web
Modularization in java 8
Gwt, die bessere spinne
Google Web Toolkit

Recently uploaded (20)

PDF
Decision Optimization - From Theory to Practice
PDF
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
PPTX
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
PPT
Overviiew on Intellectual property right
PDF
Optimizing bioinformatics applications: a novel approach with human protein d...
PDF
【AI論文解説】高速・高品質な生成を実現するFlow Map Models(Part 1~3)
PDF
Applying Agentic AI in Enterprise Automation
PDF
Advancements in abstractive text summarization: a deep learning approach
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
PDF
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
PDF
Introduction to c language from lecture slides
PPTX
Information-Technology-in-Human-Society.pptx
PDF
ELLIE29.pdfWETWETAWTAWETAETAETERTRTERTER
PPTX
Information-Technology-in-Human-Society (2).pptx
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PDF
Domain-specific knowledge and context in large language models: challenges, c...
PPTX
Report in SIP_Distance_Learning_Technology_Impact.pptx
PDF
Slides World Game (s) Great Redesign Eco Economic Epochs.pdf
PDF
Peak of Data & AI Encore: Scalable Design & Infrastructure
Decision Optimization - From Theory to Practice
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
Overviiew on Intellectual property right
Optimizing bioinformatics applications: a novel approach with human protein d...
【AI論文解説】高速・高品質な生成を実現するFlow Map Models(Part 1~3)
Applying Agentic AI in Enterprise Automation
Advancements in abstractive text summarization: a deep learning approach
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
Introduction to c language from lecture slides
Information-Technology-in-Human-Society.pptx
ELLIE29.pdfWETWETAWTAWETAETAETERTRTERTER
Information-Technology-in-Human-Society (2).pptx
NewMind AI Journal Monthly Chronicles - August 2025
Domain-specific knowledge and context in large language models: challenges, c...
Report in SIP_Distance_Learning_Technology_Impact.pptx
Slides World Game (s) Great Redesign Eco Economic Epochs.pdf
Peak of Data & AI Encore: Scalable Design & Infrastructure

GWT Architectures and Lessons Learned (WJAX 2013)