SlideShare a Scribd company logo
G O I N G W E B N AT I V E
T H E E X C I T I N G F U T U R E O F T H E W E B
@ M A R C U S H E L L B E R G
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
Source: comScore 2016 report
0
3
6
9
12
# Visitors (MM)
Native apps Mobile web
Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
Source: comScore 2016 report
0
3
6
9
12
# Visitors (MM)
3x
Native apps Mobile web
Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
Source: comScore 2016 report
0
3
6
9
12
# Visitors (MM)
0
50
100
150
200
Minutes
3x 20x
Native apps Mobile web
Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
🤔
EXPECTATION REALITY
A P P I N S TA L L S / M O N T H :
A P P I N S TA L L S / M O N T H :
0
While we haven’t yet reached ‘Peak App’ the market
is definitely tightening, and app publishers need to
rethink how to break through to the consumer’s
screen.
comScore 2016 US Mobile App report
comscore.com/Insights/Presentations-and-Whitepapers/2016/The-2016-US-Mobile-App-Report
gartner.com/smarterwithgartner/gartner-predicts-2017-marketers-expect-the-unexpected
GARTNER: 20% WILL ABANDON THEIR
MOBILE APPS BY 2019
Despite significant investment and hopes for positive ROI,
mobile applications are not paying off for many
brands.
Compelling alternatives such as progressive web apps
mean the branded app economy is poised for change.
gartner.com/smarterwithgartner/gartner-predicts-2017-marketers-expect-the-unexpected
GARTNER: 20% WILL ABANDON THEIR
MOBILE APPS BY 2019
T H E P R O B L E M I S F R I C T I O N
T H E P R O B L E M I S F R I C T I O N
(Fs = μs + N)
xkcd.com/1367
MAIN ISSUES:
4No component model
No application model
Limited hardware access
Performance and reliability
class MyComponent extends HTMLElement {
constructor() {
super();
}
connectedCallback() { }
disconnectedCallback() { }
}
customElements.define('my-component', MyComponent);
class MyComponent extends HTMLElement {
constructor() {
super();
}
connectedCallback() { }
disconnectedCallback() { }
}
customElements.define('my-component', MyComponent);
class MyComponent extends HTMLElement {
constructor() {
super();
}
connectedCallback() { }
disconnectedCallback() { }
}
customElements.define('my-component', MyComponent);
class MyComponent extends HTMLElement {
constructor() {
super();
const root = this.attachShadow({ mode: 'open' });
root.innerHTML = 'Hey there!';
}
connectedCallback() { }
disconnectedCallback() { }
}
customElements.define('my-component', MyComponent);
M I S S I N G : A P P L I C AT I O N M O D E L
Progressive Web Apps!
PROGRESSIVE WEB APPS!
Progressive Web Apps!
PROGRESSIVE WEB APPS!
{
"name": "Todo App",
"icons": [{
"src": "todo.png",
"sizes": "192x192",
"type": "image/png"
}],
"start_url": "/index.html",
"display": "standalone",
"orientation": "portrait"
}
https://developer.mozilla.org/en-US/docs/Web/Manifest
W E B A P P M A N I F E S T
<head>
...
<link rel="manifest" href="/manifest.json">
</head>

S E R V I C E W O R K E R
if ('serviceWorker' in navigator) {
}
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js');
});
}
self.addEventListener('fetch', event => {
});
/sw.js
self.addEventListener('fetch', event => {
event.respondWith(
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
return response;
}
return fetch(event.request);
}
)
);
});
self.addEventListener('push', event => {
});
/sw.js
self.addEventListener('push', event => {
const title = 'A thing happened!';
const options = {
body: 'Very exciting.',
icon: 'images/icon.png',
badge: 'images/badge.png'
};
});
/sw.js
self.addEventListener('push', event => {
const title = 'A thing happened!';
const options = {
body: 'Very exciting.',
icon: 'images/icon.png',
badge: 'images/badge.png'
};
event.waitUntil(self.registration
.showNotification(title, options));
});
/sw.js
Your t-shirt order has shipped. Track it here.
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
Vaadin Store
PERFORMANCE & HARDWARE
20 00
50
04 7e
42 01
05
20 00
20 00
42 01
7d
10 00
7e
0b
20 00
50
04 7e
42 01
05
20 00
20 00
42 01
7d
10 00
7e
0b
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
https://v8project.blogspot.com/2016/08/firing-up-ignition-interpreter.html
Payment Request
Credential Management
WebGL
WebVR
StorageQuota
Bluetooth
https://developer.mozilla.org/en-US/docs/WebAPI
Contacts API
Proximity
...
Web Components
Web Components
Progressive Web Apps
Web Components
Progressive Web Apps
Web Assembly
Web Components
Progressive Web Apps
Web Assembly+
Web Components
Progressive Web Apps
Web Assembly
WEB NATIVE APPS
+
😅
I’ve found it’s been a better long-term
investment for me to learn the Web Platform
than any particular library, framework or tool
– Paul Lewis
”
TOOLS
Polymer
Ɂ ɂ ɚ Ƀ
WEB COMPONENTS
PROGRESSIVE WEB APPS
WEB ASSEMBLY
BROWSER OPERATING SYSTEM
FIGHT FOR SIMPLICITY
FIGHT FOR SIMPLICITY
vaadin.com/elements
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
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
T H A N K Y O U
@ M A R C U S H E L L B E R G
# U S E T H E P L AT F O R M

More Related Content

Similar to Going web native

From desktop to the cloud, cutting costs with Virtual kubelet and ACI
From desktop to the cloud, cutting costs with Virtual kubelet and ACIFrom desktop to the cloud, cutting costs with Virtual kubelet and ACI
From desktop to the cloud, cutting costs with Virtual kubelet and ACI
Adi Polak
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
Jason Grigsby
 
UX/UI portfolio
UX/UI portfolioUX/UI portfolio
UX/UI portfolio
Szymon Węsierski
 
12 top app testing tools
12 top app testing tools12 top app testing tools
12 top app testing tools
Gabirel Machuret
 
Open infotech : Outsourcing Mobile App Development
Open infotech : Outsourcing Mobile App DevelopmentOpen infotech : Outsourcing Mobile App Development
Open infotech : Outsourcing Mobile App Development
Vikram Ghadge
 
Progressive Web Apps: The Breakdown
Progressive Web Apps: The BreakdownProgressive Web Apps: The Breakdown
Progressive Web Apps: The Breakdown
UXDXConf
 
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile PresenceGo for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Magic Software
 
JAKT Portfolio
JAKT PortfolioJAKT Portfolio
JAKT Portfolio
Anthony Tumbiolo
 
B s t profile
B s t profileB s t profile
Panacea Infotech Pvt. Ltd. Company Presentation
Panacea Infotech Pvt. Ltd. Company PresentationPanacea Infotech Pvt. Ltd. Company Presentation
Panacea Infotech Pvt. Ltd. Company Presentation
Vivek Ghai
 
User Experience for Product Managers
User Experience for Product Managers User Experience for Product Managers
User Experience for Product Managers
Michael Ong
 
TrenDigi_Service_Solutions_2014
TrenDigi_Service_Solutions_2014TrenDigi_Service_Solutions_2014
TrenDigi_Service_Solutions_2014
Kevin Huang
 
Mobile Strategy 101
Mobile Strategy 101Mobile Strategy 101
Mobile Strategy 101
Rangga Wiseno
 
How to successfully build a Flutter web app?
How to successfully build a Flutter web app?How to successfully build a Flutter web app?
How to successfully build a Flutter web app?
Rahul singh
 
Corporate innovation - Building an MVP
Corporate innovation - Building an MVPCorporate innovation - Building an MVP
Corporate innovation - Building an MVP
Christian Bolz
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
Jason Grigsby
 
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
Dana Gardner
 
Catching up on UX
Catching up on UXCatching up on UX
Catching up on UX
Ryo Sampei
 
Enterprise mobility services
Enterprise mobility servicesEnterprise mobility services
Enterprise mobility services
Net Solutions
 
Best Practices for API Adoption
Best Practices for API AdoptionBest Practices for API Adoption
Best Practices for API Adoption
AnyPresence
 

Similar to Going web native (20)

From desktop to the cloud, cutting costs with Virtual kubelet and ACI
From desktop to the cloud, cutting costs with Virtual kubelet and ACIFrom desktop to the cloud, cutting costs with Virtual kubelet and ACI
From desktop to the cloud, cutting costs with Virtual kubelet and ACI
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
UX/UI portfolio
UX/UI portfolioUX/UI portfolio
UX/UI portfolio
 
12 top app testing tools
12 top app testing tools12 top app testing tools
12 top app testing tools
 
Open infotech : Outsourcing Mobile App Development
Open infotech : Outsourcing Mobile App DevelopmentOpen infotech : Outsourcing Mobile App Development
Open infotech : Outsourcing Mobile App Development
 
Progressive Web Apps: The Breakdown
Progressive Web Apps: The BreakdownProgressive Web Apps: The Breakdown
Progressive Web Apps: The Breakdown
 
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile PresenceGo for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
 
JAKT Portfolio
JAKT PortfolioJAKT Portfolio
JAKT Portfolio
 
B s t profile
B s t profileB s t profile
B s t profile
 
Panacea Infotech Pvt. Ltd. Company Presentation
Panacea Infotech Pvt. Ltd. Company PresentationPanacea Infotech Pvt. Ltd. Company Presentation
Panacea Infotech Pvt. Ltd. Company Presentation
 
User Experience for Product Managers
User Experience for Product Managers User Experience for Product Managers
User Experience for Product Managers
 
TrenDigi_Service_Solutions_2014
TrenDigi_Service_Solutions_2014TrenDigi_Service_Solutions_2014
TrenDigi_Service_Solutions_2014
 
Mobile Strategy 101
Mobile Strategy 101Mobile Strategy 101
Mobile Strategy 101
 
How to successfully build a Flutter web app?
How to successfully build a Flutter web app?How to successfully build a Flutter web app?
How to successfully build a Flutter web app?
 
Corporate innovation - Building an MVP
Corporate innovation - Building an MVPCorporate innovation - Building an MVP
Corporate innovation - Building an MVP
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
Kony Visualizer Puts Mobile Apps Features Control in Hands of Those Closest t...
 
Catching up on UX
Catching up on UXCatching up on UX
Catching up on UX
 
Enterprise mobility services
Enterprise mobility servicesEnterprise mobility services
Enterprise mobility services
 
Best Practices for API Adoption
Best Practices for API AdoptionBest Practices for API Adoption
Best Practices for API Adoption
 

More from Marcus Hellberg

Building performant web apps
Building performant web appsBuilding performant web apps
Building performant web apps
Marcus Hellberg
 
Building web apps with vaadin 10
Building web apps with vaadin 10Building web apps with vaadin 10
Building web apps with vaadin 10
Marcus Hellberg
 
Building web apps with Vaadin 8
Building web apps with Vaadin 8 Building web apps with Vaadin 8
Building web apps with Vaadin 8
Marcus Hellberg
 
Progressive web apps with polymer
Progressive web apps with polymerProgressive web apps with polymer
Progressive web apps with polymer
Marcus Hellberg
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
Marcus Hellberg
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
Marcus Hellberg
 
Vaadin NYC Meetup
Vaadin NYC MeetupVaadin NYC Meetup
Vaadin NYC Meetup
Marcus Hellberg
 

More from Marcus Hellberg (7)

Building performant web apps
Building performant web appsBuilding performant web apps
Building performant web apps
 
Building web apps with vaadin 10
Building web apps with vaadin 10Building web apps with vaadin 10
Building web apps with vaadin 10
 
Building web apps with Vaadin 8
Building web apps with Vaadin 8 Building web apps with Vaadin 8
Building web apps with Vaadin 8
 
Progressive web apps with polymer
Progressive web apps with polymerProgressive web apps with polymer
Progressive web apps with polymer
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Vaadin NYC Meetup
Vaadin NYC MeetupVaadin NYC Meetup
Vaadin NYC Meetup
 

Recently uploaded

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 

Recently uploaded (20)

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 

Going web native

  • 1. G O I N G W E B N AT I V E T H E E X C I T I N G F U T U R E O F T H E W E B @ M A R C U S H E L L B E R G 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
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Source: comScore 2016 report 0 3 6 9 12 # Visitors (MM) Native apps Mobile web Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
  • 7. Source: comScore 2016 report 0 3 6 9 12 # Visitors (MM) 3x Native apps Mobile web Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
  • 8. Source: comScore 2016 report 0 3 6 9 12 # Visitors (MM) 0 50 100 150 200 Minutes 3x 20x Native apps Mobile web Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
  • 11.
  • 12.
  • 13. A P P I N S TA L L S / M O N T H :
  • 14. A P P I N S TA L L S / M O N T H : 0
  • 15. While we haven’t yet reached ‘Peak App’ the market is definitely tightening, and app publishers need to rethink how to break through to the consumer’s screen. comScore 2016 US Mobile App report comscore.com/Insights/Presentations-and-Whitepapers/2016/The-2016-US-Mobile-App-Report
  • 17. Despite significant investment and hopes for positive ROI, mobile applications are not paying off for many brands. Compelling alternatives such as progressive web apps mean the branded app economy is poised for change. gartner.com/smarterwithgartner/gartner-predicts-2017-marketers-expect-the-unexpected GARTNER: 20% WILL ABANDON THEIR MOBILE APPS BY 2019
  • 18. T H E P R O B L E M I S F R I C T I O N
  • 19. T H E P R O B L E M I S F R I C T I O N (Fs = μs + N)
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. MAIN ISSUES: 4No component model No application model Limited hardware access Performance and reliability
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. class MyComponent extends HTMLElement { constructor() { super(); } connectedCallback() { } disconnectedCallback() { } } customElements.define('my-component', MyComponent);
  • 34. class MyComponent extends HTMLElement { constructor() { super(); } connectedCallback() { } disconnectedCallback() { } } customElements.define('my-component', MyComponent);
  • 35. class MyComponent extends HTMLElement { constructor() { super(); } connectedCallback() { } disconnectedCallback() { } } customElements.define('my-component', MyComponent);
  • 36. class MyComponent extends HTMLElement { constructor() { super(); const root = this.attachShadow({ mode: 'open' }); root.innerHTML = 'Hey there!'; } connectedCallback() { } disconnectedCallback() { } } customElements.define('my-component', MyComponent);
  • 37.
  • 38.
  • 39. M I S S I N G : A P P L I C AT I O N M O D E L
  • 40.
  • 43.
  • 44.
  • 45.
  • 46. { "name": "Todo App", "icons": [{ "src": "todo.png", "sizes": "192x192", "type": "image/png" }], "start_url": "/index.html", "display": "standalone", "orientation": "portrait" } https://developer.mozilla.org/en-US/docs/Web/Manifest W E B A P P M A N I F E S T
  • 48.  S E R V I C E W O R K E R
  • 49. if ('serviceWorker' in navigator) { }
  • 50. if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js'); }); }
  • 52. self.addEventListener('fetch', event => { event.respondWith( ); });
  • 53. self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) ); });
  • 54. self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) .then(response => { if (response) { return response; } return fetch(event.request); } ) ); });
  • 56. self.addEventListener('push', event => { const title = 'A thing happened!'; const options = { body: 'Very exciting.', icon: 'images/icon.png', badge: 'images/badge.png' }; }); /sw.js
  • 57. self.addEventListener('push', event => { const title = 'A thing happened!'; const options = { body: 'Very exciting.', icon: 'images/icon.png', badge: 'images/badge.png' }; event.waitUntil(self.registration .showNotification(title, options)); }); /sw.js
  • 58.
  • 59. Your t-shirt order has shipped. Track it here. 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 Vaadin Store
  • 60.
  • 61.
  • 62.
  • 63.
  • 65. 20 00 50 04 7e 42 01 05 20 00 20 00 42 01 7d 10 00 7e 0b
  • 66. 20 00 50 04 7e 42 01 05 20 00 20 00 42 01 7d 10 00 7e 0b int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n-1); } }
  • 68.
  • 70.
  • 73. Web Components Progressive Web Apps Web Assembly
  • 74. Web Components Progressive Web Apps Web Assembly+
  • 75. Web Components Progressive Web Apps Web Assembly WEB NATIVE APPS +
  • 76. 😅
  • 77. I’ve found it’s been a better long-term investment for me to learn the Web Platform than any particular library, framework or tool – Paul Lewis ”
  • 78. TOOLS
  • 80.
  • 81.
  • 82.
  • 83.
  • 84. Ɂ ɂ ɚ Ƀ WEB COMPONENTS PROGRESSIVE WEB APPS WEB ASSEMBLY
  • 85.
  • 86.
  • 88.
  • 89.
  • 90.
  • 93.
  • 95. 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
  • 96. 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 T H A N K Y O U @ M A R C U S H E L L B E R G # U S E T H E P L AT F O R M