SlideShare a Scribd company logo
7

Vaadin
introduction to

@joonaslehtinen
Founder & CEO
Intro to
Vaadin
“Hello world”)
new Label(
New in

7
Getting
started

QA
Vaadin intro at GWT.create conference
User interface
framework for rich
web applications
Sounds like GWT?
Kinda…
Building blocks
Developer
Productivity

Rich
UX
Vaadin intro at GWT.create conference
java

html
123
Key Ideas
1

Rich
Components
User Interface
Data Source
Theme
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
s

3

3.5 Browsers to support in 2012

yo
ur

ap

Desktop
3.5 Browsers to support in 2012
browsers

pp
p
su
lic
pp
at
r 9 io n
or
t?
8% U
I fo
ov of
er ap r
th take ps
e
nu n
ro
pe mb
er
.

36

.1%

6/7
IE 6/7

6/7

Opera

Safari

14%
IE 6/7

14%

Ta
bl
et
s

18%

9

10

36%
36%

18%
Safari

IE 9

79%
79%
9

98.1%

IE 10

80%
80%
10

2.

O

Opera

th

er

Chrome

s

1%
94%

iP
ad
94%
An
3
W dr6
in o.1
do id%
“S
w What kind of devices does yourh app support?
in ince
ex t e gw
s
po plai ent t is
8
ph pul n w erp us
e
r
a
h
IE 9

IE 10

Browsers developers expect to support in 2013

Browsers developers expect to support in 2013

on r
is
d
es tha y ta e, t ex
”
n ble his ten
su ts
m si

Chrome

in

8

54%
54%
IE 8

Firefox

Ph

on
es

94% iPh
A
94%nd one
2
Firefox

inc

e
ex the gw
po plain ente
ph pula wh rp
on r t y t
es ha ab
n
”
su
pp

8
IE 8

“S

W 5 ro
P .7 id
8%

Da

ni

el
350+ add-on
components
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
User Interface
Data Source
Theme
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
User Interface
Data Source
Theme
Vaadin intro at GWT.create conference
InMemory, Bean, Method,
Collection, JDBC, JPA, Hibernate,
TextFile, FileSystem, Properties,
EclipseLink, Lucene, Mockups,
GAE, ...
2

Server + Client
Web application layers

Backend
server

Web
server

Communication

JavaScript
Web application layers

JS

GWT Vaadin

Backend
server

Web
server

Communication

Java to
JavaScript

JavaScript

required

required

optional

optional

optional

required

required

required

required

optional

required

required

required

required
Web application layers

JS

GWT Vaadin

Backend
server

Web
server

Communication

Java to
JavaScript

JavaScript

required

required

optional

optional

optional

required

required

1 layer

required

vs

required

3 layers

-50% codelines
-50% development
required
required
-50% maintenance
easier to learn
required

required

optional
Server-side

Client-side GWT-RPC

Client-side Vaadin-RPC

First name

Last name

Phone number

Table cell

Table cell

Server-side

Email address

Table cell

Offline

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Table cell

Far far away, behind the
far from the countries Vok
Consonantia, there live th
Separated they live in Bo
right at the coast of the S
large language ocean.

Table cell
Edit

First name

Phone number

Delete

New

Last name

Email address

Save

Cancel

A small river named Dude
place and supplies it with
regelialia. It is a paradise
which roasted parts of se
your mouth.

Even the all-powerful Poi
control about the blind tex
almost unorthographic life
however a small line of b
name of Lorem Ipsum de
for the far World of Gram
Oxmox advised her not to
because there were thou
Commas.
Server-side!
(with Vaadin)

Client-side!
(with GWT-RPC)

AddressbookEditor

~270loc

implements

Proxy


0loc

(generated)

Client

ServiceAsync

Server

AddressbookEditor

17loc

~150loc
68loc

RPCServlet

Frontend

equal

Service

implements

Backend

Address

AddressbookBackend

Impl

19loc
How does it work,
really?
Vaadin intro at GWT.create conference
•
•
•
•

Initial HTML
CSS (theme)
Images
JavaScript

!

1.2M total

compress

307k
reduced
widgetset

135k
• name=”Joonas”
• button clicked
!

261 bytes

Vaadin intro at GWT.create conference
• name=”Joonas”
• button clicked
!

261 bytes

• Add notification
!

267 bytes

Development cycle
Vaadin intro at GWT.create conference
Source
https://github.com/vaadin/documentmanager
HOWTO Screencast
https://vaadin.com/learn
3

Embracing
Java
Any language
on JVM
Internet Explorer
Chrome
Firefox
Safari
Opera
iOS
Android
No
browser
plugins
!

Nothing to
install
Servlet
Portlet
(most) clouds
Eclipse
IntelliJ IDEA
Netbeans
Maven
Ant
ŁŁŁ
Vaadin += GWT
1/7
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
GWT
Compatible
ity

tiv

or

df

ize

tim uc
Op
od
Pr

O

tim
p

fo
ed
iz

e rol
d ont
i C
s

r
e
v
r
e
S

r

tien
Cl
Architecture
Vaadin intro at GWT.create conference
Bleeding
edgE
Renewed
from Inside

JS
Sass
HTML5
+=
GWT

sh

RPC
State

Pu

Complete
stack

UI

Field
vaadin.com/7
Demo

Sass


Syntactically Awesome Stylesheets
JavaScript
Add-ons
Publish API from Java
getPage().getJavaScript().addFunction("myCallback",	
	 new JavaScriptCallback() {	
	 	 public void call(JSONArray arguments) throws JSONException {	
	 	 	 // Do something with the arguments	
	 	 }	
	 });	
	 	

Use from JavaScript
window.myCallback('foo', 100);
Server-side Java API for Widget
!
public class MyWidget extends AbstractJavaScriptComponent {	
	 public MyWidget() {	
	 	 addFunction("plotClick", new JavaScriptFunction() {	
	 	 	 public void call(JSONArray arguments) throws JSONException {	
	 	 	 	 // Do something with the event	
	 	 	 }	
	 	 });	
	 }	
!
	 public static class MyWidgetState extends JavaScriptComponentState {	
	 	 public List<List<List<Double>>> plotSeriesData = 	
	 	 	 	 new ArrayList<List<List<Double>>>();	
	 }	
public MyWidgetState getState() { return (MyWidgetState) super.getState(); }	
!
!
}
Widget implementation in JavaScript
window.com_example_MyWidget = function() {	
	 var element = $(this.getWidgetElement());	
	 	
// Draw a plot for any server-side (plot data) state change	
	 this.onStateChange = function() {	
	 	 $.plot(element, this.getState().series, {grid: {clickable: true}});	
	 }	
!
// Communicate local events back to server-side component	
	 element.bind('plotclick', function(event, point, item) {	
	 	 if (item) {	
	
var onPlotClick = this.getCallback("plotClick");	
	 	 	 onPlotClick(item.seriesIndex, item.dataIndex);	
	 	 }	
	 });	
}
Server Push
@Push MyUI
!
!

<async-supported/>
!
!

vaadin-push dependency
RPC
State
7

Demo

Widget

Connector
client
server

State
RPC

Component
getting
started
Vaadin intro at GWT.create conference
Eclipse

Download plugin
from Martketplace
IntelliJ IDEA

Built-in support
Netbeans

Download plugin
Netbeans Plugin Portal
Maven

mvn archetype:generate
-DarchetypeGroupId=
com.vaadin
-DarchetypeArtifactId=
vaadin-archetype-application
-DarchetypeVersion=
7.1.9
Download for Free
vaadin.com/book

-93-

1970
-1

01

728 pages

PDF, ePub, HTML
Apache
License
community of

~100.000
developers

Ohloh
#2 used
Java Web
Framework
Hybrid Applications
!

Theming Workshop

!

Vaadin Intro Workshop

1:30pm
?

slideshare.com/
joonaslehtinen

joonas@vaadin.com
vaadin.com/joonas
@joonaslehtinen

More Related Content

What's hot (20)

PPTX
Cross browser Testing JavaScript
Alan Parkinson
 
PPT
Behat sauce
Shashikant Jagtap
 
PDF
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
Vivek Ganesan
 
PPTX
Decapitating Selenium with JavaScript
Alan Parkinson
 
PDF
Continuous Development and Deployment: Workflows and Patterns
AOE
 
ODP
iOS Developers Conference-iOS Automation with Cucumber, Appium and Saucelabs
Shashikant Jagtap
 
PDF
Midwest PHP 2017 DevOps For Small team
Joe Ferguson
 
PDF
Chrome Devtools Protocol via Selenium/Appium (Japanese)
Kazuaki Matsuo
 
PPTX
Intro to JavaScript Tooling in Visual Studio Code
ColdFusionConference
 
PDF
Vkmdp cologne
Doug Sillars
 
PDF
Continuous Integration @ MeetMagento Germany 2015
Aleksey Razbakov
 
PDF
Modern Web Application Development Workflow - EclipseCon France 2014
Stéphane Bégaudeau
 
PDF
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Badoo
 
KEY
HTML5 vs Silverlight
Matt Casto
 
PDF
Put an end to regression with codeception testing
Joe Ferguson
 
PDF
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Matthew Davis
 
PDF
Getting Started with Dockerization of Selenium Tests Execution - Testwarez 2019
Sargis Sargsyan
 
PDF
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
Sargis Sargsyan
 
PDF
Behind story in publisher that developer doesn't know
David Kim
 
PDF
Composer at Scale, Release and Dependency Management
Joe Ferguson
 
Cross browser Testing JavaScript
Alan Parkinson
 
Behat sauce
Shashikant Jagtap
 
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
Vivek Ganesan
 
Decapitating Selenium with JavaScript
Alan Parkinson
 
Continuous Development and Deployment: Workflows and Patterns
AOE
 
iOS Developers Conference-iOS Automation with Cucumber, Appium and Saucelabs
Shashikant Jagtap
 
Midwest PHP 2017 DevOps For Small team
Joe Ferguson
 
Chrome Devtools Protocol via Selenium/Appium (Japanese)
Kazuaki Matsuo
 
Intro to JavaScript Tooling in Visual Studio Code
ColdFusionConference
 
Vkmdp cologne
Doug Sillars
 
Continuous Integration @ MeetMagento Germany 2015
Aleksey Razbakov
 
Modern Web Application Development Workflow - EclipseCon France 2014
Stéphane Bégaudeau
 
Mobile Web Test Automation: to the Desktop! - Alexander Bayandin - Mobile Tes...
Badoo
 
HTML5 vs Silverlight
Matt Casto
 
Put an end to regression with codeception testing
Joe Ferguson
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Matthew Davis
 
Getting Started with Dockerization of Selenium Tests Execution - Testwarez 2019
Sargis Sargsyan
 
How to Dockerize Parallel Execution of Selenium Tests - SQA Days EU, Rgia, La...
Sargis Sargsyan
 
Behind story in publisher that developer doesn't know
David Kim
 
Composer at Scale, Release and Dependency Management
Joe Ferguson
 

Viewers also liked (20)

PDF
GWT Web Socket and data serialization
GWTcon
 
PDF
RIA security based on OWASP Top 10
lastrand
 
PDF
Gwt create2013 Frankfurt: How we built a million dollar business with GWT
infoqafe
 
PDF
GWT.create 2013: Introduction to GXT
niloc132
 
PDF
Easing offline web application development with GWT
Arnaud Tournier
 
PDF
Comparing GWT Transport Mechanisms
lastrand
 
PDF
Client-Server Hybrid Applications with Vaadin
Artur-vaadin
 
PDF
Building mobile applications with Vaadin TouchKit
Sami Ekblad
 
PDF
Gwt.Create Keynote San Francisco
Ray Cromwell
 
PDF
GWT widget development
pgt technology scouting GmbH
 
PPTX
GWT vs CSS3
GWTcon
 
PDF
Tabular Data Using GWT Cell-based Widgets
Rogelio Flores
 
PDF
Workshop: Building Vaadin add-ons
Sami Ekblad
 
PDF
Turducken - Divide and Conquer large GWT apps with multiple teams
Robert Keane
 
PPTX
GWT videocall: power-up your mobile & web app with WebRTC
GWTcon
 
PDF
GWT.create 2013: Themeing GWT Applications with the Appearance Pattern
niloc132
 
PPTX
Taking Your GWT App to Tablets with GXT 4.0
David Chandler
 
PDF
Rock GWT UI's with Polymer Elements
Manuel Carrasco Moñino
 
PDF
GWTcon 2015 - Beyond GWT 3.0 Panic
Cristiano Costantini
 
PPTX
GWTcon 2015 - brad, Brand and Brands
Arcbees
 
GWT Web Socket and data serialization
GWTcon
 
RIA security based on OWASP Top 10
lastrand
 
Gwt create2013 Frankfurt: How we built a million dollar business with GWT
infoqafe
 
GWT.create 2013: Introduction to GXT
niloc132
 
Easing offline web application development with GWT
Arnaud Tournier
 
Comparing GWT Transport Mechanisms
lastrand
 
Client-Server Hybrid Applications with Vaadin
Artur-vaadin
 
Building mobile applications with Vaadin TouchKit
Sami Ekblad
 
Gwt.Create Keynote San Francisco
Ray Cromwell
 
GWT widget development
pgt technology scouting GmbH
 
GWT vs CSS3
GWTcon
 
Tabular Data Using GWT Cell-based Widgets
Rogelio Flores
 
Workshop: Building Vaadin add-ons
Sami Ekblad
 
Turducken - Divide and Conquer large GWT apps with multiple teams
Robert Keane
 
GWT videocall: power-up your mobile & web app with WebRTC
GWTcon
 
GWT.create 2013: Themeing GWT Applications with the Appearance Pattern
niloc132
 
Taking Your GWT App to Tablets with GXT 4.0
David Chandler
 
Rock GWT UI's with Polymer Elements
Manuel Carrasco Moñino
 
GWTcon 2015 - Beyond GWT 3.0 Panic
Cristiano Costantini
 
GWTcon 2015 - brad, Brand and Brands
Arcbees
 
Ad

Similar to Vaadin intro at GWT.create conference (20)

PDF
Introduction to Vaadin, GWT.create 2015
hezamu
 
PDF
Vaadin Introduction, 7.3 edition
Joonas Lehtinen
 
PDF
Vaadin intro
Joonas Lehtinen
 
PDF
Introduction to Web application development with Vaadin 7.1 - Tzukanov
Codemotion
 
PDF
Vaadin codemotion2014rome
mtzukanov
 
PDF
Vaadin codemotion 2014
Manuel Carrasco Moñino
 
PDF
Introduction to web-application development with Vaadin
Risto Yrjänä
 
PDF
Javantura Zagreb 2014 - Vaadin - Peter Lehto
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PDF
Rock Your Web Apps with Vaadin: Coding Serbia 2014
Ville Ingman
 
PDF
Vaadin Introduction at OOP 2014
Johannes Eriksson
 
PDF
soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Pl...
soft-shake.ch
 
PDF
Introduction to Vaadin Framework
Risto Yrjänä
 
PDF
Introduction to-web-application-development-with-vaadin7
Johannes Eriksson
 
PDF
Vaadin 7.2
Joonas Lehtinen
 
PDF
Book of-vaadin
VLASLOV
 
PDF
Vaadin 7 by Joonas Lehtinen
Codemotion
 
PDF
Vaadin 7 CN
jojule
 
PDF
Vaadin7
Joonas Lehtinen
 
PPT
Introduction to Vaadin
Jeroen Benats
 
PPTX
Vaadin7 - coding ui components
Patrick Pfister
 
Introduction to Vaadin, GWT.create 2015
hezamu
 
Vaadin Introduction, 7.3 edition
Joonas Lehtinen
 
Vaadin intro
Joonas Lehtinen
 
Introduction to Web application development with Vaadin 7.1 - Tzukanov
Codemotion
 
Vaadin codemotion2014rome
mtzukanov
 
Vaadin codemotion 2014
Manuel Carrasco Moñino
 
Introduction to web-application development with Vaadin
Risto Yrjänä
 
Rock Your Web Apps with Vaadin: Coding Serbia 2014
Ville Ingman
 
Vaadin Introduction at OOP 2014
Johannes Eriksson
 
soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Pl...
soft-shake.ch
 
Introduction to Vaadin Framework
Risto Yrjänä
 
Introduction to-web-application-development-with-vaadin7
Johannes Eriksson
 
Vaadin 7.2
Joonas Lehtinen
 
Book of-vaadin
VLASLOV
 
Vaadin 7 by Joonas Lehtinen
Codemotion
 
Vaadin 7 CN
jojule
 
Introduction to Vaadin
Jeroen Benats
 
Vaadin7 - coding ui components
Patrick Pfister
 
Ad

More from Joonas Lehtinen (20)

PDF
Web Components for Java Developers
Joonas Lehtinen
 
PDF
Vaadin Components @ Angular U
Joonas Lehtinen
 
PDF
Vaadin & Web Components
Joonas Lehtinen
 
PDF
Vaadin Components
Joonas Lehtinen
 
PDF
Hybrid webinar
Joonas Lehtinen
 
PDF
Hybrid applications
Joonas Lehtinen
 
PDF
Notes on architecture
Joonas Lehtinen
 
PDF
Vaadin roadmap-devoxx-2013
Joonas Lehtinen
 
PDF
Beoynd Vaadin 7
Joonas Lehtinen
 
PDF
Vaadin 7
Joonas Lehtinen
 
PDF
Hackathon - Building vaadin add on components
Joonas Lehtinen
 
PDF
Vaadin7
Joonas Lehtinen
 
PDF
Vaadin today and tomorrow
Joonas Lehtinen
 
PDF
Migration from vaadin 6 to vaadin 7 devoxx france 2013
Joonas Lehtinen
 
PDF
Vaadin7 modern-web-apps-in-java
Joonas Lehtinen
 
PDF
Vaadin 7 Today and Tomorrow
Joonas Lehtinen
 
PDF
Vaadin 7
Joonas Lehtinen
 
PDF
Desingning reusable web components
Joonas Lehtinen
 
PDF
Lecture: Vaadin Overview
Joonas Lehtinen
 
PDF
Vaadin 7
Joonas Lehtinen
 
Web Components for Java Developers
Joonas Lehtinen
 
Vaadin Components @ Angular U
Joonas Lehtinen
 
Vaadin & Web Components
Joonas Lehtinen
 
Vaadin Components
Joonas Lehtinen
 
Hybrid webinar
Joonas Lehtinen
 
Hybrid applications
Joonas Lehtinen
 
Notes on architecture
Joonas Lehtinen
 
Vaadin roadmap-devoxx-2013
Joonas Lehtinen
 
Beoynd Vaadin 7
Joonas Lehtinen
 
Vaadin 7
Joonas Lehtinen
 
Hackathon - Building vaadin add on components
Joonas Lehtinen
 
Vaadin today and tomorrow
Joonas Lehtinen
 
Migration from vaadin 6 to vaadin 7 devoxx france 2013
Joonas Lehtinen
 
Vaadin7 modern-web-apps-in-java
Joonas Lehtinen
 
Vaadin 7 Today and Tomorrow
Joonas Lehtinen
 
Vaadin 7
Joonas Lehtinen
 
Desingning reusable web components
Joonas Lehtinen
 
Lecture: Vaadin Overview
Joonas Lehtinen
 
Vaadin 7
Joonas Lehtinen
 

Recently uploaded (20)

PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 

Vaadin intro at GWT.create conference