
A Beginner's Guide to Progressive Web Apps (2016) - charlysl
https://www.smashingmagazine.com/2016/08/a-beginners-guide-to-progressive-web-apps/
======
jmulho
PWA is an acryonym that you don't need to worry about, unless you buy in to
the argument that web apps are lacking certain desirable characteristics of
native mobile apps.

Most of the PWA required characteristics are pretty obvious:

"Progressive" and "Responsive" \- not new ideas.

"Discoverable", "Linkable", "App-like" \- the classic problems of single-page
web apps

"Fresh" and "Safe" \- as if some people desire apps that are stale and
dangerous.

Then there are the characteristics that set PWAs apart:

"Connectivity-independent" (should work offline) - My app lets you check
yesterday's weather.

"Re-engageable" (receives push notifications when the browser is closed) -
Because users really love push notifications.

"Installable" (can be installed on the devices home screen) - Isn't there
something called a link that does this?

The PWA requriements seem to be as set of priorities for websites heavily
influenced by the experience (pros and cons) of native mobile app development.
As such, they seem out of touch with what should be the priorities for a web
app.

------
thinkMOAR
"Because a progressive web app has a more intimate user experience and because
all network requests can be intercepted through service workers, it is
imperative that the app be hosted over HTTPS to prevent man-in-the-middle
attacks."

Nicely written and layed out, though I would suggest to add a point that
describes not including 3rd party hosted resources to prevent leaking user
activity at third parties. Other way described, host all resources on your own
site/url.

~~~
seanwilson
Isn't HTTPS a hard requirement?

[https://developer.mozilla.org/en-
US/docs/Web/API/Service_Wor...](https://developer.mozilla.org/en-
US/docs/Web/API/Service_Worker_API/Using_Service_Workers)

> You’ll also need to serve your code via HTTPS — Service workers are
> restricted to running across HTTPS for security reasons."

~~~
thinkMOAR
Sure, and using https is a good thing, but that doesn't stop google etc from
logging my request/ip requesting those font at that time etc for whatever
purposes. I don't really want those parties to be aware of me using a
particular service, or being online at a specific time etc. Certainly not just
for a font.

------
cm2187
One thing I don't understand is how Progressive Web Apps are different from
Web Apps that I could add to the home screen on iOS for a long time already.

~~~
fibo
I guess the main difference is that they work offline. Also, Chrome will ask
user to add it to home screen.

~~~
cm2187
iOS web apps worked in a similar way with a manifest file that was specifying
all the files that were to be downloaded when the page was added to the home
screen and how long they were meant to be cached. I remember having created
one 5 years ago and the technology was probably around for longer.

Maybe I miss something but the term Progressive Web App feels a bit like
"Ajax", i.e. a marketing term for a technology that pre-existed as a way to
promote it.

~~~
denisw
Service Workers (which are one of the core technologies behind the Progressive
Web Apps label) go further than manifest files because they can deal with any
kind of HTTP request (including e.g. calls to your REST API). Also, because
they are code rather than static lists backed by hard-wired browser logic, you
can implemnt any kind of caching strategy you want.

That being said, Progressive Web Apps is pretty much just an umbrella term
useful for marketing several new and upcoming browser APIs (Service Workers
being one of them) and not really a thing in itself.

~~~
crankylinuxuser
Damn, is that all they are? I kept seeing PWA PWA PWA, and the language to
describe them are "tech news" quality descriptions like 'Website uses..
ALGORITHMS to make the site work!'

I figured it wasn't talking about IPFS serverless apps, or paired with
Ethereum. I didn't see the usual "Bitcoin/Ethereum/Blockchain" bait on these
articles, so it couldn't have been that.

It's good to know it's just a catch-all for the new APIs for caching and
service workers.

