YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: IoT with Vaadin Elements

Vaadin ElementsIoT with

Jürgen Treml, Key Account Manager [email protected], @juergentreml

Page 2: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

Page 3: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

IDE Support

Mature language

Extensive tooling

Third-party libraries

Page 4: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

IDE Support

Mature language

Extensive tooling

Third-party libraries

Component based UI

Enterprise-grade

quality & performance

Rich selection

Page 5: IoT with Vaadin Elements

All problems solved for Java developers!

Page 6: IoT with Vaadin Elements

Client-side only?

Page 7: IoT with Vaadin Elements

Client-side only?

High-latency network

Offline capability

Millions of concurrent users

Team knowledge

Page 8: IoT with Vaadin Elements

Not long ago:

You’re screwed

Page 9: IoT with Vaadin Elements

Not long ago:

You’re screwed

Conflicting selectors

Lack of tooling

Language features

Page 10: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Page 11: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Page 12: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Page 13: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Page 14: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Libraries to the rescue?

SelectorsTemplates

Language features

Importing & Loading

Style Extensions

Page 15: IoT with Vaadin Elements

Not long ago:

You’re screwed

div > div > div

Conflicting selectors

Lack of tooling

Language features

Libraries to the rescue?

SelectorsTemplates

Language features

Importing & Loading

Style Extensions

Page 16: IoT with Vaadin Elements

Things have changed:

You’ll be just fine

Page 17: IoT with Vaadin Elements

Lack of tooling

Language features

Selector conflicts

Lack of semantics

Things have changed:

You’ll be just fine

Page 18: IoT with Vaadin Elements

Lack of tooling

Language features

Selector conflicts

Lack of semantics

:-):-)

:-):-)

Things have changed:

You’ll be just fine

Page 19: IoT with Vaadin Elements

Things have changed:

You’ll be just fine

Page 20: IoT with Vaadin Elements

Things have changed:

You’ll be just fine

Gulp, Bower, IDE Support

ECMAScript 6

Page 21: IoT with Vaadin Elements

Things have changed:

You’ll be just fine

Gulp, Bower, IDE Support

ECMAScript 6

Web Components

Page 22: IoT with Vaadin Elements

Web Components Component-oriented UI for the Web

Page 23: IoT with Vaadin Elements

BenefitsComposition

Separation

Reusability

Page 24: IoT with Vaadin Elements

How?

Custom Elements

Shadow DOM

Templates

HTML Imports

Page 25: IoT with Vaadin Elements

How?

Custom Elements

<my-component> </my-component>

Page 26: IoT with Vaadin Elements

How?

Custom Elements

<my-component> </my-component>

Page 27: IoT with Vaadin Elements

How?

Shadow DOM

<audio></audio>

Page 28: IoT with Vaadin Elements

How?

Shadow DOM

<audio></audio>

Page 29: IoT with Vaadin Elements

How?

Shadow DOM

<audio></audio>

Page 30: IoT with Vaadin Elements

How?

Shadow DOM

<audio></audio>

Page 31: IoT with Vaadin Elements

How?

Shadow DOM

<audio></audio>

Page 32: IoT with Vaadin Elements

How?

Templates

<template id="tmp"> <style> ... </style> <div> <h1>Web Components</h1> <img src="logo.svg"> </div> </template>

Page 33: IoT with Vaadin Elements

How?

Templates

var tmp = document.querySelector(‘#tmp');

var clone = document.importNode(tmp.content, true);

var host = document.querySelector(‘#host');

host.appendChild(clone);

Page 34: IoT with Vaadin Elements

How?

Imports

my-component.html<link rel="stylesheet" href="css/style.css"> <script src="js/script.js">

Page 35: IoT with Vaadin Elements

How?

Imports

index.html<link rel="import" href="my-component.html">

my-component.html<link rel="stylesheet" href="css/style.css"> <script src="js/script.js">

Page 36: IoT with Vaadin Elements

Why?

Page 37: IoT with Vaadin Elements

Why?

Page 38: IoT with Vaadin Elements

Why?

Page 39: IoT with Vaadin Elements

Why?

Page 40: IoT with Vaadin Elements

Why?

Page 41: IoT with Vaadin Elements

Browser Support

When?

Page 42: IoT with Vaadin Elements

“Things have changed”

Page 43: IoT with Vaadin Elements

“Things have changed”are changing

Page 44: IoT with Vaadin Elements

Custom Element

HTML Template

Shadow DOM

HTML Import

CHROME OPERA FIREFOX SAFARI IE

Native Browser Support

Page 45: IoT with Vaadin Elements

Browser Support with Polyfills

Page 46: IoT with Vaadin Elements

Polyfill

Framework

Set of ComponentsPolymer

Page 47: IoT with Vaadin Elements

<dom-module id="my-counter">

<template> <style> /*...*/ </style> <div id="label"><content></content></div> Value: <span id="counterVal">{{counter}}</span><br> <button on-tap="{{increment}}">Increment</button> </template>

<script> … </script>

</dom-module>

Page 48: IoT with Vaadin Elements

Polymer({ is: 'my-counter',

properties: { counter: { type: Integer, value: 0, // Default value } counterChanged: function() { this.$.counterVal.classList.add('highlight'); }, increment: function() { this.counter++; } });

Page 49: IoT with Vaadin Elements
Page 50: IoT with Vaadin Elements

What does Vaadin have to do with Web Components?

Page 51: IoT with Vaadin Elements

We add one more element…

Page 52: IoT with Vaadin Elements

… in fact many Elements

We add one more element…

Vaadin

Page 53: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

IDE Support

Mature language

Extensive tooling

Third-party libraries

Component based UI

Enterprise-grade

quality & performance

Rich selection

Page 54: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

IDE Support

Mature language

Extensive tooling

Third-party libraries

Component based UI

Enterprise-grade

quality & performance

Rich selection

Page 55: IoT with Vaadin Elements

Server-side

Java

Rich Set of

UI Components

IDE Support

Mature language

Extensive tooling

Third-party libraries

Component based UI

Enterprise-grade

quality & performance

Rich selection

Page 56: IoT with Vaadin Elements

Let me show you…

Page 57: IoT with Vaadin Elements

github.com/jtreml/home-command


Related Documents