Top Banner
Building an Appier Web @AndyDavies, NCC Group, May 2016 https://www.flickr.com/photos/alesimages/4215559895
64

Building an Appier Web - May 2016

Apr 13, 2017

Download

Technology

Andy Davies
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Building an Appier Web - May 2016

Building an Appier Web @AndyDavies, NCC Group, May 2016

https://www.flickr.com/photos/alesimages/4215559895

Page 2: Building an Appier Web - May 2016

We’re spending more and more time in apps…

© comScore, Inc. Proprietary. 5

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,954 77,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

Tota

l Min

utes

(MM

)

Desktop Mobile App Mobile Browser Over the past two years, total digital media usage has grown 49% with mobile apps having grown 90% and contributing to 77% of the total increase in time spent. Mobile browser is also seeing very strong growth at 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

Page 3: Building an Appier Web - May 2016

© comScore, Inc. Proprietary. 37

29%

15%

11% 6%

6%

4% 3% 3%

23% Social Networking

Radio

Games

Multimedia

Instant Messengers

Music

Retail

News/Information

All Others

Social Networking, Radio and Games contribute more than half of total time spent on mobile apps. The strength of the top categories highlights that mobile devices are more heavily used for entertainment and communication than their desktop 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

Page 4: Building an Appier Web - May 2016

What do we like about apps?

https://www.flickr.com/photos/jennicatpink/819741953

Page 5: Building an Appier Web - May 2016

Demo

(Next few slides were originally shown as a live demo)

Page 6: Building an Appier Web - May 2016

Launch from home screen

Page 7: Building an Appier Web - May 2016

Splash screen on startup

Page 8: Building an Appier Web - May 2016

A simple app…

Page 9: Building an Appier Web - May 2016

Works offline too

Page 10: Building an Appier Web - May 2016

Works offline too

Page 11: Building an Appier Web - May 2016

Apps have their challenges too

https://www.flickr.com/photos/justinjovellanos/15340862812

Page 12: Building an Appier Web - May 2016

“There’s an App for that”…

…but can you can find it?

Page 13: Building an Appier Web - May 2016

To help we started with subtle buttons…

but that wasn’t enough…

Page 14: Building an Appier Web - May 2016

“Please, please download our app”

Page 15: Building an Appier Web - May 2016

“Download our app or else”

Page 16: Building an Appier Web - May 2016

Updates, updates and more updates…

Page 17: Building an Appier Web - May 2016

https://www.flickr.com/photos/michigancommunities/4614847059

Installing apps consumes storage and data

Page 18: Building an Appier Web - May 2016

https://www.flickr.com/photos/piper/6199548216

So what about the web?

Page 19: Building an Appier Web - May 2016

© comScore, Inc. Proprietary. 13

And mobile audience growth is being driven more by mobile web properties, which are actually bigger and growing faster than apps.

A comparison of the Top 1000 Apps vs. the Top 1000 Mobile Web Properties shows a surprising result. Not only do mobile web properties have audiences that are more than 2.5x the size, but these audiences are also growing twice as 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

Uni

que

Vis

itors

(000

)

Apps Mobile Web +42% y/y

+21% y/y

The web has great reach…

Page 20: Building an Appier Web - May 2016

and it’s due to the simple power of the URL

http://example.com

Page 21: Building an Appier Web - May 2016

https://www.flickr.com/photos/aaronpk/5352508316

Makes the web linkable…

Page 22: Building an Appier Web - May 2016

…indexable, searchable

Page 23: Building an Appier Web - May 2016

And shareable

https://www.flickr.com/photos/thomashawk/8598744061

Page 24: Building an Appier Web - May 2016

Web pages adapt to our diversity of devices

http://www.flickr.com/photos/adactio/12674230513

Page 25: Building an Appier Web - May 2016

https://www.flickr.com/photos/protohiro/5769980863

And there are no gatekeepers

Page 26: Building an Appier Web - May 2016

Or waiting for updates

https://www.flickr.com/photos/star-bellied-girl/8283340977

Page 27: Building an Appier Web - May 2016

What if…

Page 28: Building an Appier Web - May 2016

We could combine the richness of apps…

…with the low friction of the web?

Page 29: Building an Appier Web - May 2016

https://www.flickr.com/photos/zedzap/13253676614

Page 30: Building an Appier Web - May 2016

So what might we need to build it?

https://www.flickr.com/photos/aigle_dore/7912377858

Page 31: Building an Appier Web - May 2016

We can already add pages to our home screen

Supported by most major mobile operating systems and browsers(Bookmarks page rather than site)

Page 32: Building an Appier Web - May 2016

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 sizesand other mobile browsers prefer different meta data)

Page 33: Building an Appier Web - May 2016

W3C App Manifest brings it all together{ "lang": "en", "dir": "ltr", "name": "Performance Matters", "description": "Performance Matters - NCC Group Web Performance", "short_name": "Performance Matters", "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": "#fff", "background_color": "#fff", }

Page 34: Building an Appier Web - May 2016

Homescreen Icon{ "lang": "en", "dir": "ltr", "name": "Performance Matters", "description": "Performance Matters - NCC Group Web Performance", "short_name": "Performance Matters", "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": "#fff", "background_color": "#fff", }

Page 35: Building an Appier Web - May 2016

URL of the page that’s launched{ "lang": "en", "dir": "ltr", "name": "Performance Matters", "description": "Performance Matters - NCC Group Web Performance", "short_name": "Performance Matters", "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": "#fff", "background_color": "#fff", }

Page 36: Building an Appier Web - May 2016

Splash screen{ "lang": "en", "dir": "ltr", "name": "Performance Matters", "description": "Performance Matters - NCC Group Web Performance", "short_name": "Performance Matters", "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": "#fff", "background_color": "#fff", }

Page 37: Building an Appier Web - May 2016

Orientation and presence of browser controls{ "lang": "en", "dir": "ltr", "name": "Performance Matters", "description": "Performance Matters - NCC Group Web Performance", "short_name": "Performance Matters", "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": "#fff", "background_color": "#fff", }

Page 38: Building an Appier Web - May 2016

And can even offer an install prompt

(Browsers use several heuristics before deciding to prompt)

Page 39: Building an Appier Web - May 2016

But how do we cope with a poor (or no) network?

https://www.flickr.com/photos/odaeus/3942500793

Page 40: Building an Appier Web - May 2016

http://alistapart.com/article/application-cache-is-a-douchebag

Our first attempt had a few issues…

Page 41: Building an Appier Web - May 2016

https://www.w3.org/TR/service-workers/

So we tried another approach

Page 42: Building an Appier Web - May 2016
Page 43: Building an Appier Web - May 2016

Service Worker is an in-browser network proxy

that can intercept requests and responses

Page 44: Building an Appier Web - May 2016

<script> if ('serviceWorker' in navigator) {

navigator.serviceWorker.register('sw.js').then(function(registration) { }).catch(function(err) { console.log('Can\'t register service worker: ', err); }); } </script>

Register a Service Worker

Page 45: Building an Appier Web - May 2016

Service Worker Skeletonself.addEventListener('install', function(event) { self.skipWaiting(); . . .

});

self.addEventListener('activate', function(event) { . . .

});

self.addEventListener('fetch', function(event) { . . .

});

Page 46: Building an Appier Web - May 2016

What are apps actually made of?

Page 47: Building an Appier Web - May 2016

Shell Content

Many apps are made of a shell and the content

Page 48: Building an Appier Web - May 2016

Going offline - caching assets on startupvar 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); }) ); });

Store a set of resources in cache when service

worker is installed

Page 49: Building an Appier Web - May 2016

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); }) ); });

On fetch, check cache for resource,otherwise retrieve from network

Page 50: Building an Appier Web - May 2016

https://jakearchibald.com/2014/offline-cookbook/

Not just for offline - other caching patterns

Page 51: Building an Appier Web - May 2016

Service Worker also enables other features

Page 52: Building an Appier Web - May 2016

background sync

https://wicg.github.io/BackgroundSync/

Background Sync (draft)

Page 53: Building an Appier Web - May 2016

https://www.w3.org/TR/push-api/

Push Notifications

Page 54: Building an Appier Web - May 2016

When put together…

Page 55: Building an Appier Web - May 2016

When put together…

Page 56: Building an Appier Web - May 2016

When put together…

Page 57: Building an Appier Web - May 2016

When put together…

Page 58: Building an Appier Web - May 2016

When put together…

Page 59: Building an Appier Web - May 2016

Getting better access to native features

• Camera• Location• Notifications

• Alarms• Vibration• and more…

Page 60: Building an Appier Web - May 2016

Powerful APIs (inc Service Worker) require HTTPS

https://www.flickr.com/photos/zebble/6080622

Page 61: Building an Appier Web - May 2016

“The future is here, it’s just unevenly distributed”

✓ ✓ ✓ ? ?

Page 62: Building an Appier Web - May 2016

It’s being used 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

Page 63: Building an Appier Web - May 2016

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

Page 64: Building an Appier Web - May 2016

http://www.flickr.com/photos/auntiep/5024494612

@AndyDavies

[email protected]

http://slideshare.net/andydavies