Ever wish web apps behaved more like real apps? Progressive Web Apps are a new technology that’s aiming to make that happen.
Here’s the quick summary: Google, Microsoft, Mozilla and other companies are working on a new, modern web application standard. Even Apple is following along and implementing support for it. These applications are web apps, but they behave more like native apps. Like existing web apps, they’ll be hosted directly on their associated website. Developers can update them directly on their web server without submitting those updates to several different app stores, and the same app will run on all browsers and platforms.
When you install a progressive web app, you’ll get a home screen, taskbar, or desktop shortcut that launches the app (depending on your platform). The app will load quickly and will include offline support, push notifications, background syncing support, and other modern goodies.
These apps can also use existing web technologies to access location services, your webcam, and other such features we’d normally associate with native apps. Of course, apps have to ask you and get your permission before accessing these things.
Progressive Web Apps are traditional web applications that are enhanced with modern web technologies, allowing them to provide a more app-like experience. The “progressive” part means they’re “progressively enhanced” with modern web features, which means they’ll also work in older browsers that don’t support the new features, but will work better and with more features in modern browsers.
These apps will get their own window and shortcut on your taskbar (on Windows 10 and anything running Chrome) or an icon on your home screen (on Android devices and other smartphones). When you open them, they’ll load quickly thanks to the Cache API and IndexedDB, which stores the app’s resources and data on your device, allowing them to work even when they’re offline. Technologies like Service Workers and push notifications will allow the app to perform background tasks like syncing and sending you notifications even when they’re not running, like a native app. The Fetch API makes it faster and simpler for the app to request data. They have a Web App Manifest file, which provides a name, icon, author, and description that’s used when installing the app to your home screen or desktop. They’re always served via encrypted HTTPS, which means they’re secure and data can’t be tampered with in transit.
Progressive Web Apps are not like Google’s Chrome Packaged Apps or Microsoft’s Hosted Web Apps. Those required the app to be “packaged” as a file and submitted to an app store. The entire app lived in a little offline bundle, and users had to install it from either the Chrome Web Store or Windows Store. These were also platform-specific, and would only work on Chrome or Windows. The developer had to change the offline app’s files and submit a new version to the app store to update it.
Instead, PWAs are never packaged into an offline file. Like the traditional web apps we use today, they’re hosted entirely on the application’s servers. If a developer wants to update their progressive web app, they update it exactly like they would update the web app—on their servers. All platforms and browsers that support PWAs can use the same Progressive Web Apps.
PWAs can be listed in app stores for easier discovery and installation, but the app store will just point to the web app’s servers. Even if an app isn’t compatible with an app store’s content policies, users will be able to find and install it directly from their browser.
This isn’t just about making web apps a little nicer. This is about laying down a new standard for installable apps that every platform supports. That could mean some surprising events in the near future.
For example, when this work is done, Google could enable services like Gmail and Google Calendar to function as PWAs. This means they’d run as native-style applications on Windows 10 and be listed in the Windows Store. This would go a long way to solving the Windows Store’s application problem, as Google doesn’t want to support Microsoft’s Universal Windows Platform (UWP). Other developers who haven’t wanted to create separate UWP apps would suddenly be able to support Windows 10 with native-style PWAs.
Developers would have an easier way to make their web apps function in a more powerful, integrated way on a wide variety of devices without jumping through any app store hoops. Web apps that work everywhere would be able to better compete with native apps that work on a single platform. A company that just has the resources to make a single app could make a PWA and support everything, rather than making separate apps for iOS, Android, Windows, and the web.
And, because of the Web App Manifest files developers provide, search engines will be able to crawl the web and easily find the PWAs available online. This will make PWAs easily discoverable, just like web pages.
Progressive Web Apps have been under development for some time, but they’re about to make a larger leap into the public eye.
With Windows 10’s next update—codenamed Redstone 4, which will be released in March 2018—Microsoft is enabling support for PWAs. As on other platforms, you can head to a PWA’s website and install it via Microsoft Edge. However, Microsoft will also be listing Progressive Web Apps in the Store for easy installation. Developers can list their own apps in the Store, but Microsoft will also be using Bing to find good PWAs on the web and automatically list them. They’ll still be hosted normally on their website and updated by the developer, but Microsoft is making it easier to find and install them. You’ll never even need to open the Edge browser to find, install, and run a PWA on Windows 10. This should help bulk up the Windows Store, but looks like bad news for Microsoft’s UWP app platform. Why would many developers make a UWP app when a PWA would be fine and run on multiple operating systems?
On Google Chrome—whether for Windows, Mac, Linux, or Chrome OS—PWAs are about to replace the discontinued “Chrome Apps” platform. Google says support for desktop installation of PWAs should arrive “in mid-2018“, roughly. Then those PWAs will work with Chrome on the desktop. This feature is already being tested in the unstable development version of Chrome, named Canary.
On Android, Google Chrome already supports installation of PWAs, as do other mobile browsers like Mozilla Firefox, Opera, and the Samsung browser. Google is working on a technology named WebAPK that will allow PWAs to be turned into APK files (Android app files) and installed onto the device, like other apps. Chrome’s project manager has hinted that PWAs may be added to the Play Store, too.
While Apple hasn’t been a vocal proponent or participant here, they are now adding PWA features to the Safari browser, too.
2018 should be a big year for PWAs, particularly on Windows 10, where they could help Microsoft close the app gap and have more native-style apps.
Image Credit: Prabowo96