Progressive Web Apps TLV

57
Progressive Web Apps Tel Aviv 2016 g.co/progressivewebapps

Transcript of Progressive Web Apps TLV

Page 1: Progressive Web Apps TLV

Progressive Web AppsTel Aviv

2016

g.co/progressivewebapps

Page 2: Progressive Web Apps TLV

Code of Conductgoo.gl/O96sJg

Page 3: Progressive Web Apps TLV

SlackJoin

chromiumdev-slack.herokuapp.com

Loginchromiumdev.slack.com

Page 4: Progressive Web Apps TLV

Twitter

@ChromiumDev

Page 5: Progressive Web Apps TLV

Proprietary + Confidential

Ido Green@greenido

Page 6: Progressive Web Apps TLV

Proprietary + Confidential

Progressive Web AppsMobile has natively come to the Web

Page 7: Progressive Web Apps TLV

The Big Bang of Computing

Page 8: Progressive Web Apps TLV
Page 9: Progressive Web Apps TLV
Page 10: Progressive Web Apps TLV
Page 11: Progressive Web Apps TLV
Page 12: Progressive Web Apps TLV

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML> <HEAD> <TITLE>Bach's home page</TITLE> <STYLE type="text/css"> h1 { color: red } </STYLE> </HEAD> <BODY> <H1>Bach's home page</H1> <P>Johann Sebastian Bach was a prolific composer. </BODY></HTML>

Page 13: Progressive Web Apps TLV
Page 14: Progressive Web Apps TLV

Ajax was born to run desktop apps on the Web

Page 15: Progressive Web Apps TLV
Page 16: Progressive Web Apps TLV

How did the Web beat native applications on the desktop?

Page 17: Progressive Web Apps TLV

Distribution Is The Hardest Problem In Software

flickr.com/photos/blakespot/

Page 18: Progressive Web Apps TLV
Page 19: Progressive Web Apps TLV

The Mobile Explosion

Page 20: Progressive Web Apps TLV

Confidential & Proprietary

● Runs the “desktop Web”

● Pinch and zoom, Pan, etc

● Hitchhikers guide to the galaxy is in

your pocket!

The Mobile Internet came when it brought the Web

Page 21: Progressive Web Apps TLV

Confidential & Proprietary

Access to the back catalog is great, but you want to use the new affordances and power

Page 22: Progressive Web Apps TLV

What if the Web evolved those capabilities, just as it did with

Ajax?

Page 23: Progressive Web Apps TLV

What's Missing?

1. Home Screen Access 2. Push Notifications 3. Offline

Page 24: Progressive Web Apps TLV

1. Home screen Access

Less typing, more tapping.

Page 25: Progressive Web Apps TLV
Page 26: Progressive Web Apps TLV

2. Push Notifications

How can we re-engage users at the right time?

Page 27: Progressive Web Apps TLV

1. Works If Browser Closed

2. Needs Permission

Page 28: Progressive Web Apps TLV

3. Offline That Works™

It isn't an app if it doesn't start when you tap.

Page 29: Progressive Web Apps TLV
Page 30: Progressive Web Apps TLV

example.com

GET /app.html HTTP/1.1HOST example.com...

HTTP/1.1 200 OKDate: Thu, 19 Feb 2015 05:21:56 GMT...

Page 31: Progressive Web Apps TLV

example.com

// sw.jsonfetch = function(e) { if(e.request.url == "app.html") { e.respondWith( caches.match(e.request) ); }

if(e.request.url == "content.json") { // go to the network for updates, // meanwhile, use cached content fetch(...).then(function(r) { r.asJSON().then(function(json) { e.client.postMessage(json); }); }); }};

GET /app.html HTTP/1.1HOST example.com...

GET /content.json HTTP/1.1HOST example.com...

GET /content.json HTTP/1.1HOST example.com...

HTTP/1.1 200 OKDate: Thu, 19 Feb 2015......

Page 32: Progressive Web Apps TLV

Service Workers Are Network Progressive

Enhancement

A Programmable Network Proxy under your control.

Page 33: Progressive Web Apps TLV

Service Workers are to Progressive Web Apps as

XMLHttpRequest was to AjaxThe foundational capability that was a tipping point for innovation

Page 34: Progressive Web Apps TLV
Page 35: Progressive Web Apps TLV

Impact of speed on bounce rates

Source: SOASTA; September, 2015

2.4 2.7 3.0 3.3 3.6 3.9 4.2 4.5 4.8 5.1 5.4 5.7 6.0 6.3 6.6 6.9 7.2 7.5 7.8 8.1 8.4 8.7 9.0 9.3 9.6 9.9

180,000

140,000

100,000

60,000

0

20,000

58

45

32

19

0

6

Sess

ions

Load time (in seconds)

Boun

ce ra

te (%

)

Sessions Bounce rate

13%bounce

rate

20%bounce

rate

58%bounce

rate

Page 36: Progressive Web Apps TLV

Confidential & Proprietary

RAIL: Instant loading and smooth navigation

● For first visitors, load pages in <10s on 3G

net

○ Aspirational goal: <3s to first paint

● For repeat visitors, loading of page in <500

ms

● Always scrolling at 60 frames/second

● Content shouldn’t jump as images are loaded

Page 37: Progressive Web Apps TLV

Confidential & Proprietary

● Reliable: Fast loading, offline and on flaky networks

● Fast: Smooth animation, scrolling and nav● Engaging and integrated

○ On the home screen, no URL bar, icons, splash

○ Re-engaging with push notifications

● Consistent experience across browsers(still in progress, though)

The Progressive Web App Experience

Page 38: Progressive Web Apps TLV

Confidential & Proprietary

The Progressive Web App - Examples

https://noter-1.firebaseapp.com/https://voice-memos.appspot.com

Page 39: Progressive Web Apps TLV

e-commerce

Page 40: Progressive Web Apps TLV

● Users time on Flipkart lite vs. previous

experience: 3.5 minutes vs 70 seconds.

● 3x more time spent on site

● 40% higher re-engagement rate

● 70% greater conversion rate among those

arriving via Add to Homescreen

● 3x lower data usage

● Read more on Flipkart case study

Page 41: Progressive Web Apps TLV

26%increase in average spend

per visit by members arrivingvia a push notification

72%increase in time spent for users visiting via a push notification

+50%repeat visits within 3 months

Page 42: Progressive Web Apps TLV

Kill Your Dinosaur!

Page 43: Progressive Web Apps TLV

Progressive Web App Code Lab

Page 44: Progressive Web Apps TLV

Code Time!1. PWA - g.co/codelabs/pwa2. Push Notifications - goo.gl/oFwPaV

Page 45: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Page 46: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Enter Progressive Web Apps● Fast loading

● One click away from accessing content

● Smooth animations and navigations

● Re-engages with push notifications

● Good experience on flaky network connections

● Consistent experience across browsers

Page 47: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Enabling app-like capabilities

Service Worker

● Client-side proxy written in JavaScript● Access device capabilities to allow your

site to be “app like”

Page 48: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Enabling app-like capabilities

Service Worker

● Client-side proxy written in JavaScript● Access device capabilities to allow your

site to be “app like”

Web App Manifest

● Rich presence on user’s Android homescreen

● Launch in full-screen mode on Android ● Control the screen orientation ● Define “splash screen” launch, theme

color for site

{ "short_name": "My Cool App", "name": "My Totally Cool Application", "icons": [ {"src": "launcher-icon-3x.png",

"sizes": "192x192", "type": "image/png"}],

"start_url": "index.html", "display": "standalone", "background_color" : "#aeaeae", "theme_color" : "#aeaeae", "orientation" : "landscape" }

Page 49: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Add to Homescreen & Full Screen● User who visits 2x in a

within five minutes will be prompted with “add to homescreen”

● One tap to add to homescreen

● Opens full screen - no URL bar

Page 50: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

A few tips before we start...

● Chapters 6 & 7 will take the longest● Service Workers - Tips

○ Don't forget to change the cacheName○ Use an incognito window to ensure a fresh start○ Keep only one tab open at a time○ chrome://serviceworker-internals & DevTools are your

new best friends○ Read More tips on Noter PWA Example

Page 51: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Let’s build it!

g.co/codelabs/pwa

Questions? Ask!

Page 53: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

MiscHelpful links

● https://www.chromium.org/blink/serviceworker/service-worker-faq

● https://www.chromium.org/blink/serviceworker/getting-started

Page 54: Progressive Web Apps TLV

Coffee Break3:30pm

Page 55: Progressive Web Apps TLV

voice-memos.appspot.com

Page 56: Progressive Web Apps TLV

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Let’s do better.

Page 57: Progressive Web Apps TLV

Proprietary + Confidential

Final thoughts