Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Going Progressive with Ember
Search
Samanta de Barros
March 28, 2017
Programming
0
740
Going Progressive with Ember
Samanta de Barros
March 28, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
Graviton と Nitro と私
maroon1st
0
130
tparseでgo testの出力を見やすくする
utgwkk
2
270
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
890
認証・認可の基本を学ぼう前編
kouyuume
0
260
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
170
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
Patterns of Patterns
denyspoltorak
0
230
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
2
530
Vibe codingでおすすめの言語と開発手法
uyuki234
0
110
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
190
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
96
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
370
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
GitHub's CSS Performance
jonrohan
1032
470k
How STYLIGHT went responsive
nonsquared
100
6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
From π to Pie charts
rasagy
0
89
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Transcript
GOING PROGRESSIVE WITH SAMANTA DE BARROS EMBERCONF 2017
+
PROGRESSIVE WEB APP CARMELO, URUGUAY
“Progressive Web Apps take advantage of new technologies to bring
the best of mobile sites & native apps to users. They’re reliable, fast, and engaging. They originate from a secure origin and load regardless of network state.“ - Addy Osmani
I HAVE A DREAM…
None
None
None
None
PROGRESSIVE WEB APP? LA PEDRERA, URUGUAY
LOOKS GOOD
LOOKS GOOD INSTALLS ON DEVICE
LOOKS GOOD INSTALLS ON DEVICE WORKS OFFLINE
LOOKS GOOD INSTALLS ON DEVICE WORKS OFFLINE WORKS FAST
PUNTA DEL ESTE, URUGUAY LOOKS GOOD?
NATIVE VS WEB
PUNTA DEL DIABLO, URUGUAY INSTALLS ON DEVICE?
THE WEB APP MANIFEST
None
None
None
None
None
BEFORE
AFTER
None
None
BEFORE
AFTER
None
ember-web-app Generates App Manifest and iOS tags from config file
github: san650/ember-web-app
config/manifest.js
LOOKS GOOD INSTALLS ON DEVICE WORKS OFFLINE WORKS FAST
WORKS OFFLINE? LA PEDRERA, URUGUAY
None
THE SERVICE WORKER
It’s a script Runs in the background Doesn't need a
web page or user interaction
None
None
None
None
SAVE ASSETS ON INSTALL EVENT
SAVE ASSETS ON INSTALL EVENT INTERCEPT EVERY REQUEST
SAVE ASSETS ON INSTALL EVENT INTERCEPT EVERY REQUEST BACKGROUND SYNC
SAVE ASSETS ON INSTALL EVENT INTERCEPT EVERY REQUEST BACKGROUND SYNC
PUSH NOTIFICATIONS
SAVE ASSETS ON INSTALL EVENT INTERCEPT EVERY REQUEST BACKGROUND SYNC
PUSH NOTIFICATIONS ALL YOU CAN DREAM OF
ember-service-worker broccoli-serviceworker
ember-service-worker Plugable approach Base addon just registers SW Add plugins
for different cache strategies github: dockyard/ember-service-worker
ember-service-worker ember-service-worker-index ember-service-worker-asset-cache ember-service-worker-cache-fallback
broccoli-serviceworker Generates SW based on configuration Pre-caches app files by
default github: jkleinsc/broccoli-serviceworker
app/config/environment.js
None
None
None
None
BEFORE
AFTER
AFTER
None
Chrome 37.7% MOBILE BROWSER USAGE WORLDWIDE Safari 22.2% Firefox 0.1%
IE 0.1% Samsung Internet 5.4% Opera 8.6% http://gs.statcounter.com/browser-market-share/mobile-tablet/worldwide/#monthly-201602-201702-bar
MOBILE BROWSER USAGE Safari 55.9% Chrome 31.4% USA http://gs.statcounter.com/browser-market-share/mobile-tablet/united-states-of-america/#monthly-201602-201702-bar
None
THE APPLICATION CACHE
None
None
None
None
Generates appcache manifest with app resources Can be configured to
ignore certain paths broccoli-manifest github: racido/broccoli-manifest
app/config/environment.js
USER DATA OFFLINE?
LOCAL STORAGE
LOCAL STORAGE WEBSQL
LOCAL STORAGE WEBSQL INDEXED DB
LOCAL STORAGE WEBSQL INDEXED DB LOCAL FORAGE (WRAPS ALL 3)
ember-localstorage-adapter ember-localforage-adapter ember-pouch
ember-localstorage-adapter Ember data adapter for local storage Local storage: key/value
pair store, works with strings github: locks/ember-localstorage-adapter
ember-localforage-adapter github: genkgo/ember-localforage-adapter Ember data adapter for local forage LocalForage:
wrapper for indexedDb and WebSQL that falls back to local storage
ember-pouch Ember Data for PouchDB/ CouchDB Saves data client side
to IndexedDB or WebSQL Can sync to PouchDB github: nolanlawson/ember-pouch
LOOKS GOOD INSTALLS ON DEVICE WORKS OFFLINE WORKS FAST
DOES IT WORK FAST? MONTEVIDEO, URUGUAY
NATIVE VS PWA
FIRST PAGE RENDER
ember-cli-fastboot Server side rendering Still beta github: ember-fastboot/ember-cli-fastboot
SECOND PAGE RENDER
Service Worker / App Cache
TIME TO INTERACTION
Allows composition of apps into a single app Lazy loading
of engines ember-engines github: ember-engines/ember-engines
TOOLS JOSE IGNACIO, URUGUAY
LIGHTHOUSE
None
None
web manifest + service worker + app cache
None
+ fastboot
None
+ ember-engines?
None
BACK TO THAT DREAM… PUNTA DEL ESTE, URUGUAY
1. IT IS POSSIBLE
1. IT IS POSSIBLE 2. IT IS DOABLE WITH EMBER
1. IT IS POSSIBLE 2. IT IS DOABLE WITH EMBER
3. IT CAN GET EVEN BETTER
WE NEED YOUR HELP!
THANKS! @sami_dbc @sdebarros CABO POLONIO, URUGUAY