Microsoft Adding Support for Progressive Web Apps in Windows 10
Progressive Web Apps, Hosted Web Apps, Universal Windows Apps… that is a ton of apps. How do Progressive Web Apps (PWAs) differ from what is supported in Windows 10 today? In this Ask the Admin, I will explain how PWAs could change the future of apps across all platforms.
Read the Best Personal and Business Tech without Ads
Staying updated on what is happening in the technology sector is important to your career and your personal life but ads can make reading news, distracting. With Thurrott Premium, you can enjoy the best coverage in tech without the annoying ads.
However you look at it, Google Chrome has a monopoly on web apps. Most Chrome Apps are HTML5 sites. Some of these work offline, are tested, and then packaged to work in Chrome. Some Chrome Apps are also just web wrappers, such as WhatsChrome. Most Chrome Apps can be opened in any HTML5-compliant browser, including Microsoft Edge. Sometimes, these exhibit quirks because they are only tested in Chrome. So at the end of the day, if you choose to use an unsupported browser, HTML5-compliant or not, you are probably on your own if you run up against problems.
Other apps do not support Microsoft Edge outright, one way or another.
Grammarly for example only provides a free service to users of Chrome, Safari, and Firefox. If you want to use Edge, you will need to sign up for Grammarly Premium(Grammarly now has an Edge extension). And Join.Me does not support audio if the browser is Edge. This is possibly because Edge does not run WebM codecs in HTML5 media elements, like the Video tag, but only with Media Source Extensions (MSEs).
Whether a technical issue or politics, Microsoft is left with a problem. Especially for Windows 10 S, where Edge is the only supported browser. Chrome has such a strong ecosystem of apps and extensions and is even an operating system (Chrome OS), that it is no wonder many would never consider using an OS that does not allow the installation of Google Chrome. But that could all be about to change in the Windows 10 Fall Creators Update, as Microsoft promises to introduce full support for Progressive Web Apps.
Hosted Web Apps
Windows 8 introduced the concept of packaged web apps, similar to Chrome Apps, allowing developers to use a manifest file to define their app, have it work offline, and distribute it via the Windows Store. And the Windows Runtime JS APIs provided integration with Windows features.
However, making changes to web apps in Windows 8 required developers to go through the Windows Store submission process each time. To make the process easier, Windows 10 allows developers to use Hosted Web Apps, which simply point to a URL. This is so that changes happen on the developer’s server without a store submission for every update. Hosted Web Apps can leverage Universal Windows Platform (UWP) features, including the ability to run offline, push notifications, live tiles, and background data synchronization.
Sounds like a great idea, right? Except that it has not exactly taken off. Out of the three HWAs that Microsoft trumpeted, Yahoo Mail, Shazam, and Pandora, only Shazam is still available to download from the Windows Store. Even that is in maintenance mode, as Shazam recently announced they had pulled the plug.
Progressive Web Apps
Progressive Web Apps are an industry effort to standardize web apps and service workers enable the apps to perform and feel more like native platform apps. Apps can work offline and respond quickly like a native app, regardless of network latency. Both Chrome Apps, Windows packaged apps, and HWAs are based on HTML5 standards but have different manifest formats and asset requirements. Standardization of these requirements will mean that PWAs are truly multiplatform and Google is now requiring developers to adopt PWA standards for its Chrome Apps. Microsoft says that HWAs will naturally evolve into PWAs as the service worker technology is made available in Edge.
The code used to create a PWA can also be used for Windows 10 HWAs, enhancing integration with the OS. Developers can choose to create a PWA that works in Edge, a HWA that is downloaded from the Windows Store, or both. But unlike Chrome, which supports running PWAs outside of a browser tab in their own native-app-like windows, it looks like Microsoft will require developers to submit PWAs to the Store if the app is to run outside of a browser tab.
Today Microsoft Edge supports the Cache API required for PWAs but the other service worker roles are available in Edge as experimental features that can be enabled in about:flags. By the time the Fall Creators Update is released in September, Edge should have all the service workers required for PWAs turned on out-of-the-box.
If a user chooses to use a PWA in Edge, they will be prompted to download the same app from the Windows Store, extending the app’s capabilities with better OS integration. PWAs can also run in mobile browsers. According to Microsoft’s website, service workers are also in development for Edge in Windows 10 Mobile.
HTML5 Standards Support
It remains to be seen whether Microsoft will keep its promise to enable PWA support in Edge and the Windows Store in time for the Fall Creators Update. But even when Microsoft formerly adds PWA support to Windows, Edge still has other issues that must be addressed. Top of the pile is HTML5 standards parity with Chrome. It is not acceptable that some websites will not work in Edge due to lack of proper standards support. This is especially true when you are selling a Windows SKU that blocks the use of any other browser.
PWAs might have a positive knock-on effect for Microsoft by enabling it to reenter the mobile market with support for a much wider selection of apps, which has always been a problem for Windows Phone and Windows 10 Mobile. While the app situation for Microsoft is not going to change overnight, it is encouraging that Google, Apple, and the other major players in the browser market are already onboard with PWAs. This can only be a good thing for Microsoft too.
Follow Russell on Twitter @smithrussell.