SlideShare a Scribd company logo
1 of 96
Download to read offline
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
> 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
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 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
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
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
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

What's hot

GWT integration with Vaadin
GWT integration with VaadinGWT integration with Vaadin
GWT integration with VaadinPeter Lehto
 
Binding business data to vaadin components
Binding business data to vaadin componentsBinding business data to vaadin components
Binding business data to vaadin componentsPeter Lehto
 
What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?Marcus Hellberg
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular UJoonas Lehtinen
 
JavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopJavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopPeter Lehto
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web FrameworkLuther Baker
 
Wicket Introduction
Wicket IntroductionWicket Introduction
Wicket IntroductionEyal Golan
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CNjojule
 
Wicket Next (1.4/1.5)
Wicket Next (1.4/1.5)Wicket Next (1.4/1.5)
Wicket Next (1.4/1.5)jcompagner
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and ScalaJoonas Lehtinen
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java DevelopersJoonas Lehtinen
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Baruch Sadogursky
 
Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Sami Ekblad
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Datadeimos
 

What's hot (20)

GWT integration with Vaadin
GWT integration with VaadinGWT integration with Vaadin
GWT integration with Vaadin
 
Binding business data to vaadin components
Binding business data to vaadin componentsBinding business data to vaadin components
Binding business data to vaadin components
 
What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular U
 
JavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopJavaEE with Vaadin - Workshop
JavaEE with Vaadin - Workshop
 
Apache Wicket Web Framework
Apache Wicket Web FrameworkApache Wicket Web Framework
Apache Wicket Web Framework
 
Wicket Introduction
Wicket IntroductionWicket Introduction
Wicket Introduction
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
Wicket Next (1.4/1.5)
Wicket Next (1.4/1.5)Wicket Next (1.4/1.5)
Wicket Next (1.4/1.5)
 
Html5 with Vaadin and Scala
Html5 with Vaadin and ScalaHtml5 with Vaadin and Scala
Html5 with Vaadin and Scala
 
GWT Reloaded
GWT ReloadedGWT Reloaded
GWT Reloaded
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java Developers
 
Introducing GWT Polymer (vaadin)
Introducing GWT Polymer (vaadin)Introducing GWT Polymer (vaadin)
Introducing GWT Polymer (vaadin)
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
 
Data binding
Data bindingData binding
Data binding
 
Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015Vaadin and Spring at Devoxx UK 2015
Vaadin and Spring at Devoxx UK 2015
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
 
Apache Wicket
Apache WicketApache Wicket
Apache Wicket
 

Similar to Vaadin DevDay 2017 - Web Components

Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
Rock Your Web Apps with Vaadin: Coding Serbia 2014
Rock Your Web Apps with Vaadin: Coding Serbia 2014Rock Your Web Apps with Vaadin: Coding Serbia 2014
Rock Your Web Apps with Vaadin: Coding Serbia 2014Ville Ingman
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationDivante
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevMihail Mateev
 
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechDivante
 
Vaadin Designer (Labs release) @ GWT.create 2015
Vaadin Designer (Labs release) @ GWT.create 2015 Vaadin Designer (Labs release) @ GWT.create 2015
Vaadin Designer (Labs release) @ GWT.create 2015 marcenglund
 
Sitecore Development Phase Quick Start –Simple Spec Path
Sitecore Development Phase Quick Start –Simple Spec PathSitecore Development Phase Quick Start –Simple Spec Path
Sitecore Development Phase Quick Start –Simple Spec PathPeter Nazarov
 
Django app deployment in Azure By Saurabh Agarwal
Django app deployment in Azure By Saurabh AgarwalDjango app deployment in Azure By Saurabh Agarwal
Django app deployment in Azure By Saurabh Agarwalratneshsinghparihar
 
Mobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMartinSotirov
 
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan WrightSummit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan WrightAndrew Ly
 
Spunite17 Converting your CEWP Customisations
Spunite17 Converting your CEWP CustomisationsSpunite17 Converting your CEWP Customisations
Spunite17 Converting your CEWP CustomisationsNCCOMMS
 
Reusable Whiteboard Wicket Component for Apache Openmeetings
Reusable Whiteboard Wicket Component for Apache OpenmeetingsReusable Whiteboard Wicket Component for Apache Openmeetings
Reusable Whiteboard Wicket Component for Apache OpenmeetingsAndun Sameera
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Rodolfo Finochietti
 
Developing for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformDeveloping for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformTaylor Singletary
 
Pivotal Tracker for Mozat
Pivotal Tracker for MozatPivotal Tracker for Mozat
Pivotal Tracker for MozatAen Tan
 

Similar to Vaadin DevDay 2017 - Web Components (20)

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

More from Peter Lehto

Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationVaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationPeter Lehto
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderPeter Lehto
 
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)
Remote controlling Parrot AR Drone with Spring Boot & Vaadin (JavaCro15)Peter Lehto
 
Vaadin with Java EE 7
Vaadin with Java EE 7Vaadin with Java EE 7
Vaadin with Java EE 7Peter Lehto
 
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createPeter Lehto
 
Vaadin 7 - Java Enterprise Edition integration
Vaadin 7 - Java Enterprise Edition integrationVaadin 7 - Java Enterprise Edition integration
Vaadin 7 - Java Enterprise Edition integrationPeter Lehto
 
WebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootWebApp controlled Parrot AR Drone with Vaadin and Spring Boot
WebApp controlled Parrot AR Drone with Vaadin and Spring BootPeter Lehto
 

More from Peter Lehto (7)

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

Recently uploaded

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

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
  • 11.
  • 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
  • 27.
  • 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
  • 44.
  • 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
  • 61.
  • 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
  • 66.
  • 67.
  • 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
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 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 !