For a while now, we've been hearing Microsoft talk about Progressive Web Apps (PWAs), web apps that use modern technologies "to provide a more app-like experience." These include features like push notifications, Fetch networking, Service Worker, Cache API, and Web App Manifest.
Indeed, web apps are nothing new. When Windows 10 first launched, Microsoft promised to include hosted web apps in the Windows Store (now called the Microsoft Store), but PWAs take that to another level, and could potentially replace native apps, for the most part.
Today, the company detailed its plan to bring PWAs to Windows 10 with the next feature update, which is due out this spring. The strategy is the same as the one that Thurrott unveiled back in October, but now it's official.
For one thing, PWAs will be available from the Microsoft Store, although you might not even have to submit your app. Microsoft will be using its Bing crawler to index "selected quality" PWAs that it finds on the web. The company says that it has 1.5 million candidates, and it would seem that this more of a way to get the Store populated.
Most developers will have to submit their app manually, which seems to be a pretty simple process. They'll use the PWA Builder tool to package their Progressive Web App into an APPX package, and submit the app through the Developer Center as normal.
Microsoft says that PWAs must meet the following standards:
Web App Manifests should suggest quality: In our initial crawl of sites looking for PWAs, we discovered over 1.5 million manifests across 800k domains. Looking at a selection of these sites, we discovered that not all are good candidates for ingestion. Some aren’t PWAs at all, and others have a boilerplate manifest generated by tools like favicon generators. We will be looking for non-boilerplate manifests that include a name, description, and at least one icon that is larger than 512px square.
Sites should be secure: Access to the Service Worker family of APIs requires an HTTPS connection on Windows and other platforms.
Service Workers should be an enhancement: We’ll look for a Service Worker as a signal for ingesting PWAs, but we also expect experiences to degrade gracefully if Service Worker is unsupported, as it may be on older browsers or other platforms. You can get started building a basic Service Worker with PWA Builder; Mozilla also has great recipes if you are looking for somewhere to start.
Sites should consider automated testing for quality: There are a number of tools out there for this, including our sonarwhal, Lighthouse, aXe, and more.
PWAs must be compliant with Microsoft Store policies: PWAs will need to meet the standards of the Microsoft Store, just like any other app. We will not ingest PWAs that violate laws or Store policies.
Naturally, the apps will run on any device that has EdgeHTML 17, which is the version of the Edge rendering engine that will ship in the next version of Windows 10. This is actually already available in recent Windows Insider Preview builds, so developers can start testing their PWAs right away.
Microsoft also says that the Universal Windows Platform already fully embraces PWAs, since "EdgeHTML is a foundational component of UWP." The general thing to consider when deciding between a PWA and a UWA is whether there are native features that are critical to the app, that the web can't offer.
The great thing about PWAs is that it's hosted on the developer's servers, rather than Microsoft's. That means that updates can be pushed without ever submitting an update to the Store. And since it's a web app, they're completely cross-platform. The downside to developing for UWP is that a native version needs to be made for each major operating system.
Microsoft says that it will begin populating the Store with PWAs soon, so Insiders should be on the lookout.