IoT with Vaadin Elements
-
Upload
juergen-treml -
Category
Software
-
view
387 -
download
0
Transcript of IoT with Vaadin Elements
Vaadin ElementsIoT with
Jürgen Treml, Key Account Manager [email protected], @juergentreml
Server-side
Java
Rich Set of
UI Components
IDE Support
Mature language
Extensive tooling
Third-party libraries
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
Client-side only?
High-latency network
Offline capability
Millions of concurrent users
Team knowledge
Not long ago:
You’re screwed
div > div > div
Conflicting selectors
Lack of tooling
Language features
Not long ago:
You’re screwed
div > div > div
Conflicting selectors
Lack of tooling
Language features
Not long ago:
You’re screwed
div > div > div
Conflicting selectors
Lack of tooling
Language features
Not long ago:
You’re screwed
div > div > div
Conflicting selectors
Lack of tooling
Language features
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
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
Lack of tooling
Language features
Selector conflicts
Lack of semantics
Things have changed:
You’ll be just fine
Lack of tooling
Language features
Selector conflicts
Lack of semantics
:-):-)
:-):-)
Things have changed:
You’ll be just fine
How?
Templates
<template id="tmp"> <style> ... </style> <div> <h1>Web Components</h1> <img src="logo.svg"> </div> </template>
How?
Templates
var tmp = document.querySelector(‘#tmp');
var clone = document.importNode(tmp.content, true);
var host = document.querySelector(‘#host');
host.appendChild(clone);
How?
Imports
my-component.html<link rel="stylesheet" href="css/style.css"> <script src="js/script.js">
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">
Custom Element
HTML Template
Shadow DOM
HTML Import
CHROME OPERA FIREFOX SAFARI IE
Native Browser Support
<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>
Polymer({ is: 'my-counter',
properties: { counter: { type: Integer, value: 0, // Default value } counterChanged: function() { this.$.counterVal.classList.add('highlight'); }, increment: function() { this.counter++; } });
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
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
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
vaadin.com/elements
@juergentreml
vaadin.com/elements
@juergentreml ?