That loud noise you heard yesterday was collective glee from web developers excited to see the first signs that Apple has started working on Progressive Web Apps.
What prompted the glee was a WebKit ticket and associated patch created by Apple engineer Brady Eidson that showed the first bits of development on service workers, a key technology for Progressive Web Apps.
Still, people were reluctant to read too much into this until it was confirmed by Jonathan Davis, Apple’s Web Technologies Evangelist:
Yes, it is beginning.
— Jonathan Davis (@jonathandavis) August 3, 2017
Shortly after, the WebKit team officially declared service workers to be “In Development.”
Here are a few thoughts on what this news means.
It is too early to tell what this means for the full list of features that are part of the definition of Progressive Web Apps.
We have no indications yet if Apple will add support for web notifications and installable apps to iOS and Mac. Plus, there are specifications and behavior such as Add to Home Screen install banners and Payment Request API that aren’t technically part of the definition of Progressive Web Apps, but that many now associate with PWAs.
Because Progressive Web Apps are intentionally more of a concept than a specification, it is expected that every platform will have slightly different ways of supporting them. And we want browser makers competing on the ways they integrate, support and promote Progressive Web Apps.
If iOS fixes some of its Add to Home Screen bugs but never adds the Add to Home Screen install banner for PWAs, does that mean that Apple is supporting Progressive Web Apps fully or not?
It is unclear to me whether or not we’ll ever be able to say that a particular platform supports or doesn’t support Progressive Web Apps beyond the core PWA definition.
In my opinion, service workers are the most important technology powering Progressive Web Apps. Service workers are what allow web developers to explicitly declare what portion of an app will be cached. Caching enables nearly instantaneous page loads and offline behavior.
Don’t get me wrong. I want all the Progressive Web App features, and frankly much more, to be available on all platforms.
But getting service workers in Safari would be huge.
Whether or not Apple “supports” Progressive Web Apps is immaterial to whether or not you should build one. Progressive Web Apps have always worked in Safari. You shouldn’t be waiting on Apple.
The “progressive” part refers to progressive enhancement which is a philosophy of web development that argues for providing a baseline experience and then enhancing the experience if the browser supports it. More advanced browsers get the full bells and whistles.
A Progressive Web App done right doesn’t leave anyone out. Many early Progressive Web Apps have performed better on iOS despite iOS not “supporting” PWAs.
What this week’s news means is that you can build a Progressive Web App now, confident that when service workers ship in Safari that Safari users will suddenly get an upgrade in their experience.
So what are you waiting for? Start building a Progressive Web App now!