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
180
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
720
Houdini – Demystifying CSS
surma
3
360
Progressive Web Apps – Mobile has natively come to the Web
surma
5
340
The Glorious Era of HTTP/2
surma
1
150
Instant Loading
surma
4
1.4k
HTTP/2 101
surma
5
550
What if there isn’t?
surma
0
120
What if there isn’t?
surma
2
220
Other Decks in Technology
See All in Technology
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
140
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
270
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
150
こんにちは!SORACOM です & IoT とは【SORACOM UG 東北 in 八戸】
soracom
PRO
0
170
価値について
gree_tech
PRO
0
140
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
Refining Active Record
shugo
0
190
その Valkey 使いこなしていますか?
onk
PRO
5
1.8k
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
0
230
freeeにおけるSoftware Factory
freee
PRO
0
270
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
150
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
500
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
エンジニアに許された特別な時間の終わり
watany
109
250k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Done Done
chrislema
187
17k
Mobile First: as difficult as doing things right
swwweet
225
10k
The SEO Collaboration Effect
kristinabergwall1
1
600
First, design no harm
axbom
PRO
2
1.3k
Building Applications with DynamoDB
mza
96
7.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
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!