In case you haven’t noticed, there’s been a whole lot of progress in the last couple of years to make it easier for developers to deliver applications that work the same across platforms, across devices, and across browsers. The business of software development, it seems, is finally catching on to the fact that customers want the same experience regardless of hardware and platform choice, and developers don’t want to develop and maintain multiple flavors of the same app.
This marks a refreshing change from the days, not so long ago, when it took an army of developers to deliver an app that kinda sorta worked the same on different platforms, form factors, operating systems, browsers, browser versions…you get the idea. Just dealing with all the variation distracted them from developing compelling, usable features.
And Now…Progressive Web Applications
Among the latest efforts in this area is the progressive web application, or PWA. A PWA is a server-side web application that looks like, and behaves like, a native application.
- “Installing” a PWA results in a home screen icon, desktop icon, or taskbar shortcut, depending on the platform.
- Because it’s really a web application, the installation is lightweight—it loads quickly and occupies little disk or memory space.
- A PWA can (with the user’s permission) access hardware resources, such as the camera, microphone, GPS, or USB-connected devices—something that traditional web applications have never been able to do well.
- Unlike traditional web applications, PWAs can store data and resources on the device, enabling the app to run in offline mode.
- Like native apps, PWAs can take advantage of features such as background syncing and user notifications, even when the app isn’t running.
- PWAs do not have to be distributed through an app store. A PWA can be listed on an app store, but because it’s a web app it is not actually downloaded from the store.
- Because the app’s executable code resides on the server, updates are as simple as pushing the updated code to the server—no action is required on the user’s part and there’s no downtime.
The PWA standard is being developed by an industry consortium that includes Microsoft, Google, Mozilla, and other entities. Although not an active participant, Apple is supporting the effort as well. The standard is supported in frameworks such as Angular and React.
Support for PWAs requires some updates on the client end. At this writing, PWA support is slated to be part of the next major Windows 10 update, and a desktop Google Chrome update to support PWA installation is in the works. Chrome for Android, as well as other Android browsers, already support PWA installation.
What Does It Mean for the Software Development Business?
The advent of the PWA standard has some interesting potential impacts on the business of software development:
- To some extent, it renders moot much of the differentiation among platforms. If most applications that a user cares about are available as PWAs, the choice of platform is less relevant, and such users could migrate to less-fancy, less-capable devices that are cheaper to own.
- The enterprise may be particularly interested in PWAs, which could simplify device provisioning, maintenance and security, and steer these customers to less-expensive devices.
- PWAs could undermine efforts such as Microsoft’s Universal Windows Platform (UWP). If a PWA looks and acts just like any other Windows 10 application anyway, why go to the trouble of developing and maintaining a UWP app?
- App stores could become less relevant, thereby reducing the revenue streams that the stores provide for Google, Apple, and Microsoft.
Given how disruptive this technology can be for the software establishment, it’s interesting that the establishment is actively supporting it. Certainly there’s still a large market for native apps, so perhaps they see PWAs as a complementary technology, rather than a replacement. Time will tell!