Building an Appier Web - London Web Standards - Nov 2016

Andy Davies
Andy DaviesIndependent Web Performance Consultant at Asteno
Building an Appier Web
@AndyDavies NCC Group Nov 2016
https://www.flickr.com/photos/alesimages/4215559895
We’re spending more and more time in apps…
© comScore, Inc. Propri
Digital media usage time is exploding right now, and it’s
predominantly being driven by mobile apps.
476,553 480,967 550,522
409,847
621,410
778,95477,081
97,440
118,299
0
200,000
400,000
600,000
800,000
1,000,000
1,200,000
1,400,000
1,600,000
Jun-2013 Jun-2014 Jun-2015
TotalMinutes(MM)
Desktop Mobile App Mobile Browser Over the past
years, total dig
media usage h
grown 49% wit
mobile apps ha
grown 90% an
contributing to
of the total incr
in time spent.
Mobile browse
also seeing ve
strong growth
53% and even
desktop is still
rising.
Growth in Digital Media Time Spent
Source: comScore Media Metrix Multi-Platform & Mobile Metrix, U.S., Total Audience
+53%
vs. 2013
+90%
vs. 2013
+16%
vs. 2013
© comScore, Inc. Prop
29%
15%
11%
6%
6%
4%
3%
3%
23%
Social Networking
Radio
Games
Multimedia
Instant Messengers
Music
Retail
News/Information
All Others
Social Networ
Radio and Ga
contribute mo
than half of to
time spent on
mobile apps.
strength of the
categories
highlights that
mobile device
more heavily
for entertainm
and communi
than their des
counterparts.
Share of Mobile App Time Spent
Source: comScore Media Metrix MP and Mobile Metrix, U.S., Total Audience, June 2015
Social media and entertainment account for the six top app
categories and drive two-thirds of total time spent on apps.But our usage can be very specific
What do we like about apps?
https://www.flickr.com/photos/jennicatpink/819741953
Launch from home screen
Splash screen on startup
A simple app…
(App reads data from
a monitoring API)
Works offline too
Works offline too
(Cached data, so
may be out of date)
Apps have their challenges too
https://www.flickr.com/photos/justinjovellanos/15340862812
“There’s an App for that”…
…but can you can find it?
To help we started with subtle buttons…
but that wasn’t enough…
“Please, please download our app”
“Download our app or else!”
Updates, updates and more updates…
https://www.flickr.com/photos/michigancommunities/4614847059
Installing apps consumes storage and data
https://www.flickr.com/photos/piper/6199548216
So what about the web?
© comScore, Inc. Pro
And mobile audience growth is being driven more by mobile we
properties, which are actually bigger and growing faster than ap
A comparison
Top 1000 App
the Top 1000
Web Propertie
shows a surp
result. Not on
mobile web
properties ha
audiences tha
more than 2.5
size, but thes
audiences are
growing twice
fast.
Average Monthly Audience: Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties
Source: comScore Mobile Metrix, U.S., Age 18+
-
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
9,000
10,000
Jun-2014 Sep-2014 Dec-2014 Mar-2015 Jun-2015
UniqueVisitors(000)
Apps Mobile Web +42%
y/y
+21%
y/y
The web has great reach…
and it’s due to the simple power of the URL
http://example.com
https://www.flickr.com/photos/aaronpk/5352508316
Makes the web linkable…
…indexable, searchable
And shareable
https://www.flickr.com/photos/thomashawk/8598744061
Web pages adapt to our diversity of devices
http://www.flickr.com/photos/adactio/12674230513
https://www.flickr.com/photos/protohiro/5769980863
And there are no gatekeepers
Or waiting for updates
https://www.flickr.com/photos/star-bellied-girl/8283340977
What if…
We could combine the richness of apps…
…with the low friction of the web?
https://www.flickr.com/photos/zedzap/13253676614
So what might we need to build it?
https://www.flickr.com/photos/aigle_dore/7912377858
We can already add pages to our home screen
Supported by most major mobile
operating systems and browsers



(Bookmarks page rather than site)
Can specify the icon etc. via meta tags
<link rel="apple-touch-icon" href="icons/logo/ncc-logo-120x120-ios.png">
<link rel="apple-touch-icon-precomposed" href="icons/logo/ncc-logo-120x120-ios.png">
<link rel="apple-touch-startup-image" href="/images/startup.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
(Minimal iOS set, ideally need more icon and splash screen sizes
and other mobile browsers prefer different meta data)
W3C App Manifest brings it all together
{
"lang": "en",
"dir": "ltr",
"name": "Monitoring",
"description": "Performance and Availability Monitoring by NCC Group",
"short_name": "Monitoring",
"icons": [
{
"src": "icons/logo/ncc-logo-144x144-white.png",
"sizes": "144x144",
"type": "image/png"
},
. . .
],
"scope": "/pwa",
"start_url": "/pwa/index.html",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#c41230",
"background_color": "#fff",
}
https://www.w3.org/TR/appmanifest/
Homescreen Icon
{
"lang": "en",
"dir": "ltr",
"name": "Monitoring",
"description": "Performance and Availability Monitoring by NCC Group",
"short_name": "Monitoring",
"icons": [
{
"src": "icons/logo/ncc-logo-144x144-white.png",
"sizes": "144x144",
"type": "image/png"
},
. . .
],
"scope": "/pwa",
"start_url": "/pwa/index.html",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#c41230",
"background_color": "#fff",
}
URL of the page that’s launched
{
"lang": "en",
"dir": "ltr",
"name": "Monitoring",
"description": "Performance and Availability Monitoring by NCC Group",
"short_name": "Monitoring",
"icons": [
{
"src": "icons/logo/ncc-logo-144x144-white.png",
"sizes": "144x144",
"type": "image/png"
},
. . .
],
"scope": "/pwa",
"start_url": "/pwa/index.html",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#c41230",
"background_color": "#fff",
}
Splash screen
{
"lang": "en",
"dir": "ltr",
"name": "Monitoring",
"description": "Performance and Availability Monitoring by NCC Group",
"short_name": "Monitoring",
"icons": [
{
"src": "icons/logo/ncc-logo-144x144-white.png",
"sizes": "144x144",
"type": "image/png"
},
. . .
],
"scope": "/pwa",
"start_url": "/pwa/index.html",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#c41230",
"background_color": "#fff",
}
Orientation and presence of browser controls
{
"lang": "en",
"dir": "ltr",
"name": "Monitoring",
"description": "Performance and Availability Monitoring by NCC Group",
"short_name": "Monitoring",
"icons": [
{
"src": "icons/logo/ncc-logo-144x144-white.png",
"sizes": "144x144",
"type": "image/png"
},
. . .
],
"scope": "/pwa",
"start_url": "/pwa/index.html",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#c41230",
"background_color": "#fff",
}
And can even offer an install prompt
(Browsers use several heuristics before deciding to prompt)
Can listen for install event and track in analytics
window.addEventListener('beforeinstallprompt', function(e) {
e.userChoice.then(function(choiceResult) {
console.log(choiceResult.outcome);
if (choiceResult.outcome == 'dismissed') {
// Track not installed
} else {
// Track installation
}
});
});
(Chrome supports this but it’s not in AppManifest standard)
Can listen for install event and track in analytics
window.addEventListener('appinstalled', function(e) {
// Track installation
});
(AppManifest standard proposes this)
But how do we cope with a poor (or no) network?
https://www.flickr.com/photos/odaeus/3942500793
http://alistapart.com/article/application-cache-is-a-douchebag
Our first attempt had a few issues…
https://www.w3.org/TR/service-workers/
So we tried another approach
Building an Appier Web -  London Web Standards - Nov 2016
Service Worker is an in-browser network proxy
that can intercept requests and responses
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('serviceworker.js', {
scope: '/'
}).then(function(registration) {
// Anything else you want to do with registration
// e.g. subscribe to push messages
}).catch(function(err) {
console.log('Can't register service worker: ', err);
});
}
</script>
Register a Service Worker
Option to install via Link may be coming
<link rel="serviceworker" scope="/" href=“/serviceworker.js">
or
Link </serviceworker.js>; rel=serviceworker scope=/
(Origin trial in Chrome, under consideration in Firefox)
Service Worker Skeleton
self.addEventListener('install', function(event) {
self.skipWaiting();
});
self.addEventListener('activate', function(event) {
});
self.addEventListener('fetch', function(event) {
});
What are apps actually made of?
Shell Content
Many apps are made of a shell and the content
Going offline - caching assets on startup
var cacheVersion = "v1";
var cacheResources = [
"/pwa/index.html",
"/pwa/icons/logo/ncc-logo.svg",
"/pwa/icons/ui/sprite.svg"
// etc
];
self.addEventListener('install', function(event) {
self.skipWaiting();
event.waitUntil(
caches.open(cacheVersion).then(function(cache) {
return cache.addAll(cacheResources);
})
);
Going offline - retrieving from cache on fetch
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request);
})
);
});
Try the cache first and go to the
network if there’s no match
Going offline - cleanup previous resources
self.addEventListener('activate', function(event) {
// Remove outdated caches, migrate data etc,
});
Caching as a fallback for network
• Make a request
• Succeeds - cache response and return it
• Fails - check cache and return cached response
• Network request fails and not in cache ¯_( )_/¯
(OK so you probably want to manage the users experience in the last case)
Caching patterns depend on use case, some very helpful resources
Mozilla https://serviceworke.rs/
Jake Archibald https://jakearchibald.com/2014/offline-cookbook/
ServiceWork Toolbox https://github.com/GoogleChrome/sw-toolbox
Service Worker also enables other features
https://www.w3.org/TR/push-api/
Push Notifications
When put together…
When put together…
(App reads data from
a monitoring API)
When put together…
When put together…
(Cached data, so
may be out of date)
When put together…
Powerful APIs (inc Service Worker) require HTTPS
https://www.flickr.com/photos/zebble/6080622
“The future is here, it’s just unevenly distributed”
✓ ✓ ✓ WiP ?✓
We’re getting better access to native features
• Camera
• Notifications
• Location
• Geofencing
• Alarms
• Vibration
• Sharing
• Battery
• and more…
(On some platforms)
background sync
https://wicg.github.io/BackgroundSync/spec/
Background Sync (draft)
Easier payment mechanisms
https://www.w3.org/TR/payment-request/
https://www.flickr.com/photos/acearchie/4369849179
“So how do we test this thing?”
Chrome DevTools
https://github.com/GoogleChrome/lighthouse
Lighthouse
https://speedcurve.com/blog/pwa-performance/
WebPageTest
WebPageTest
You can deploy them today
• 3x more time spent on site
• 40% higher re-engagement rate
• 70% greater conversion rate for
those arriving via Homescreen
• 3x lower data usage
https://flights.airberlin.com/en-US/progressive-web-app
AirBerlin demo at Google I/O
My current favourite…
Doesn’t support notifications yet…
…hopefully will do soon
These apps aren’t packaged and deployed through stores,
they’re just websites that took all the right vitamins
https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/
Alex Russell, Google
I still have questions…
• What might not be suitable as a progressive web app?
• Can we build PWAs that are as fast and frictionless as native?
• How can we sell our apps, will we need app stores?
• How do we avoid an uncanny UI valley?
• What happens to storage when every site is a PWA?
“Every step on the path to a PWA makes sense on it’s own”
Jason Grigsby
http://www.flickr.com/photos/auntiep/5024494612
@AndyDavies
andy.davies@nccgroup.trust
http://slideshare.net/andydavies
1 of 78

Recommended

The Case for HTTP/2 - GreeceJS - June 2016 by
The Case for HTTP/2 -  GreeceJS - June 2016The Case for HTTP/2 -  GreeceJS - June 2016
The Case for HTTP/2 - GreeceJS - June 2016Andy Davies
891 views94 slides
Building an Appier Web - May 2016 by
Building an Appier Web - May 2016Building an Appier Web - May 2016
Building an Appier Web - May 2016Andy Davies
980 views64 slides
The Fast, The Slow and The Unconverted - Emerce Conversion 2016 by
The Fast, The Slow and The Unconverted -  Emerce Conversion 2016The Fast, The Slow and The Unconverted -  Emerce Conversion 2016
The Fast, The Slow and The Unconverted - Emerce Conversion 2016Andy Davies
1.3K views46 slides
Webcamp fastandbeautiful by
Webcamp fastandbeautifulWebcamp fastandbeautiful
Webcamp fastandbeautifulDoug Sillars
57 views92 slides
Hackference by
HackferenceHackference
HackferenceDoug Sillars
587 views85 slides
Devfest Siberia Fast and Beautiful Images and Video by
Devfest Siberia Fast and Beautiful Images and VideoDevfest Siberia Fast and Beautiful Images and Video
Devfest Siberia Fast and Beautiful Images and VideoDoug Sillars
330 views125 slides

More Related Content

What's hot

Perf ug fastandbeautiful by
Perf ug fastandbeautifulPerf ug fastandbeautiful
Perf ug fastandbeautifulDoug Sillars
162 views123 slides
Dublin Tech Talks by
Dublin Tech TalksDublin Tech Talks
Dublin Tech TalksDoug Sillars
236 views74 slides
Parisjs fastvideoandimages by
Parisjs fastvideoandimagesParisjs fastvideoandimages
Parisjs fastvideoandimagesDoug Sillars
301 views107 slides
Mobile era fastandbeautiful by
Mobile era fastandbeautifulMobile era fastandbeautiful
Mobile era fastandbeautifulDoug Sillars
414 views121 slides
Why Progressive Web Apps will transform your website by
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteJason Grigsby
684 views85 slides
Progressive Web Apps for Education by
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for EducationChris Love
388 views60 slides

What's hot(20)

Perf ug fastandbeautiful by Doug Sillars
Perf ug fastandbeautifulPerf ug fastandbeautiful
Perf ug fastandbeautiful
Doug Sillars162 views
Parisjs fastvideoandimages by Doug Sillars
Parisjs fastvideoandimagesParisjs fastvideoandimages
Parisjs fastvideoandimages
Doug Sillars301 views
Mobile era fastandbeautiful by Doug Sillars
Mobile era fastandbeautifulMobile era fastandbeautiful
Mobile era fastandbeautiful
Doug Sillars414 views
Why Progressive Web Apps will transform your website by Jason Grigsby
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your website
Jason Grigsby684 views
Progressive Web Apps for Education by Chris Love
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for Education
Chris Love388 views
Speed is Essential for a Great Web Experience by Andy Davies
Speed is Essential for a Great Web ExperienceSpeed is Essential for a Great Web Experience
Speed is Essential for a Great Web Experience
Andy Davies21.1K views
Bordeaux js fastandbeautiful by Doug Sillars
Bordeaux js fastandbeautifulBordeaux js fastandbeautiful
Bordeaux js fastandbeautiful
Doug Sillars223 views
Imagesandvideo voxxeddays by Doug Sillars
Imagesandvideo voxxeddaysImagesandvideo voxxeddays
Imagesandvideo voxxeddays
Doug Sillars287 views
Web Performance Optimierung - DWX13 by Walter Ebert
Web Performance Optimierung - DWX13Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13
Walter Ebert7.9K views
Fast Fashion… How Missguided revolutionised their approach to site performanc... by Andy Davies
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...
Andy Davies20.5K views
Responsive images are here. Now what? by Jason Grigsby
Responsive images are here. Now what?Responsive images are here. Now what?
Responsive images are here. Now what?
Jason Grigsby955 views
Responsive Images and Video by Jason Grigsby
Responsive Images and VideoResponsive Images and Video
Responsive Images and Video
Jason Grigsby6.2K views
Its timetostopstalling barcelonajs by Doug Sillars
Its timetostopstalling barcelonajsIts timetostopstalling barcelonajs
Its timetostopstalling barcelonajs
Doug Sillars66 views
Adaptive Input — Breaking Development Conference, San Diego by Jason Grigsby
Adaptive Input — Breaking Development Conference, San DiegoAdaptive Input — Breaking Development Conference, San Diego
Adaptive Input — Breaking Development Conference, San Diego
Jason Grigsby2.5K views
Fast Fashion… How Missguided revolutionised their approach to site performanc... by Andy Davies
Fast Fashion… How Missguided revolutionised their approach to site performanc...Fast Fashion… How Missguided revolutionised their approach to site performanc...
Fast Fashion… How Missguided revolutionised their approach to site performanc...
Andy Davies1K views
PyconUK: Fast and Beautiful Images by Doug Sillars
PyconUK: Fast and Beautiful ImagesPyconUK: Fast and Beautiful Images
PyconUK: Fast and Beautiful Images
Doug Sillars60 views
Planning Your Progressive Web App by Jason Grigsby
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
Jason Grigsby627 views
Fast and Beautiful Images: PyConWeb by Doug Sillars
Fast and Beautiful Images: PyConWebFast and Beautiful Images: PyConWeb
Fast and Beautiful Images: PyConWeb
Doug Sillars287 views
Web Apps and more by Yan Shi
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi1K views

Viewers also liked

Mobile Web Performance - Getting and Staying Fast by
Mobile Web Performance -  Getting and Staying FastMobile Web Performance -  Getting and Staying Fast
Mobile Web Performance - Getting and Staying FastAndy Davies
2.4K views64 slides
What does the browser pre-loader do? by
What does the browser pre-loader do?What does the browser pre-loader do?
What does the browser pre-loader do?Andy Davies
10.7K views58 slides
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0 by
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0Michael Zhang
2.8K views61 slides
Http/2 - What's it all about? by
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?Andy Davies
4.4K views57 slides
Performance Testing using Real Browsers with JMeter & Webdriver by
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
8.5K views15 slides
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It) by
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)Tammy Everts
22.7K views47 slides

Viewers also liked(8)

Mobile Web Performance - Getting and Staying Fast by Andy Davies
Mobile Web Performance -  Getting and Staying FastMobile Web Performance -  Getting and Staying Fast
Mobile Web Performance - Getting and Staying Fast
Andy Davies2.4K views
What does the browser pre-loader do? by Andy Davies
What does the browser pre-loader do?What does the browser pre-loader do?
What does the browser pre-loader do?
Andy Davies10.7K views
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0 by Michael Zhang
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0
Q con shanghai2013- 荣先乾-qzone_touch跨终端优化_v2.0
Michael Zhang2.8K views
Http/2 - What's it all about? by Andy Davies
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?
Andy Davies4.4K views
Performance Testing using Real Browsers with JMeter & Webdriver by BlazeMeter
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & Webdriver
BlazeMeter8.5K views
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It) by Tammy Everts
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
Tammy Everts22.7K views
Speed matters, So why is your site so slow? by Andy Davies
Speed matters, So why is your site so slow?Speed matters, So why is your site so slow?
Speed matters, So why is your site so slow?
Andy Davies44K views

Similar to Building an Appier Web - London Web Standards - Nov 2016

The Case for Progressive Web Apps by
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web AppsJason Grigsby
916 views183 slides
Basic Understanding of Progressive Web Apps by
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsAnjaliTanpure1
256 views60 slides
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence by
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 PresenceMagic Software
26 views15 slides
IRJET-Garbage Monitoring and Management using Internet of things by
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET Journal
26 views3 slides
From AMP to PWA by
From AMP to PWAFrom AMP to PWA
From AMP to PWAIdo Green
12.1K views62 slides
Service workers are your best friends by
Service workers are your best friendsService workers are your best friends
Service workers are your best friendsAntonio Peric-Mazar
330 views146 slides

Similar to Building an Appier Web - London Web Standards - Nov 2016(20)

The Case for Progressive Web Apps by Jason Grigsby
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web Apps
Jason Grigsby916 views
Basic Understanding of Progressive Web Apps by AnjaliTanpure1
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
AnjaliTanpure1256 views
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence by Magic Software
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 Software26 views
IRJET-Garbage Monitoring and Management using Internet of things by IRJET Journal
IRJET-Garbage Monitoring and Management using Internet of thingsIRJET-Garbage Monitoring and Management using Internet of things
IRJET-Garbage Monitoring and Management using Internet of things
IRJET Journal26 views
From AMP to PWA by Ido Green
From AMP to PWAFrom AMP to PWA
From AMP to PWA
Ido Green12.1K views
Cloud web applications: the new perspective of sproutcore by David Saitta
Cloud web applications: the new perspective of sproutcoreCloud web applications: the new perspective of sproutcore
Cloud web applications: the new perspective of sproutcore
David Saitta1.1K views
Andriy Vandakurov about "Frontend. Global domination" by Pivorak MeetUp
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination"
Pivorak MeetUp224 views
Progressive Web Apps - Intro & Learnings by Johannes Weber
Progressive Web Apps - Intro & LearningsProgressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & Learnings
Johannes Weber242 views
Building Mobile Optimized Websites by haxorize
Building Mobile Optimized WebsitesBuilding Mobile Optimized Websites
Building Mobile Optimized Websites
haxorize411 views
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares by rayvillares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
rayvillares662 views
Creating an Effective Mobile API by Nick DeNardis
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
Nick DeNardis2.6K views
Bootstrapping an App for Launch by Craig Phares
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
Craig Phares252 views
Make your PWA feel more like an app by Önder Ceylan
Make your PWA feel more like an appMake your PWA feel more like an app
Make your PWA feel more like an app
Önder Ceylan254 views
The web - What it has, what it lacks and where it must go - keynote at Riga D... by Robert Nyman
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...
Robert Nyman13.4K views
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ... by Robert Nyman
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
Robert Nyman13K views
API Reliability Guide by Nick DeNardis
API Reliability GuideAPI Reliability Guide
API Reliability Guide
Nick DeNardis3.4K views

More from Andy Davies

AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018 by
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018Andy Davies
1K views73 slides
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018 by
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018Andy Davies
3.3K views76 slides
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018 by
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Andy Davies
2.2K views32 slides
Selling Performance - Bristol WebPerf Meetup 2017-07-20 by
Selling Performance - Bristol WebPerf Meetup 2017-07-20Selling Performance - Bristol WebPerf Meetup 2017-07-20
Selling Performance - Bristol WebPerf Meetup 2017-07-20Andy Davies
1.6K views62 slides
Speed: The 'Forgotten' Conversion Factor by
Speed: The 'Forgotten' Conversion FactorSpeed: The 'Forgotten' Conversion Factor
Speed: The 'Forgotten' Conversion FactorAndy Davies
859 views46 slides
Building an Appier Web - Velocity Amsterdam 2016 by
Building an Appier Web - Velocity Amsterdam 2016Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016Andy Davies
985 views78 slides

More from Andy Davies(20)

AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018 by Andy Davies
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
Andy Davies1K views
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018 by Andy Davies
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
AB Testing, Ads and other 3rd party tags - SmashingConf London - 2018
Andy Davies3.3K views
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018 by Andy Davies
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Inspecting iOS App Traffic with JavaScript - JSOxford - Jan 2018
Andy Davies2.2K views
Selling Performance - Bristol WebPerf Meetup 2017-07-20 by Andy Davies
Selling Performance - Bristol WebPerf Meetup 2017-07-20Selling Performance - Bristol WebPerf Meetup 2017-07-20
Selling Performance - Bristol WebPerf Meetup 2017-07-20
Andy Davies1.6K views
Speed: The 'Forgotten' Conversion Factor by Andy Davies
Speed: The 'Forgotten' Conversion FactorSpeed: The 'Forgotten' Conversion Factor
Speed: The 'Forgotten' Conversion Factor
Andy Davies859 views
Building an Appier Web - Velocity Amsterdam 2016 by Andy Davies
Building an Appier Web - Velocity Amsterdam 2016Building an Appier Web - Velocity Amsterdam 2016
Building an Appier Web - Velocity Amsterdam 2016
Andy Davies985 views
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm by Andy Davies
The Case for HTTP/2  - Internetdagarna 2015 - StockholmThe Case for HTTP/2  - Internetdagarna 2015 - Stockholm
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
Andy Davies2.7K views
Making Mobile Sites Faster by Andy Davies
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster
Andy Davies23.3K views
The Case for HTTP/2 - EpicFEL Sept 2015 by Andy Davies
The Case for HTTP/2 - EpicFEL Sept 2015The Case for HTTP/2 - EpicFEL Sept 2015
The Case for HTTP/2 - EpicFEL Sept 2015
Andy Davies2K views
The Case for HTTP/2 by Andy Davies
The Case for HTTP/2The Case for HTTP/2
The Case for HTTP/2
Andy Davies3K views
HTTP2 is Here! by Andy Davies
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
Andy Davies5.1K views
Speed Matters! by Andy Davies
Speed Matters!Speed Matters!
Speed Matters!
Andy Davies1.8K views
The web is too slow by Andy Davies
The web is too slow The web is too slow
The web is too slow
Andy Davies15.2K views
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns? by Andy Davies
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Andy Davies2.3K views
EdgeConf - Page Load Performance Opening Talk by Andy Davies
EdgeConf - Page Load Performance Opening TalkEdgeConf - Page Load Performance Opening Talk
EdgeConf - Page Load Performance Opening Talk
Andy Davies4.1K views
Making Mobile Sites Faster by Andy Davies
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster
Andy Davies13.8K views
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns? by Andy Davies
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Andy Davies6.7K views
Web Performance Workshop - Velocity London 2013 by Andy Davies
Web Performance Workshop - Velocity London 2013Web Performance Workshop - Velocity London 2013
Web Performance Workshop - Velocity London 2013
Andy Davies15.8K views
Are Today’s Good Practices... Tomorrow’s Performance Anti-Patterns? by Andy Davies
Are Today’s Good Practices... Tomorrow’s Performance Anti-Patterns?Are Today’s Good Practices... Tomorrow’s Performance Anti-Patterns?
Are Today’s Good Practices... Tomorrow’s Performance Anti-Patterns?
Andy Davies3.5K views
Are Today's Good Practices… Tomorrow's Performance Anti-Patterns by Andy Davies
Are Today's Good Practices… Tomorrow's Performance Anti-PatternsAre Today's Good Practices… Tomorrow's Performance Anti-Patterns
Are Today's Good Practices… Tomorrow's Performance Anti-Patterns
Andy Davies3.1K views

Recently uploaded

The Power of Generative AI in Accelerating No Code Adoption.pdf by
The Power of Generative AI in Accelerating No Code Adoption.pdfThe Power of Generative AI in Accelerating No Code Adoption.pdf
The Power of Generative AI in Accelerating No Code Adoption.pdfSaeed Al Dhaheri
39 views18 slides
Measuring User on the web with the core web vitals - by @theafolayan.pptx by
Measuring User on the web with the core web vitals - by @theafolayan.pptxMeasuring User on the web with the core web vitals - by @theafolayan.pptx
Measuring User on the web with the core web vitals - by @theafolayan.pptxOluwaseun Raphael Afolayan
14 views13 slides
The Role of Patterns in the Era of Large Language Models by
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language ModelsYunyao Li
91 views65 slides
Cocktail of Environments. How to Mix Test and Development Environments and St... by
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...Aleksandr Tarasov
23 views135 slides
Innovation & Entrepreneurship strategies in Dairy Industry by
Innovation & Entrepreneurship strategies in Dairy IndustryInnovation & Entrepreneurship strategies in Dairy Industry
Innovation & Entrepreneurship strategies in Dairy IndustryPervaizDar1
35 views26 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
65 views27 slides

Recently uploaded(20)

The Power of Generative AI in Accelerating No Code Adoption.pdf by Saeed Al Dhaheri
The Power of Generative AI in Accelerating No Code Adoption.pdfThe Power of Generative AI in Accelerating No Code Adoption.pdf
The Power of Generative AI in Accelerating No Code Adoption.pdf
Saeed Al Dhaheri39 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li91 views
Cocktail of Environments. How to Mix Test and Development Environments and St... by Aleksandr Tarasov
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
Innovation & Entrepreneurship strategies in Dairy Industry by PervaizDar1
Innovation & Entrepreneurship strategies in Dairy IndustryInnovation & Entrepreneurship strategies in Dairy Industry
Innovation & Entrepreneurship strategies in Dairy Industry
PervaizDar135 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty65 views
The Coming AI Tsunami.pptx by johnhandby
The Coming AI Tsunami.pptxThe Coming AI Tsunami.pptx
The Coming AI Tsunami.pptx
johnhandby13 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10146 views
Deep Tech and the Amplified Organisation: Core Concepts by Holonomics
Deep Tech and the Amplified Organisation: Core ConceptsDeep Tech and the Amplified Organisation: Core Concepts
Deep Tech and the Amplified Organisation: Core Concepts
Holonomics17 views
GDSC GLAU Info Session.pptx by gauriverrma4
GDSC GLAU Info Session.pptxGDSC GLAU Info Session.pptx
GDSC GLAU Info Session.pptx
gauriverrma415 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De... by Moses Kemibaro
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Moses Kemibaro35 views
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 by BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada44 views
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf by ThomasBronack
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdfBronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
ThomasBronack31 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software184 views

Building an Appier Web - London Web Standards - Nov 2016

  • 1. Building an Appier Web @AndyDavies NCC Group Nov 2016 https://www.flickr.com/photos/alesimages/4215559895
  • 2. We’re spending more and more time in apps… © comScore, Inc. Propri Digital media usage time is exploding right now, and it’s predominantly being driven by mobile apps. 476,553 480,967 550,522 409,847 621,410 778,95477,081 97,440 118,299 0 200,000 400,000 600,000 800,000 1,000,000 1,200,000 1,400,000 1,600,000 Jun-2013 Jun-2014 Jun-2015 TotalMinutes(MM) Desktop Mobile App Mobile Browser Over the past years, total dig media usage h grown 49% wit mobile apps ha grown 90% an contributing to of the total incr in time spent. Mobile browse also seeing ve strong growth 53% and even desktop is still rising. Growth in Digital Media Time Spent Source: comScore Media Metrix Multi-Platform & Mobile Metrix, U.S., Total Audience +53% vs. 2013 +90% vs. 2013 +16% vs. 2013
  • 3. © comScore, Inc. Prop 29% 15% 11% 6% 6% 4% 3% 3% 23% Social Networking Radio Games Multimedia Instant Messengers Music Retail News/Information All Others Social Networ Radio and Ga contribute mo than half of to time spent on mobile apps. strength of the categories highlights that mobile device more heavily for entertainm and communi than their des counterparts. Share of Mobile App Time Spent Source: comScore Media Metrix MP and Mobile Metrix, U.S., Total Audience, June 2015 Social media and entertainment account for the six top app categories and drive two-thirds of total time spent on apps.But our usage can be very specific
  • 4. What do we like about apps? https://www.flickr.com/photos/jennicatpink/819741953
  • 7. A simple app… (App reads data from a monitoring API)
  • 9. Works offline too (Cached data, so may be out of date)
  • 10. Apps have their challenges too https://www.flickr.com/photos/justinjovellanos/15340862812
  • 11. “There’s an App for that”… …but can you can find it?
  • 12. To help we started with subtle buttons… but that wasn’t enough…
  • 14. “Download our app or else!”
  • 15. Updates, updates and more updates…
  • 18. © comScore, Inc. Pro And mobile audience growth is being driven more by mobile we properties, which are actually bigger and growing faster than ap A comparison Top 1000 App the Top 1000 Web Propertie shows a surp result. Not on mobile web properties ha audiences tha more than 2.5 size, but thes audiences are growing twice fast. Average Monthly Audience: Top 1000 Mobile Apps vs. Top 1000 Mobile Web Properties Source: comScore Mobile Metrix, U.S., Age 18+ - 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 Jun-2014 Sep-2014 Dec-2014 Mar-2015 Jun-2015 UniqueVisitors(000) Apps Mobile Web +42% y/y +21% y/y The web has great reach…
  • 19. and it’s due to the simple power of the URL http://example.com
  • 23. Web pages adapt to our diversity of devices http://www.flickr.com/photos/adactio/12674230513
  • 25. Or waiting for updates https://www.flickr.com/photos/star-bellied-girl/8283340977
  • 27. We could combine the richness of apps… …with the low friction of the web?
  • 29. So what might we need to build it? https://www.flickr.com/photos/aigle_dore/7912377858
  • 30. We can already add pages to our home screen Supported by most major mobile operating systems and browsers
 
 (Bookmarks page rather than site)
  • 31. Can specify the icon etc. via meta tags <link rel="apple-touch-icon" href="icons/logo/ncc-logo-120x120-ios.png"> <link rel="apple-touch-icon-precomposed" href="icons/logo/ncc-logo-120x120-ios.png"> <link rel="apple-touch-startup-image" href="/images/startup.png"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> (Minimal iOS set, ideally need more icon and splash screen sizes and other mobile browsers prefer different meta data)
  • 32. W3C App Manifest brings it all together { "lang": "en", "dir": "ltr", "name": "Monitoring", "description": "Performance and Availability Monitoring by NCC Group", "short_name": "Monitoring", "icons": [ { "src": "icons/logo/ncc-logo-144x144-white.png", "sizes": "144x144", "type": "image/png" }, . . . ], "scope": "/pwa", "start_url": "/pwa/index.html", "display": "standalone", "orientation": "portrait", "theme_color": "#c41230", "background_color": "#fff", } https://www.w3.org/TR/appmanifest/
  • 33. Homescreen Icon { "lang": "en", "dir": "ltr", "name": "Monitoring", "description": "Performance and Availability Monitoring by NCC Group", "short_name": "Monitoring", "icons": [ { "src": "icons/logo/ncc-logo-144x144-white.png", "sizes": "144x144", "type": "image/png" }, . . . ], "scope": "/pwa", "start_url": "/pwa/index.html", "display": "standalone", "orientation": "portrait", "theme_color": "#c41230", "background_color": "#fff", }
  • 34. URL of the page that’s launched { "lang": "en", "dir": "ltr", "name": "Monitoring", "description": "Performance and Availability Monitoring by NCC Group", "short_name": "Monitoring", "icons": [ { "src": "icons/logo/ncc-logo-144x144-white.png", "sizes": "144x144", "type": "image/png" }, . . . ], "scope": "/pwa", "start_url": "/pwa/index.html", "display": "standalone", "orientation": "portrait", "theme_color": "#c41230", "background_color": "#fff", }
  • 35. Splash screen { "lang": "en", "dir": "ltr", "name": "Monitoring", "description": "Performance and Availability Monitoring by NCC Group", "short_name": "Monitoring", "icons": [ { "src": "icons/logo/ncc-logo-144x144-white.png", "sizes": "144x144", "type": "image/png" }, . . . ], "scope": "/pwa", "start_url": "/pwa/index.html", "display": "standalone", "orientation": "portrait", "theme_color": "#c41230", "background_color": "#fff", }
  • 36. Orientation and presence of browser controls { "lang": "en", "dir": "ltr", "name": "Monitoring", "description": "Performance and Availability Monitoring by NCC Group", "short_name": "Monitoring", "icons": [ { "src": "icons/logo/ncc-logo-144x144-white.png", "sizes": "144x144", "type": "image/png" }, . . . ], "scope": "/pwa", "start_url": "/pwa/index.html", "display": "standalone", "orientation": "portrait", "theme_color": "#c41230", "background_color": "#fff", }
  • 37. And can even offer an install prompt (Browsers use several heuristics before deciding to prompt)
  • 38. Can listen for install event and track in analytics window.addEventListener('beforeinstallprompt', function(e) { e.userChoice.then(function(choiceResult) { console.log(choiceResult.outcome); if (choiceResult.outcome == 'dismissed') { // Track not installed } else { // Track installation } }); }); (Chrome supports this but it’s not in AppManifest standard)
  • 39. Can listen for install event and track in analytics window.addEventListener('appinstalled', function(e) { // Track installation }); (AppManifest standard proposes this)
  • 40. But how do we cope with a poor (or no) network? https://www.flickr.com/photos/odaeus/3942500793
  • 44. Service Worker is an in-browser network proxy that can intercept requests and responses
  • 45. <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.register('serviceworker.js', { scope: '/' }).then(function(registration) { // Anything else you want to do with registration // e.g. subscribe to push messages }).catch(function(err) { console.log('Can't register service worker: ', err); }); } </script> Register a Service Worker
  • 46. Option to install via Link may be coming <link rel="serviceworker" scope="/" href=“/serviceworker.js"> or Link </serviceworker.js>; rel=serviceworker scope=/ (Origin trial in Chrome, under consideration in Firefox)
  • 47. Service Worker Skeleton self.addEventListener('install', function(event) { self.skipWaiting(); }); self.addEventListener('activate', function(event) { }); self.addEventListener('fetch', function(event) { });
  • 48. What are apps actually made of?
  • 49. Shell Content Many apps are made of a shell and the content
  • 50. Going offline - caching assets on startup var cacheVersion = "v1"; var cacheResources = [ "/pwa/index.html", "/pwa/icons/logo/ncc-logo.svg", "/pwa/icons/ui/sprite.svg" // etc ]; self.addEventListener('install', function(event) { self.skipWaiting(); event.waitUntil( caches.open(cacheVersion).then(function(cache) { return cache.addAll(cacheResources); }) );
  • 51. Going offline - retrieving from cache on fetch self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function(response) { return response || fetch(event.request); }) ); }); Try the cache first and go to the network if there’s no match
  • 52. Going offline - cleanup previous resources self.addEventListener('activate', function(event) { // Remove outdated caches, migrate data etc, });
  • 53. Caching as a fallback for network • Make a request • Succeeds - cache response and return it • Fails - check cache and return cached response • Network request fails and not in cache ¯_( )_/¯ (OK so you probably want to manage the users experience in the last case)
  • 54. Caching patterns depend on use case, some very helpful resources Mozilla https://serviceworke.rs/ Jake Archibald https://jakearchibald.com/2014/offline-cookbook/ ServiceWork Toolbox https://github.com/GoogleChrome/sw-toolbox
  • 55. Service Worker also enables other features
  • 59. (App reads data from a monitoring API) When put together…
  • 61. (Cached data, so may be out of date) When put together…
  • 62. Powerful APIs (inc Service Worker) require HTTPS https://www.flickr.com/photos/zebble/6080622
  • 63. “The future is here, it’s just unevenly distributed” ✓ ✓ ✓ WiP ?✓
  • 64. We’re getting better access to native features • Camera • Notifications • Location • Geofencing • Alarms • Vibration • Sharing • Battery • and more… (On some platforms)
  • 72. You can deploy them today • 3x more time spent on site • 40% higher re-engagement rate • 70% greater conversion rate for those arriving via Homescreen • 3x lower data usage
  • 74. My current favourite… Doesn’t support notifications yet… …hopefully will do soon
  • 75. These apps aren’t packaged and deployed through stores, they’re just websites that took all the right vitamins https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/ Alex Russell, Google
  • 76. I still have questions… • What might not be suitable as a progressive web app? • Can we build PWAs that are as fast and frictionless as native? • How can we sell our apps, will we need app stores? • How do we avoid an uncanny UI valley? • What happens to storage when every site is a PWA?
  • 77. “Every step on the path to a PWA makes sense on it’s own” Jason Grigsby