SlideShare une entreprise Scribd logo
1  sur  104
Télécharger pour lire hors ligne
7

Vaadin
intro

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

7
Getting
started

QA
User interface
framework for rich
web applications
Building blocks
Developer
Productivity

Rich
UX
java

html
123
Key Ideas
1

Rich
Components
User Interface
Data Source
Theme
User Interface
Data Source
Theme
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
415+ add-on
components
User Interface
Data Source
Theme
User Interface
Data Source
Theme
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
How does it work,
really?
•
•
•
•

Initial HTML
CSS (theme)
Images
JavaScript

!

1.2M total

compress

307k
reduced
widgetset

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

261 bytes

• name=”Joonas”
• button clicked
!

261 bytes

• Add notification
!

267 bytes

Hello World!
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 / JRE
!

Nothing to
install
∙
∙

Servlet
Portlet
(most) clouds
∙∙∙
Anything Java
∙
∙

Eclipse
IntelliJ IDEA
Netbeans
Maven / Gradle / Ant
∙∙∙
Anything Java
Java EE
Spring
OSGi
REST
∙∙∙
Anything Java
7

Vaadin

.1
v0.1
2001
v3
2002

Open
Source
v4
2006

Ajax
v5
2007
7
v6
2009

2013
934 tickets closed during 16 months of
development
Oldest ticket created 3/2008
Newest ticket 2/2013
3939 commits made by 23 authors
93 % by 6 persons
> 1 000 000 lines of code touched
Renewed
from Inside

JS
Sass
HTML5
+=
GWT

sh

RPC
State

Pu

Complete
stack

UI

Field
vaadin.com/7
7

Favorite picks
Vaadin += GWT
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
or

df

ize

O

P

d
ro

tim
p

ed
iz

or
f

it
iv
ct
u

rrve
Se
ol
tim
ntr

Op

e
sid
Co

t
n
e
i
l
C
Architecture
Demo

Sass


Syntactically Awesome Stylesheets
Variables & functions
Mixins
Nesting
Selector Inheritance
Redesigned
Forms
public class Employee {	
	 String firstName;	
	 String lastName;	
	 double salary;	
	 Date birthDate;	
// Getters, setters, …	
}	
!

Form form = new Form();	
form.setItemDataSource(	
new BeanItem<Employee>(employee));

6
form.setFormFieldFactory(new FormFieldFactory() {	
!

	 	 	 public Field createField(Item item, Object propertyId,	
	 	 	 	 	 Component uiContext) {	
!

	
	
	
	
	

	
	
	
	
	

	
	
	
	
	

	
	
	
	
	

6

if ("birthDate".equals(propertyId)) {	
	 DateField df = new DateField();	
	 df.setResolution(DateField.RESOLUTION_DAY);	
	 return df;	
}	

!

// ..	
!

	
	
	
	

	
	
	
	

	 	 return DefaultFieldFactory.createFieldByPropertyType(item	
	 	 	 	 .getItemProperty(propertyId).getType());	
	 }	
});
GridLayout form = new GridLayout(2,2) {	

	
	
	
	

	
	
	
	

	
	
	
	

TextField
TextField
TextField
DateField

	
	
	
	
	
	
	
	
	

	
	
	
	
	
	
	
	
	

	 {	
	 	
	 	
	 	
	 	
	 	
	 	
	 }	
};	

firstName = new TextField("First name");	
lastName = new TextField("Last name");	
salary = new TextField("Salary");	
birthDate = new DateField("Birth date");	

7

birthDate.setResolution(Resolution.DAY);	
setSpacing(true);	
addComponent(firstName);	
addComponent(lastName);	
addComponent(birthDate);	
addComponent(salary);	

	 	 BeanFieldGroup<Employee> fieldGroup = new BeanFieldGroup<Employee>(Employee.class);	
	 	 fieldGroup.bindMemberFields(form);	
	 	 fieldGroup.setItemDataSource(new BeanItem<Employee>(employee));
public class Person {
!

@Size(min = 5, max = 50)
private String name;
!

@Min(0)
@Max(100)
private int age;
!

// + constructor + setters + getters
}
“Joonas Lehtinen”

presentation
model

Component

firstName = “Joonas”!
lastName = “Lehtinen”

Demo
Server Push
@Push MyUI
!
!

<async-supported/>
!
!

vaadin-push dependency
getting
started
getting
started
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.7
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
Vaadin 7.2

See you tomorrow
Vaadin 7.2

See you tomorrow
?

slideshare.com/
joonaslehtinen

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

Contenu connexe

Similaire à Vaadin intro

Introduction to Web application development with Vaadin 7.1 - Tzukanov
Introduction to Web application development with Vaadin 7.1 - TzukanovIntroduction to Web application development with Vaadin 7.1 - Tzukanov
Introduction to Web application development with Vaadin 7.1 - TzukanovCodemotion
 
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conferenceVaadin intro at GWT.create conference
Vaadin intro at GWT.create conferenceJoonas Lehtinen
 
Vaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas LehtinenVaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas LehtinenCodemotion
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
بررسی چارچوب جنگو
بررسی چارچوب جنگوبررسی چارچوب جنگو
بررسی چارچوب جنگوrailsbootcamp
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008Association Paris-Web
 
User interface-ui-training-by-ruchiwebsolutions
User interface-ui-training-by-ruchiwebsolutionsUser interface-ui-training-by-ruchiwebsolutions
User interface-ui-training-by-ruchiwebsolutionsphp2ranjan
 
User interface ui training hyderabad
User interface ui training hyderabadUser interface ui training hyderabad
User interface ui training hyderabadRuchiwebsolutions
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathonmarvin337
 
Wesam Mortagi - Australia
Wesam Mortagi - AustraliaWesam Mortagi - Australia
Wesam Mortagi - AustraliaWesam Agaibi
 
OSML and OpenSocial 0.9
OSML and OpenSocial 0.9OSML and OpenSocial 0.9
OSML and OpenSocial 0.9MySpaceDevTeam
 
Web designing-training-by-ruchiwebsolutions
Web designing-training-by-ruchiwebsolutionsWeb designing-training-by-ruchiwebsolutions
Web designing-training-by-ruchiwebsolutionsphp2ranjan
 
Enjoying the full stack - Frontend 2010
Enjoying the full stack - Frontend 2010Enjoying the full stack - Frontend 2010
Enjoying the full stack - Frontend 2010Christian Heilmann
 
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APIEngage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APISerdar Basegmez
 
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...Codemotion
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 

Similaire à Vaadin intro (20)

Introduction to Web application development with Vaadin 7.1 - Tzukanov
Introduction to Web application development with Vaadin 7.1 - TzukanovIntroduction to Web application development with Vaadin 7.1 - Tzukanov
Introduction to Web application development with Vaadin 7.1 - Tzukanov
 
Vaadin intro at GWT.create conference
Vaadin intro at GWT.create conferenceVaadin intro at GWT.create conference
Vaadin intro at GWT.create conference
 
Vaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas LehtinenVaadin 7 by Joonas Lehtinen
Vaadin 7 by Joonas Lehtinen
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
بررسی چارچوب جنگو
بررسی چارچوب جنگوبررسی چارچوب جنگو
بررسی چارچوب جنگو
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
 
User interface-ui-training-by-ruchiwebsolutions
User interface-ui-training-by-ruchiwebsolutionsUser interface-ui-training-by-ruchiwebsolutions
User interface-ui-training-by-ruchiwebsolutions
 
User interface ui training hyderabad
User interface ui training hyderabadUser interface ui training hyderabad
User interface ui training hyderabad
 
Santhosh_Resume
Santhosh_ResumeSanthosh_Resume
Santhosh_Resume
 
resume
resumeresume
resume
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Wesam Mortagi - Australia
Wesam Mortagi - AustraliaWesam Mortagi - Australia
Wesam Mortagi - Australia
 
OSML and OpenSocial 0.9
OSML and OpenSocial 0.9OSML and OpenSocial 0.9
OSML and OpenSocial 0.9
 
Web designing-training-by-ruchiwebsolutions
Web designing-training-by-ruchiwebsolutionsWeb designing-training-by-ruchiwebsolutions
Web designing-training-by-ruchiwebsolutions
 
Enjoying the full stack - Frontend 2010
Enjoying the full stack - Frontend 2010Enjoying the full stack - Frontend 2010
Enjoying the full stack - Frontend 2010
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
 
mobicon_paper
mobicon_papermobicon_paper
mobicon_paper
 
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APIEngage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
 
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...
Danny Banks - Building consistent Cross-Platform interfaces - Codemotion Amst...
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 

Plus de Joonas Lehtinen

Plus de Joonas Lehtinen (20)

Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java Developers
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular U
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
Vaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 editionVaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 edition
 
Hybrid webinar
Hybrid webinarHybrid webinar
Hybrid webinar
 
Vaadin 7.2
Vaadin 7.2Vaadin 7.2
Vaadin 7.2
 
Hybrid applications
Hybrid applicationsHybrid applications
Hybrid applications
 
Notes on architecture
Notes on architectureNotes on architecture
Notes on architecture
 
Vaadin roadmap-devoxx-2013
Vaadin roadmap-devoxx-2013Vaadin roadmap-devoxx-2013
Vaadin roadmap-devoxx-2013
 
Beoynd Vaadin 7
Beoynd Vaadin 7Beoynd Vaadin 7
Beoynd Vaadin 7
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
Hackathon - Building vaadin add on components
Hackathon - Building vaadin add on componentsHackathon - Building vaadin add on components
Hackathon - Building vaadin add on components
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
Vaadin today and tomorrow
Vaadin today and tomorrowVaadin today and tomorrow
Vaadin today and tomorrow
 
Migration from vaadin 6 to vaadin 7 devoxx france 2013
Migration from vaadin 6 to vaadin 7   devoxx france 2013Migration from vaadin 6 to vaadin 7   devoxx france 2013
Migration from vaadin 6 to vaadin 7 devoxx france 2013
 
Vaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-javaVaadin7 modern-web-apps-in-java
Vaadin7 modern-web-apps-in-java
 
Vaadin 7 Today and Tomorrow
Vaadin 7 Today and TomorrowVaadin 7 Today and Tomorrow
Vaadin 7 Today and Tomorrow
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
 
Desingning reusable web components
Desingning reusable web componentsDesingning reusable web components
Desingning reusable web components
 
Lecture: Vaadin Overview
Lecture: Vaadin OverviewLecture: Vaadin Overview
Lecture: Vaadin Overview
 

Vaadin intro