SlideShare a Scribd company logo
1 of 28
Cool web apps with GWT
uberto barbini
uberto@ubiland.net
twitter: @ramtop
RIA (flash) is dead, long live to RIA (js)
aka Client/Server is back!
A CMS that doesn't suck
BP numbers:
4-5 people team
agile (scrum and kanban)
gwt, hibernate, smartgwt
started jan 2009
version 1.0 june 2009, now 3.2
total classes: 1176
total methods: 6565
total executable lines: 27459
A web2.0 like application
with a lot of logic
www.netnumero.com
NetNumero numbers:
5 people on weekends and nights
1 year with many pauses
Test coverage:
Total classes 94.1% (272/ 289)
Total methods 73.7% (1004/ 1363)
Total lines 79.1% (5125/ 6481)
What's GWT anyway?
good gwt tutorials:
http://developerlife.com/tutorials/?p=80
http://code.google.com/webtoolkit/doc/latest/tutorial/
http://code.google.com/webtoolkit/articles/testing_methodologies_using_gwt.html
books:
Essential GWT: Building for the Web with Google Web Toolkit 2 (Developer's Library) - Federico Kereki
Programming Google App Engine - D Sanderson
Growing Object-Oriented Software, Guided by Tests - Steve Freeman, Nat Pryce
gwt vs plain html
gwt vs traditional ajax
(i.e. jsp + jquery)
Gwt is CS with elegance
(show discuss code)
tag ServiceImplExample
Gwt UI/UX issues
Solution
Design metaphor
our metaphor: restaurant
(go to the table -login)
(menu -list of url)
(waiter- event dispatcher)
(waiter notebook- request)
(table num- sessionId)
(kitchen- server side)
(food- response)
client cache, code split and event drive
Architecture and design
(show discuss example code)
tag AsyncTestFailure
Presenter
View
Entities
Data services
Command pattern
AuthAuth and security
How to continue

More Related Content

Viewers also liked

Historia De La Web
Historia De La WebHistoria De La Web
Historia De La Web
Andrés
 
ISFragkopoulos - Seminar on Electrochemical Promotion
ISFragkopoulos - Seminar on Electrochemical PromotionISFragkopoulos - Seminar on Electrochemical Promotion
ISFragkopoulos - Seminar on Electrochemical Promotion
Ioannis S. Fragkopoulos
 
Sap Virtualization Week 2009
Sap Virtualization Week 2009Sap Virtualization Week 2009
Sap Virtualization Week 2009
Sherry Yu
 
E Tapestry Webinar 2010
E Tapestry Webinar 2010E Tapestry Webinar 2010
E Tapestry Webinar 2010
raisor
 
enviroCar at INTERGEO 2013
enviroCar at INTERGEO 2013enviroCar at INTERGEO 2013
enviroCar at INTERGEO 2013
Arne Bröring
 
ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.
Arne Bröring
 
D efinicion de texto. unidad 2.
D efinicion de  texto. unidad 2.D efinicion de  texto. unidad 2.
D efinicion de texto. unidad 2.
cesarkgua
 
The future of work is play igic 2011
The future of work is play   igic 2011The future of work is play   igic 2011
The future of work is play igic 2011
unlimited insights
 

Viewers also liked (19)

Historia De La Web
Historia De La WebHistoria De La Web
Historia De La Web
 
Solvency II Pillar 1 update May 2012
Solvency II Pillar 1 update May 2012Solvency II Pillar 1 update May 2012
Solvency II Pillar 1 update May 2012
 
第一頁
第一頁第一頁
第一頁
 
ISFragkopoulos - Seminar on Electrochemical Promotion
ISFragkopoulos - Seminar on Electrochemical PromotionISFragkopoulos - Seminar on Electrochemical Promotion
ISFragkopoulos - Seminar on Electrochemical Promotion
 
What is new in Helios
What is new in HeliosWhat is new in Helios
What is new in Helios
 
Location Intelligence bei Swisscom - DW2014
Location Intelligence bei Swisscom - DW2014Location Intelligence bei Swisscom - DW2014
Location Intelligence bei Swisscom - DW2014
 
Sap Virtualization Week 2009
Sap Virtualization Week 2009Sap Virtualization Week 2009
Sap Virtualization Week 2009
 
A Citizen Science Sensor Platform as a Live Link from GIS to the Internet ...
A Citizen Science Sensor Platform as a Live Link from GIS to the Internet ...A Citizen Science Sensor Platform as a Live Link from GIS to the Internet ...
A Citizen Science Sensor Platform as a Live Link from GIS to the Internet ...
 
SenseBox
SenseBoxSenseBox
SenseBox
 
Small Business E Marketing
Small Business E MarketingSmall Business E Marketing
Small Business E Marketing
 
enviroCar Introduction
enviroCar IntroductionenviroCar Introduction
enviroCar Introduction
 
E Tapestry Webinar 2010
E Tapestry Webinar 2010E Tapestry Webinar 2010
E Tapestry Webinar 2010
 
enviroCar Flyer
enviroCar FlyerenviroCar Flyer
enviroCar Flyer
 
More Nouns
More NounsMore Nouns
More Nouns
 
enviroCar at INTERGEO 2013
enviroCar at INTERGEO 2013enviroCar at INTERGEO 2013
enviroCar at INTERGEO 2013
 
ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.
 
Barroc 2 C
Barroc 2 CBarroc 2 C
Barroc 2 C
 
D efinicion de texto. unidad 2.
D efinicion de  texto. unidad 2.D efinicion de  texto. unidad 2.
D efinicion de texto. unidad 2.
 
The future of work is play igic 2011
The future of work is play   igic 2011The future of work is play   igic 2011
The future of work is play igic 2011
 

Similar to Writing cool web 2.0 apps with GWT and UI Bindings

SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
Hadoop 2 @ Twitter, Elephant Scale
Hadoop 2 @ Twitter, Elephant ScaleHadoop 2 @ Twitter, Elephant Scale
Hadoop 2 @ Twitter, Elephant Scale
DataWorks Summit
 
Hadoop 2 @Twitter, Elephant Scale. Presented at
Hadoop 2 @Twitter, Elephant Scale. Presented at Hadoop 2 @Twitter, Elephant Scale. Presented at
Hadoop 2 @Twitter, Elephant Scale. Presented at
lohitvijayarenu
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
Oleg Podsechin
 

Similar to Writing cool web 2.0 apps with GWT and UI Bindings (20)

Hands on gwt
Hands on gwtHands on gwt
Hands on gwt
 
PRG/215 ENTIRE CLASS UOP TUTORIALS
PRG/215 ENTIRE CLASS UOP TUTORIALSPRG/215 ENTIRE CLASS UOP TUTORIALS
PRG/215 ENTIRE CLASS UOP TUTORIALS
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
First steps with GWT @ Google IO Extended - Pordenone
First steps with GWT @ Google IO Extended - PordenoneFirst steps with GWT @ Google IO Extended - Pordenone
First steps with GWT @ Google IO Extended - Pordenone
 
Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2Javascript as a target language - GWT kickoff - part1/2
Javascript as a target language - GWT kickoff - part1/2
 
Present and Future of GWT from a developer perspective
Present and Future of GWT from a developer perspectivePresent and Future of GWT from a developer perspective
Present and Future of GWT from a developer perspective
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grails
 
GWTcon 2015 - Beyond GWT 3.0 Panic
GWTcon 2015 - Beyond GWT 3.0 PanicGWTcon 2015 - Beyond GWT 3.0 Panic
GWTcon 2015 - Beyond GWT 3.0 Panic
 
Lightweight APIs in mRuby (Михаил Бортник)
Lightweight APIs in mRuby (Михаил Бортник)Lightweight APIs in mRuby (Михаил Бортник)
Lightweight APIs in mRuby (Михаил Бортник)
 
Hadoop 2 @ Twitter, Elephant Scale
Hadoop 2 @ Twitter, Elephant ScaleHadoop 2 @ Twitter, Elephant Scale
Hadoop 2 @ Twitter, Elephant Scale
 
Hadoop 2 @Twitter, Elephant Scale. Presented at
Hadoop 2 @Twitter, Elephant Scale. Presented at Hadoop 2 @Twitter, Elephant Scale. Presented at
Hadoop 2 @Twitter, Elephant Scale. Presented at
 
Distributed Tracing
Distributed TracingDistributed Tracing
Distributed Tracing
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
 
GeoMapFish User-Group - March 2021
GeoMapFish User-Group - March 2021GeoMapFish User-Group - March 2021
GeoMapFish User-Group - March 2021
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101
 
GWT Reloaded
GWT ReloadedGWT Reloaded
GWT Reloaded
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
 
JS digest. January 2018
JS digest. January 2018 JS digest. January 2018
JS digest. January 2018
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
 
PRG/211 ENTIRE CLASS UOP TUTORIALS
PRG/211 ENTIRE CLASS UOP TUTORIALSPRG/211 ENTIRE CLASS UOP TUTORIALS
PRG/211 ENTIRE CLASS UOP TUTORIALS
 

More from Francesca1980

PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScriptPhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
Francesca1980
 

More from Francesca1980 (10)

Map meshup
Map meshupMap meshup
Map meshup
 
Advanced JQuery
 Advanced JQuery Advanced JQuery
Advanced JQuery
 
Java scriptpatterns
Java scriptpatternsJava scriptpatterns
Java scriptpatterns
 
Java scriptpatterns
Java scriptpatternsJava scriptpatterns
Java scriptpatterns
 
Event driven javascript
Event driven javascriptEvent driven javascript
Event driven javascript
 
Event driven javascript
Event driven javascriptEvent driven javascript
Event driven javascript
 
Simple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingSimple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computing
 
Loosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain modelLoosely Coupled Complexity - Unleash the power of your domain model
Loosely Coupled Complexity - Unleash the power of your domain model
 
PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScriptPhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
PhoneGap ovvero lo Sviluppo Mobile Nativo con HTML, CSS e JavaScript
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai framework
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Writing cool web 2.0 apps with GWT and UI Bindings

Editor's Notes

  1. In the crowded world of web technologies is often hard to decide which one suits better our needs. We think we have found a very good solution to do cool web sites with complex logic that requires javascript. Gwt is a very good product, but till recently it was a problem to use it on clean web2.0-like sites. We think that it's possible to do it in a simple way but it's still not widely know. Using with UiBindings and TDD. We did 2 applications: a CMS and a Google Appengine one. I'll talk about our experience, what we learned, and we'll share the complete code for an example application.
  2. Blueprint experience Some raw data:
  3. www.netnumero.com http://netnumero.appspot.com/company/mycompany#dashboard
  4. Gwt + easier to debug no new language to learn easy to unit test client logic Gwt - steeper learning curve basic gwt is "ugly" big js app to download (once)