Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Web is a Contender
Search
Surma
September 25, 2015
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Web is a Contender
JSConf EU 2015
Surma
September 25, 2015
More Decks by Surma
See All by Surma
Know thy buzzwords: HTTP/2
surma
1
600
Houdini Breakout Session
surma
4
710
Houdini – Demystifying CSS
surma
3
350
Progressive Web Apps – Mobile has natively come to the Web
surma
5
330
The Glorious Era of HTTP/2
surma
1
140
Instant Loading
surma
4
1.4k
HTTP/2 101
surma
5
540
What if there isn’t?
surma
0
120
What if there isn’t?
surma
2
220
Other Decks in Technology
See All in Technology
Omarchy Quattro の日本語設定周り
simosako
2
180
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
470
Minecraft JavaのMODをSwiftで作る
1mash0
0
160
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
890
人間はどの意思決定を手放せるのか
kawasima
14
6.7k
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
240
Genieを崇めよ
kameitomohiro
0
120
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
170
What the customer really needed
kawaguti
PRO
1
160
Reactの設計論
uhyo
24
13k
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Rails Girls Zürich Keynote
gr2m
96
14k
Designing for Performance
lara
611
70k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Abbi's Birthday
coloredviolet
4
10k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Transcript
The Web is a Contender q mobile
Surma @surmair
voice-memos.appspot.com
1B+ Users (25M+ Devs)
None
“Reach”
100+ websites per month
“The mobile war is oveR. . .” “the app has
Won” goo.gl/nLFRmY
“The is oveR. . .” “the goo.gl/nLFRmY ಠ_ಠ
Web Native spent on… 80% 20% goo.gl/nLFRmY
Web Native spent on… 22% 20% totally not important stuff
goo.gl/nLFRmY
Web Native spent on… 52% 48% goo.gl/nLFRmY
“Native apps can’t out-web the web” goo.gl/15sYYY
goo.gl/15sYYY
airhorner.com
airhorner.com
{ "name": "Air Horner", "short_name": "Air Horner", "icons": [{ "src":
"images/touch/Airhorner_128.png", "type": "image/png", "sizes": "128x128" },{ "src": "images/touch/Airhorner_192.png", "type": "image/png", "sizes": "192x192" }], "start_url": "/?homescreen=1", "display": "standalone", "background_color": "#2196F3", "theme_color": "#2196F3" }
Service Worker
goo.gl/IpsiH1
if ('serviceWorker' in navigator) { navigator.serviceWorker .register('/sw.js') .then(function(registration) { //
successful }).catch(function(err) { // failure }); }
Service Worker
var items = [ '/', '/styles/main.css', '/script/main.js' ]; self.addEventListener('install', function(event)
{ event.waitUntil( caches.open(CACHE_NAME) .then(function(cache) { return cache.addAll(items); }) ); });
self.addEventListener('fetch', function(event) { event.respondWith( caches .match(event.request) .then(function(response) { return response
|| fetch(event.request); })); });
wiki-offline.jakearchibald.com
wiki-offline.jakearchibald.com
sw-toolbox github.com/GoogleChrome/sw-toolbox
Service Worker
Push Notifications
navigator.serviceWorker.ready.then( function(sw) { sw.pushManager.subscribe() .then(function(subscription) { // Send subscription.endpoint //
to server }); }); }
self.addEventListener('push', function(event) { var n = new Notification('A Message!’); //
... }); self.addEventListener('notificationclick', function(event) { var url = event.notification.data.url; event.waitUntil(clients.openWindow(url)); });
simple-push-demo.appspot.com
None
HTTPS everywhere letsencrypt.com
Surma @surmair Thank you!