Progressive Web Apps 101
Prerequisites: HTML 101 & JavaScript 101
@fvcproductions
Hi, I’m Frances (your professor)! !
Software Engineer, Customer Acquisition @SlackHQ
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
slack.com/careers@fvcproductions
Hi, I’m Frances (your professor)! !
Software Engineer @SlackHQ
@fvcproductions
Norfolk, VA @fvcproductions
@fvcproductions
fvcproductions
fvcproductions.com
hello@fvcproductions.com
Curriculum
Why even? 🤔 (25%)
Embracing the web
Where even? 👀 (15%)
Examples in real life
How even? 🛠 (50%)
The transformation process
@fvcproductions
Expectations
• You have basic experience in HTML & JavaScript
• You don't know too much about these
Progressive Web Apps (PWAs)
• Like why they exist
• Or where they are used
• Or even how to implement one
@fvcproductions
Disclaimers
• I don't work for Google but I will be
mentioning lots of Googly stuff
• Not gonna be talking about Slack work
• I'm not a developer advocate - I'm just a
front end developer who likes to talk
about front end stuff
@fvcproductions
Why even? 🤔 @fvcproductions
Most accessible platform
across the world?
📻 🌐📱💻 🖥 🤖 🕶 🚗 🏥
@fvcproductions
The mobile web.
🌐📱
@fvcproductions
@fvcproductions
@fvcproductions
PWA Checklist
• Fast
• Integrated
• Reliable
• Engaging
@fvcproductions
Fast
First Paint First Contentful Paint
First Meaningful Paint
Time to Interactive
@fvcproductions
Integrated
@fvcproductions
Reliable
@fvcproductions
Engaging
@fvcproductions
In Summary
@fvcproductions
@fvcproductions
🔥 !!!
• Fast
• Even on
slow
networks
• Integrated
• Add to home
screen
• Reliable
• Offline-first
• Engaging
• Web push
notifications
PWAs
&
Privilege @fvcproductions
@fvcproductionsThe State of LTE (Nov 2017)
4GB Availability Worldwide
@fvcproductions
4GB Speed Worldwide
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
But what about the rest of the world... 🌍
@fvcproductions
@fvcproductions
~70% of people in
emerging markets
consider app size before
downloading due to data
costs and storage space
@fvcproductions
Emerging markets are
becoming more crucial
@fvcproductions
~53% of the world has
access to the Internet now
Size of Twitter Clients (March 2019)Size(MB)
0
50
100
150
200
Android iOS PWA
1.3
186.4
86
@fvcproductions
1.3
Write once,
deploy
everywhere!
@fvcproductions
Write once,
deploy
everywhere!
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Where even? 👀 @fvcproductions
EVERYWHERE! 😳😮😯😲
@fvcproductions
@fvcproductions
@fvcproductions
🤣
@fvcproductions
Do the big companies support this though? 🤔
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Exploring Examples
• Starbucks 🍴🍔😋🍕🍗🌮
• Instagram 📷🎥📸🎬
• Forbes 📰🗞
• Trivago ✈🌎🌍🌏
• Flipkart 👜👕💸👔👚🛍
🤯
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Forbes@fvcproductions
Trivago@fvcproductions
@fvcproductions
Downsides… 😓
@fvcproductions
1. No centralized hub
@fvcproductions
No centralized hub @fvcproductions
No centralized hub @fvcproductions
Alex Russell
"These apps aren't packaged and
deployed through stores, they're
just websites that took all the right
vitamins... They progressively
become ‘apps'."
@fvcproductions
Ok, side rant
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Lol jk
• Different Frances - they're
married lol
@fvcproductions
Alex Russell
"These apps aren't packaged and
deployed through stores, they're
just websites that took all the right
vitamins... They progressively
become ‘apps'."
@fvcproductions
@fvcproductions
2. Browser Support
@fvcproductions
@fvcproductions
3. More support from Apple lol
@fvcproductions
@fvcproductions
@fvcproductions
Ok but let me rant about Apple for a sec
@fvcproductions

@fvcproductions
L
@fvcproductions
M
@fvcproductions
N
@fvcproductions
O
@fvcproductions
O
@fvcproductions
P
@fvcproductions
Q
@fvcproductions
R
@fvcproductions
🌎
@fvcproductions
How even? 🛠 @fvcproductions
Testing for
PWA Readiness 💡
@fvcproductions
Lighthouse
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Shameless Plug 🤫
@fvcproductions
@fvcproductions
@fvcproductions
The
Transformation
🦋
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
Static generators are cool tho
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
sw.js
index.html
manifest.json
HTTPs
@fvcproductions
1. HTTPs
2. index.html
3. manifest.json
4. sw.js
@fvcproductions
1. HTTPs
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
2. index.html
@fvcproductions
index.html
<head></head>
@fvcproductions
@fvcproductions
index.html
<body></body>
3. manifest.json
@fvcproductions
3. /manifest.json
@fvcproductions
@fvcproductions
48x48, 72x72, 96x96, 144x144,
192x192, 256x256, 384x384, 512x512
many icons much wow
@fvcproductions
@fvcproductions
@fvcproductions
@fvcproductions
4. sw.js
@fvcproductions
Offline-first
@fvcproductions
@fvcproductions
@fvcproductions
webpack.config.js
@fvcproductions
webpack.config.js
@fvcproductions
GenerateSW()
@fvcproductions
generated sw.js
@fvcproductions
sw.js
file manifest
@fvcproductions
Remember 🔥 ?
• Fast
• Even on
slow
networks
• Integrated
• Add to home
screen
• Reliable
• Offline-first
• Engaging
• Web push
notifications
@fvcproductions
🔥 Checklist
• Integrated
• manifest.json
• HTML enhancements
• Reliable
• sw.js
• HTTPs
@fvcproductions
@fvcproductions
@fvcproductions@fvcproductions
@fvcproductions
@fvcproductions
manifest.json
index.html
sw.js
@fvcproductions
Only
3 files
needed!
🦄
@fvcproductions
Web push
notifications?
@fvcproductions
Engaging?
@fvcproductions
@fvcproductions
@fvcproductions
TLDR;
@fvcproductions
@fvcproductions
Takeaways
Why even? 🤔
To deliver a native experience with
the broad reach of the modern
web
Where even? 👀
Everywhere!
How even? 🛠
A few vitamins @fvcproductions
FIN
@fvcproductions
Thanks for listening! 💛
@fvcproductions
References
1. Slack website: https://slack.com
2. Progressive Web Apps Checklist: https://
developers.google.com/web/progressive-web-apps/
checklist
3. US Design System Standards: https://
designsystem.digital.gov/components/typography/
4. PWAs: building bridges to mobile, desktop, and native
(Google I/O ’18) : https://www.youtube.com/watch?
v=NITk4kXMQDw
5. Tooling for Progressive Web Apps: https://
www.youtube.com/watch?v=_CO3XZj00no
6. OneSignal: The State of LTE: https://opensignal.com/
reports/2017/11/state-of-lte
7. Syntax Highlighting: https://carbon.now.sh
8. Workbox: https://developers.google.com/web/tools/
workbox/
9. Comscore 2017 US Mobile App Report: https://
www.comscore.com/Insights/Presentations-and-
Whitepapers/2017/The-2017-US-Mobile-App-Report
10. Music from Jukedeck - create your own at http://
jukedeck.com
11. Speedtest 2017 US Market Report by Ookla: http://
www.speedtest.net/reports/united-states
12. Jopwell Stock Photos: https://www.jopwell.com
13. Service workers explained: https://www.netlify.com/
blog/2017/10/31/service-workers-explained/
14. App revenue climbed 35 percent to $60 billion in 2017:
https://techcrunch.com/2018/01/05/app-revenue-
climbed-35-percent-to-60-billion-in-2017
15. Shrinking APKs, growing installs: https://medium.com/
googleplaydev/shrinking-apks-growing-
installs-5d3fcba23ce2
16. We Are Social - Digital in 2018 Report: https://
wearesocial.com/us/blog/2018/01/global-digital-
report-2018
17. Hugoma Theme: https://github.com/fvcproductions/
hugoma
18. PWAs 101 (same title lol): https://
medium.freecodecamp.org/progressive-web-apps-101-
the-what-why-and-how-4aa5e9065ac2
19. Build the Next Generation of Mobile Web: https://
www.youtube.com/watch?v=3tb-1MWg44Y
20.YouTube: Trivago, Forbes and Flipkart Video
21. PWA Builder: https://www.pwabuilder.com/
22.Netlify: https://netlify.com
23.Static Site Generators: https://www.staticgen.com/
24.Gatsby: https://www.gatsbyjs.org/
25.React: https://reactjs.org/
26.Hugo: https://gohugo.io/
27. Go: https://golang.org/
28.OneSignal: https://onesignal.com/
29.Norfolk: https://www.wikiwand.com/en/
Naval_Station_Norfolk
30.Project Stream: https://www.youtube.com/watch?
time_continue=10&v=sE53eSbzxoU
31. Verizon 5G: https://www.verizon.com/about/our-
company/5g
32.Microsoft & Google: https://www.computerworld.com/
article/3314746/mobile-apps/why-microsoft-and-
google-love-progressive-web-apps.html
33.Google Fuschia: https://www.wikiwand.com/en/
Google_Fuchsia
34.Mobile OS Market Share: http://gs.statcounter.com/os-
market-share/mobile/china
@fvcproductions
References
At least 30 more links need to be
added here - please refer to the
slide notes in the meantime 😂 😅
@fvcproductions
Questions, comments or concerns? 💭
@fvcproductions
These slides will be shared ASAP! 🎉
https://slideshare.net/fvcproductions
@fvcproductions
fvcproductions
fvcproductions.com
hello@fvcproductions.com
slack.com/careers@fvcproductions
Tech Queens
• First episode releasing tomorrow
for International Women's Day
• If you're interested or know
someone, head over to the
website and fill out the contact
form at the bottom
• https://techqueenspod.com
@fvcproductions
Kudos
• Music from Jukedeck - create
your own at http://jukedeck.com
@fvcproductions

Telegraph Track - Progressive Web Apps 101