Compared to web apps, native apps were always that little bit better. For certain applications, web apps can definitely be the right choice, but all in all, they were never a serious competitor that could replace their native counterparts. But that might change now, since the new progressive web apps (short: PWAs) make the promise of being better web apps and feeling like native apps. So, what are PWAs? Are they just the latest trend or could they really become a danger to native apps? If that question interests you – read on!
Now, before we get right to it, just a little overview: When apps were beginning to become popular around 10 years ago, nobody was using the word ‘native’. A few years later, the web grew to encompass responsive design and frameworks such as react, and developers were able to create websites that behaved like apps. These mobile web apps became ever more popular and it became necessary to make a distinction between two kinds of apps: apps that run on the native software of the smartphone (native) and apps that use the device’s browser (web apps).
Web apps are good at visually bringing the app contents to the screen, but functionally, they are ways behind their native competitors. As soon as you need access to some of the device’s hardware features, such as the camera or Bluetooth, web apps are no longer your best bet. What you can do here is get some assistance from other frameworks such as Apache Cordova, giving you access to the native device APIs, but what you have then is no longer a pure web app, but a hybrid. Not only the lack of interfaces is a drawback – one of the biggest disadvantages of web apps is that it becomes near useless, as soon as you lose connection to the internet. (You can find a more in-depth look at this topic here.)
Progressive web apps are looking to eliminate these exact problems. Even though progressive web apps are basically mobile websites, they promise a native look and feel to the user combined with short loading times and full offline capability. The basic idea behind PWAs is combining the best of both worlds. On the one hand, they are supposed to have all the advantages of native apps, such as access to the device features, offline capability and the possibility of sending push notifications. And on the other hand, they offer the advantages of web apps, namely their easy distribution and quick access to web-based contents which can be kept up-to-date without the need for continuous updates.
Progressive – what exactly does it mean?
Their huge advantage is that PWAs progressively adapt to the source from which they are called, meaning that no matter what device or browser is used, they will work (if with a restricted set of functionalities). On a notebook, for example, it will behave like a normal web application, but when opened on a smartphone or tablet, it will behave like a native app that can make use of the device functions.
Offline – but how?
Many of you will be wondering how such an app can work offline. The two magic words to consider here are: service workers. They are at the core of any progressive web app, working in the background, even when the website is not open. They not only enable the app to work offline and the sending of push notifications, they can also reload contents in the background and start processes based on the program logic. This provides a high flexibility in the app development.
A further important concept of progressive web apps is the app shell. The app shell is a design concept, which differentiates between the fixed app construct (the app shell) and the content. First, the app shell is loaded and displayed, any app contents are loaded afterwards. This design approach makes it possible to fully take advantage of the service workers’ caching capabilities and to thus drastically improve the app’s performance and usability.
Web App Manifest
Just like in the case of native apps, it is also possible to create a manifest file in order to enable the installation of the PWAs. This not only creates a shortcut, but also displays an installation banner to the user, similar to what they are used to when installing native apps.
You knew there would be one, didn’t you? Of course, all of that sounds wonderful. And for many developers, the thought of no longer having to develop multiple versions of an app for all the different operating systems, will be a very happy one. But there unfortunately is a catch here, which is the browser support. As yet, not all the different functionalities of the various browsers are supported – whatwebcando.today gives you a comprehensive list of which functions are supported by which browser right now. Some features will likely be added in the near future, and hey, you might even be surprised at what’s possible already.
While Google is a big proponent of PWA’s further development and also Opera, Mozilla and Firefox are loving the format, Apple is showing little interest in jumping onboard the hype train. And this very thing causes the progressive web apps’ biggest problem right now, which is the fact that Safari does not support service workers (which, as I told you above are basically the heart of any PWA). Thanks to their progressive adaptability, PWAs do work with Safari, of course, but many advantages (such as the improved performance, offline capability and push notification function) go out the window.
Apple’s lack of interest in supporting this new technology is understandable. After all, progressive web apps might steer potential customers away from the app store and, even worse, towards the competitor Google. Apple developers and users would no longer be dependent on the apple store, which is a huge source of revenue and customer retention tool rolled into one. Not to be underestimated as well is the loss of data which can be gathered via the apps downloaded through the store. It’s hard to imagine that apple would choose to give up on those perks any time soon. A lot will depend on whether PWAs can massively increase in popularity and can maybe even surpass native apps – in that case, apple will have to come up with something.
PWAs have great potential, but whether they can become a real danger to native apps remains to be seen. They will probably never be a complete replacement, but PWAs seem to be more than just one of those passing fads. We’ll see what the future brings.
If you’d like to know which kinds of progressive web apps are already out there, you can check out pwa.rocks. Have fun!