SlideShare a Scribd company logo
5
S T O R Y A N D P H I L O S O P H Y
Software is eating the world and what most of us see of it is the user interface. The user
interface has become the key component of how the users experience the business
behind it. Competition is lost or won due to user experience. Simplicity is king and the
users get frustrated by anything ugly, slow or not working on the device they happen to
use at the time. We at Vaadin fight for simplicity and invite everyone to join this fight.
Together we want to build a user interface that puts a smile on the user’s face.
Vaadin is the technology that empowers developers to build the best web-apps for
business purposes. Our priority over everything else is developer productivity because
we believe that by simplifying the developer experience and saving the developer’s
time, they are best able to focus on building great user interfaces.
Our brand is what we want everyone to think about us. When everyone - both us and
the people around us - have a consistent understanding of what Vaadin is and what we
stand for, it enables that image to spread and amplify. This book defines what we want
that image to be. It defines what the Vaadin brand is.
I hope that You are as excited and proud of living and breathing the Vaadin brand as
I am. You are the one who is shaping what everyone thinks about Vaadin - using this
brand as a tool and a guideline every day.
Let’s fight for simplicity for both the users and the developers!
Joonas Lehtinen
Founder & CEO
Vaadin
I N T R O D U C T I O N
@peter_lehto
W E B C O M P O N E N T S
Session’s content
Session’s content
• The roots, where are we coming from?
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
• Progressive Web Apps (PWA), Vaadin, Future?
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
• Progressive Web Apps (PWA), Vaadin, Future?
• Using Web Components with Vaadin today.
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
• Progressive Web Apps (PWA), Vaadin, Future?
• Using Web Components with Vaadin today.
Vaadin Framework
Vaadin Framework
.1 .2 3 4 5 6 7
Vaadin Framework
.1 .2 3 4 5 6 7
2001
2002
2002
2007
2007
2009
2013
Vaadin DevDay 2017 - Web Components
> var foo = [0];
> foo == !foo;
> var foo = [0];
> foo == !foo;
> true
> [] + [];
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> NaN == NaN;
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> NaN == NaN;
> false
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> NaN == NaN;
> false
> typeof NaN;
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> NaN == NaN;
> false
> typeof NaN;
> number
> var foo = [0];
> foo == !foo;
> true
> [] + [];
>
> [] + {};
> [object Object]
> {} + [];
> 0
> {} + {};
> NaN
> NaN == NaN;
> false
> typeof NaN;
> number
> var foo = [0];
> foo == !foo;
> true
Vaadin DevDay 2017 - Web Components
A History of Stability
OVER 15+ YEARS OF

SHIELDING YOU FROM

CONSTANT CHANGE
< Millstone 3.0 (2002)
IT Mill Toolkit 5 (2009)
Vaadin 7.6.0 (2016) >
Vaadin Framework
.1 .2 3 4 5 6 7
2001
2002
2002
2007
2007
2009
2013
Vaadin Framework
.1 .2 3 4 5 6 7 8
2001
2002
2002
2007
2007
2009
2013
2017
Framework
8
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Recent Changes
Framework
8
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Recent Changes
• Java 8
• New data binding
• Focus on new browsers
• HTML imports (Web components)
• Improved performance
Vaadin Framework
.1 .2 3 4 5 6 7 8
2001
2002
2002
2005
2007
2009
2013
2017
GWTAJAXHTML
Backend
Server
UI Backend
Server
Browser
UI Backend
Server
Widgets Components
Theme
Browser
UI Backend
Server
Widgets Components
Theme
Browser
UI Backend
Server
Widgets Components
Shared State

RPC
GWT
Java -> JavaScript
- Optimizing compiler
GWT
Browser specific
compilation
- No browser differences
GWT
Pure Java
- Web apps without JavaScript
GWT
JSInterop
- JavaScript interoperability
GWT
Vaadin DevDay 2017 - Web Components
Vaadin Framework
.1 .2 3 4 5 6 7 8
2001
2002
2002
2005
2007
2009
2013
2017
Web ComponentsGWTAJAXHTML
Framework
8
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Web Components
.2
Framework
8
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Web Components
• Toolchain integration (Bower, npm)
• Integration with Vaadin Elements
.2
Vaadin Framework
.1 .2 3 4 5 6 7 8
Web ComponentsGWTAJAXHTML
Vaadin Framework
.1 .2 3 4 5 6 7 8
Vaadin Core Elements
Web ComponentsGWTAJAXHTML
Vaadin Core Elements
Vaadin Framework
4 5 6 7 8
Vaadin Core Elements
Vaadin Framework
4 5 6 7 8
2
“9”
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
• Progressive Web Apps (PWA), Vaadin, Future?
• Using Web Components with Vaadin today.
Web Components?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Web Components?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• HTML Templates
Web Components?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• HTML Templates
• Custom Elements
Web Components?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• HTML Templates
• Custom Elements
• Shadow DOM
Web Components?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• HTML Templates
• Custom Elements
• Shadow DOM
• HTML Imports
Templates
<template id=“my-template"> 

<style> 

...

</style> 

<div> 

<h1>Web Components</h1> 

<img src="/img/logo.svg"> 

</div> 

</template>





Custom Elements
<my-new-element></my-new-element>
S H A D O W D O M
Vaadin DevDay 2017 - Web Components
HTML Imports
<link rel="import" href="my-el.html">

• Encapsulation
• Reusability
Benefits of using Web Components
Web Components in
Practice 1/2
• A new TAG for your browser ‘<my-
ui-component>’
• Based on standard specifications
(no frameworks!)
Web Components in
Practice 2/2
Advantages:
1. Goodbye to browser plugins (WC + HTML5)
2. Isolated from other elements in DOM
3. Easy to share (bower)
4. Easy to integrate
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Polyfills?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
Polyfills?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• Make standards work with

today’s browsers
Polyfills?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• Make standards work with

today’s browsers
• Able to detect native
support
Polyfills?
Vaadin Elements
• Web Components

A new, major standard to create
components for the Web

“Custom tags for HTML”
• Vaadin Elements

High-quality UI components for users
of client-side frameworks such as
Angular, ionic …
• A new generation of UI components
to be used also with future versions
of the Vaadin server-side framework
• Make standards work with

today’s browsers
• Able to detect native
support
• Standards should out
power polyfills in future
Session’s content
• The roots, where are we coming from?
• What constitutes a Web Component?
• Progressive Web Apps (PWA), Vaadin, Future?
• Using Web Components with Vaadin today.
B U I L D I N G A P W A
Reliable
User experiences need to be...
Reliability means never showing 

the offline dinosaur
Reliable Fast
User experiences need to be...
of users abandon sites that take
longer than 3 seconds to load53%
Reliable Fast Engaging
User experiences need to be...
Immersive Notifications
Engaging
Home Screen
Full screen,
theming,
orientation, etc.
Immersive Notifications
Engaging
Home Screen
Full screen,
theming,
orientation, etc.
Immersive Notifications
Engaging
Auto-adding to
Home Screen
Home Screen
Full screen,
theming,
orientation, etc.
Push
notifications
Immersive Notifications
Engaging
Auto-adding to
Home Screen
Home Screen
`
Web Push
Notifications
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
Vaadin DevDay 2017 - Web Components
D E M O
Lessons learned
Lessons learned
• TODO: Remember to add items before the talk…
@peter_lehto
T H A N K Y O U !

More Related Content

PDF
Vaadin Flow - JavaLand 2018
PDF
Building web apps with Vaadin 8
PDF
Vaadin DevDay 2017 - DI your UI
PDF
Vaadin 8 and 10
PDF
Vaadin 8 with Spring Framework
PDF
Techlunch - Dependency Injection with Vaadin
PDF
Vaadin DevDay 2017 - Data Binding in Vaadin 8
PDF
Building impressive layout systems with vaadin
Vaadin Flow - JavaLand 2018
Building web apps with Vaadin 8
Vaadin DevDay 2017 - DI your UI
Vaadin 8 and 10
Vaadin 8 with Spring Framework
Techlunch - Dependency Injection with Vaadin
Vaadin DevDay 2017 - Data Binding in Vaadin 8
Building impressive layout systems with vaadin

What's hot (20)

PDF
GWT integration with Vaadin
PDF
Binding business data to vaadin components
PDF
What's new in Vaadin 8, how do you upgrade, and what's next?
PDF
Vaadin Components
PDF
Vaadin Components @ Angular U
PDF
JavaEE with Vaadin - Workshop
PDF
Apache Wicket Web Framework
PPT
Wicket Introduction
KEY
Wicket 2010
PDF
Vaadin 7 CN
ODP
Wicket Next (1.4/1.5)
PDF
Html5 with Vaadin and Scala
PDF
GWT Reloaded
PDF
Web Components for Java Developers
PDF
Introducing GWT Polymer (vaadin)
PDF
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
PPTX
Data binding
PDF
Vaadin and Spring at Devoxx UK 2015
PDF
Frank Mantek Google G Data
PPTX
Apache Wicket
GWT integration with Vaadin
Binding business data to vaadin components
What's new in Vaadin 8, how do you upgrade, and what's next?
Vaadin Components
Vaadin Components @ Angular U
JavaEE with Vaadin - Workshop
Apache Wicket Web Framework
Wicket Introduction
Wicket 2010
Vaadin 7 CN
Wicket Next (1.4/1.5)
Html5 with Vaadin and Scala
GWT Reloaded
Web Components for Java Developers
Introducing GWT Polymer (vaadin)
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Data binding
Vaadin and Spring at Devoxx UK 2015
Frank Mantek Google G Data
Apache Wicket
Ad

Similar to Vaadin DevDay 2017 - Web Components (20)

PDF
Real World SharePoint Framework and Azure Services
PDF
Rock Your Web Apps with Vaadin: Coding Serbia 2014
PDF
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
PDF
Vaadin Jump Start
PDF
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
PDF
Win j svsphonegap-damyan-petev-mihail-mateev
PPTX
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
PDF
Vaadin Designer (Labs release) @ GWT.create 2015
PDF
Sitecore Development Phase Quick Start –Simple Spec Path
ODP
NetTantra Web Development Brochure
PPTX
Django app deployment in Azure By Saurabh Agarwal
PDF
HTML5 Comprehensive Guide
PDF
Mobile Vue.js – From PWA to Native
PDF
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
PDF
Going web native
PDF
Spunite17 Converting your CEWP Customisations
PPTX
Reusable Whiteboard Wicket Component for Apache Openmeetings
PPTX
SharePoint 2013 App Provisioning Models
PPTX
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
PDF
Developing for LinkedIn's Application Platform
Real World SharePoint Framework and Azure Services
Rock Your Web Apps with Vaadin: Coding Serbia 2014
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
Vaadin Jump Start
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
Win j svsphonegap-damyan-petev-mihail-mateev
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vaadin Designer (Labs release) @ GWT.create 2015
Sitecore Development Phase Quick Start –Simple Spec Path
NetTantra Web Development Brochure
Django app deployment in Azure By Saurabh Agarwal
HTML5 Comprehensive Guide
Mobile Vue.js – From PWA to Native
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Going web native
Spunite17 Converting your CEWP Customisations
Reusable Whiteboard Wicket Component for Apache Openmeetings
SharePoint 2013 App Provisioning Models
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Developing for LinkedIn's Application Platform
Ad

More from Peter Lehto (7)

PDF
Vaadin 8 with Spring Frameworks AutoConfiguration
PDF
Vaadin 8 - Data Binding with Binder
PDF
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
PDF
Vaadin with Java EE 7
PDF
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
PDF
Vaadin 7 - Java Enterprise Edition integration
PDF
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 - Data Binding with Binder
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Vaadin with Java EE 7
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Vaadin 7 - Java Enterprise Edition integration
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot

Recently uploaded (20)

PPTX
L1 - Introduction to python Backend.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
System and Network Administraation Chapter 3
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
history of c programming in notes for students .pptx
PDF
System and Network Administration Chapter 2
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ai tools demonstartion for schools and inter college
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
L1 - Introduction to python Backend.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
System and Network Administraation Chapter 3
Softaken Excel to vCard Converter Software.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
Design an Analysis of Algorithms I-SECS-1021-03
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Upgrade and Innovation Strategies for SAP ERP Customers
history of c programming in notes for students .pptx
System and Network Administration Chapter 2
PTS Company Brochure 2025 (1).pdf.......
Odoo Companies in India – Driving Business Transformation.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Odoo POS Development Services by CandidRoot Solutions
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ai tools demonstartion for schools and inter college
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

Vaadin DevDay 2017 - Web Components

  • 1. 5 S T O R Y A N D P H I L O S O P H Y Software is eating the world and what most of us see of it is the user interface. The user interface has become the key component of how the users experience the business behind it. Competition is lost or won due to user experience. Simplicity is king and the users get frustrated by anything ugly, slow or not working on the device they happen to use at the time. We at Vaadin fight for simplicity and invite everyone to join this fight. Together we want to build a user interface that puts a smile on the user’s face. Vaadin is the technology that empowers developers to build the best web-apps for business purposes. Our priority over everything else is developer productivity because we believe that by simplifying the developer experience and saving the developer’s time, they are best able to focus on building great user interfaces. Our brand is what we want everyone to think about us. When everyone - both us and the people around us - have a consistent understanding of what Vaadin is and what we stand for, it enables that image to spread and amplify. This book defines what we want that image to be. It defines what the Vaadin brand is. I hope that You are as excited and proud of living and breathing the Vaadin brand as I am. You are the one who is shaping what everyone thinks about Vaadin - using this brand as a tool and a guideline every day. Let’s fight for simplicity for both the users and the developers! Joonas Lehtinen Founder & CEO Vaadin I N T R O D U C T I O N @peter_lehto W E B C O M P O N E N T S
  • 3. Session’s content • The roots, where are we coming from?
  • 4. Session’s content • The roots, where are we coming from? • What constitutes a Web Component?
  • 5. Session’s content • The roots, where are we coming from? • What constitutes a Web Component? • Progressive Web Apps (PWA), Vaadin, Future?
  • 6. Session’s content • The roots, where are we coming from? • What constitutes a Web Component? • Progressive Web Apps (PWA), Vaadin, Future? • Using Web Components with Vaadin today.
  • 7. Session’s content • The roots, where are we coming from? • What constitutes a Web Component? • Progressive Web Apps (PWA), Vaadin, Future? • Using Web Components with Vaadin today.
  • 10. Vaadin Framework .1 .2 3 4 5 6 7 2001 2002 2002 2007 2007 2009 2013
  • 12. > var foo = [0]; > foo == !foo;
  • 13. > var foo = [0]; > foo == !foo; > true
  • 14. > [] + []; > var foo = [0]; > foo == !foo; > true
  • 15. > [] + []; > > var foo = [0]; > foo == !foo; > true
  • 16. > [] + []; > > [] + {}; > var foo = [0]; > foo == !foo; > true
  • 17. > [] + []; > > [] + {}; > [object Object] > var foo = [0]; > foo == !foo; > true
  • 18. > [] + []; > > [] + {}; > [object Object] > {} + []; > var foo = [0]; > foo == !foo; > true
  • 19. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > var foo = [0]; > foo == !foo; > true
  • 20. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {};> var foo = [0]; > foo == !foo; > true
  • 21. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > var foo = [0]; > foo == !foo; > true
  • 22. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > NaN == NaN; > var foo = [0]; > foo == !foo; > true
  • 23. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > NaN == NaN; > false > var foo = [0]; > foo == !foo; > true
  • 24. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > NaN == NaN; > false > typeof NaN; > var foo = [0]; > foo == !foo; > true
  • 25. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > NaN == NaN; > false > typeof NaN; > number > var foo = [0]; > foo == !foo; > true
  • 26. > [] + []; > > [] + {}; > [object Object] > {} + []; > 0 > {} + {}; > NaN > NaN == NaN; > false > typeof NaN; > number > var foo = [0]; > foo == !foo; > true
  • 28. A History of Stability OVER 15+ YEARS OF
 SHIELDING YOU FROM
 CONSTANT CHANGE < Millstone 3.0 (2002) IT Mill Toolkit 5 (2009) Vaadin 7.6.0 (2016) >
  • 29. Vaadin Framework .1 .2 3 4 5 6 7 2001 2002 2002 2007 2007 2009 2013
  • 30. Vaadin Framework .1 .2 3 4 5 6 7 8 2001 2002 2002 2007 2007 2009 2013 2017
  • 31. Framework 8 Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework Recent Changes
  • 32. Framework 8 Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework Recent Changes • Java 8 • New data binding • Focus on new browsers • HTML imports (Web components) • Improved performance
  • 33. Vaadin Framework .1 .2 3 4 5 6 7 8 2001 2002 2002 2005 2007 2009 2013 2017 GWTAJAXHTML
  • 39. GWT
  • 40. Java -> JavaScript - Optimizing compiler GWT
  • 41. Browser specific compilation - No browser differences GWT
  • 42. Pure Java - Web apps without JavaScript GWT
  • 45. Vaadin Framework .1 .2 3 4 5 6 7 8 2001 2002 2002 2005 2007 2009 2013 2017 Web ComponentsGWTAJAXHTML
  • 46. Framework 8 Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework Web Components .2
  • 47. Framework 8 Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework Web Components • Toolchain integration (Bower, npm) • Integration with Vaadin Elements .2
  • 48. Vaadin Framework .1 .2 3 4 5 6 7 8 Web ComponentsGWTAJAXHTML
  • 49. Vaadin Framework .1 .2 3 4 5 6 7 8 Vaadin Core Elements Web ComponentsGWTAJAXHTML
  • 50. Vaadin Core Elements Vaadin Framework 4 5 6 7 8
  • 51. Vaadin Core Elements Vaadin Framework 4 5 6 7 8 2 “9”
  • 52. Session’s content • The roots, where are we coming from? • What constitutes a Web Component? • Progressive Web Apps (PWA), Vaadin, Future? • Using Web Components with Vaadin today.
  • 53. Web Components? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework
  • 54. Web Components? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • HTML Templates
  • 55. Web Components? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • HTML Templates • Custom Elements
  • 56. Web Components? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • HTML Templates • Custom Elements • Shadow DOM
  • 57. Web Components? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • HTML Templates • Custom Elements • Shadow DOM • HTML Imports
  • 58. Templates <template id=“my-template"> 
 <style> 
 ...
 </style> 
 <div> 
 <h1>Web Components</h1> 
 <img src="/img/logo.svg"> 
 </div> 
 </template>
 
 

  • 60. S H A D O W D O M
  • 62. HTML Imports <link rel="import" href="my-el.html">

  • 64. Web Components in Practice 1/2 • A new TAG for your browser ‘<my- ui-component>’ • Based on standard specifications (no frameworks!)
  • 65. Web Components in Practice 2/2 Advantages: 1. Goodbye to browser plugins (WC + HTML5) 2. Isolated from other elements in DOM 3. Easy to share (bower) 4. Easy to integrate
  • 68. Polyfills? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework
  • 69. Polyfills? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • Make standards work with
 today’s browsers
  • 70. Polyfills? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • Make standards work with
 today’s browsers • Able to detect native support
  • 71. Polyfills? Vaadin Elements • Web Components
 A new, major standard to create components for the Web
 “Custom tags for HTML” • Vaadin Elements
 High-quality UI components for users of client-side frameworks such as Angular, ionic … • A new generation of UI components to be used also with future versions of the Vaadin server-side framework • Make standards work with
 today’s browsers • Able to detect native support • Standards should out power polyfills in future
  • 72. Session’s content • The roots, where are we coming from? • What constitutes a Web Component? • Progressive Web Apps (PWA), Vaadin, Future? • Using Web Components with Vaadin today.
  • 73. B U I L D I N G A P W A
  • 75. Reliability means never showing 
 the offline dinosaur
  • 77. of users abandon sites that take longer than 3 seconds to load53%
  • 78. Reliable Fast Engaging User experiences need to be...
  • 80. Full screen, theming, orientation, etc. Immersive Notifications Engaging Home Screen
  • 81. Full screen, theming, orientation, etc. Immersive Notifications Engaging Auto-adding to Home Screen Home Screen
  • 82. Full screen, theming, orientation, etc. Push notifications Immersive Notifications Engaging Auto-adding to Home Screen Home Screen
  • 93. D E M O
  • 95. Lessons learned • TODO: Remember to add items before the talk…
  • 96. @peter_lehto T H A N K Y O U !