Once upon a time there were computer programs (note the spelling is American, not ‘programme’), aka application software, that we used to install on our computers.
Then, two things happened in the 2000s. First, the web became more than just a bunch of dumb (and badly formatted) text pages with a few images in it. We started to see the emergence of “web-based software” – applications that ran on a server ‘somewhere’ and only needed a web browser to operate, no annoying and unreliable installation necessary. We know, we were there, building web applications way before anyone started talking about ‘The Cloud’.
Then, Apple released the iPhone. Now, there had been mobile devices before then (things like PalmPilots and XDAs) which you could install ‘programs’ on. But it was cumbersome, you had to plug the device into your PC and transfer it from there. But Apple made the whole process much easier, creating the App Store (‘app’ was already the Mac name for an application program), and the Android Marketplace (now Google Play) soon followed.
Meanwhile web apps had moved on from being simple forms and lists to have much more engaging and interactive user interfaces, with a lot of the ‘prettification’ happening within the browser rather than on the server.
Progressive web apps, or PWAs, are the convergence of these two paradigms. It is something being led and pushed by Google, which its approach of having an open, cross-platform ecosystem. Apple, who have much more of a ‘walled garden’ approach, are dragging their heels a little and there are still some features that their mobile devices don’t support, but they are catching up.
The concept is simple. Why should app developers have to build one version for the web, one for iOS, one for Android and potentially ones for Windows and MacOS as well? Microsoft OneNote is a great example of an app with versions for 5 different platforms. Since all devices have extremely powerful and capable web browsers, why not make sure all the features available to native apps are available to web apps. Then you only need to build once.
Installing a PWA is just a matter of opening a web link. On Android, the device will automatically spot that it fulfills the PWA requirements (mainly that it works offline and operates over a secure connection) and prompt the user to add it to the home screen, where it will work exactly like a native app. iOS requires the app to prompt the user to do this, but the effect is the same.
This represents a great opportunity both for businesses like us and our clients. Development costs are lower, as are maintenance costs and release cycles as we don’t need to go through the app stores. Clients can push their app out to whoever might need it just by sending a link.
We have developed a framework which takes advantage of the PWA concept to be able to build these cross-platform apps quickly and cost-effectively. It is possible to release these via the app stores, but in many cases, why would you bother?