Did you know?
PWA’s are not new. When Steve Jobs launched the iPhone in 2007 the Safari browser already had basic support for it and they were called “web apps”. There was even no Software Development Kit (SDK) for native apps available then. The (unexpected) success of native apps shifted the market focus to the app store and this seemed to be very lucrative for Apple too.
PWA’s unique features
1. No need for app storesWhen you go to a PWA in the browser of a mobile device, you will have the ability to “install” it on your smartphone or desktop PC just like a native app. This means you do not need to search in app stores and there is no need to download the app. This is a good and bad thing for app builders and app users.
App builders have less stress because the release process of the app is in their own hands now. They no longer have to experience the hassle of submitting apps, waiting for review and possible rejections because the app is not app store rules compliant. This also means that services that were not allowed before on the appstores (e.g. gambling) can now reach their audience. Oh, and if you are selling products or offer subscriptions, you do not have to pay Apple 30% on the revenue.
For the end users it is great not having to search for and install apps you only need once. A PWA does not use up precious storage space on your smartphone, it spares your mobile data volume and it does not require constant updates. On the other hand, not having a validation service opens the door for less tested functionalities, malware and possible security risks.
2. Same look and feel as native appsWhen you go to a PWA in your browser you can install it as a stand-alone app. Once it is installed the PWA app has almost the same look and feel as native apps. For example, It has an icon with title and a splash screen when loading. A PWA furthermore runs in an immersive full screen modus meaning you do not see any browser controls. This data is defined in the Web App Manifest file.
3. Service workersIn addition to the manifest file, PWA’s could use service workers also. They enable applications to control network requests, cache those requests to improve performance, and provide offline access to cached content.
Thanks to this, PWA’s can offer the following features:
Always the latest contentWhen a PWA is installed, the content can be updated in the background from the moment there is an internet connection. So, each time you launch it, you have the latest version of the content. The state is also kept, meaning when you leave the PWA at a certain point you will return to that specific screen.
Offline usageYou can run PWA’s offline. Moreover, depending on the Operating System, they can store a certain amount of data for a certain period on the device. When a network glitch occurs, you can still access the content.
Push notificationsThanks to the service workers you have the ability to receive push notifications on smartphones as well as on desktop PC’s if your OS and browser supports it.
4. Better user experience
PWA’s can offer all HTML5 features such as camera access, geolocation, 3D visualization, audio and video playback etc. as well as most mobile gestures. This gives the user the impression that he or she is using a native app that is optimized for his/hers devices. Because of the caching and preloading the interfaces feel much snappier while scrolling. PWA’s have overall a better user experience than responsive desktop websites.
5. Better for SEO
Because PWA’s are completely web based and they can perfectly be made findable in search engines, there is no need for App Store Optimization (ASO) anymore. The time-consuming effort of creating different screenshots and descriptions in all resolutions and languages lie behind us.
It is also important to know that, if you choose for a PWA, your Google page speed score will improve, which will result in a better ranking in the Google search index.
Since the beginning of this year, you can publish PWA’s in the Google Play Store too.
Sounds great, but are there any downsides to PWA’s?
A downside is that there is no visual presence of the PWA in the app store. Some brands need to be in the app store because their audience expects it. This certainly is the case for the Apple App Store. Luckily, since the beginning of this year Google allows you to publish PWA’s in the Google Play store using the Trusted Web Activity TWA) feature.
PWA’s are mainly pushed by Google and it is obvious that Chrome browsers and Android devices are well supported.
Apple is not in a hurry to support PWA support in iOS. In 2018 they launched iOS version 11.3 which extended the basic PWA support with better support of the Web App Manifest and Service workers. In version 12.2 release in March 2019 Apple fixed some critical issues like preserving states during sessions, PWA-in app browsing when you click a hyperlink, web sharing, etc.
But there are still a lot of bugs and some main functionalities such as the ability to execute code in background and push notifications are not supported on iOS yet.
Features that need tight hardware interaction like NFC, Bluetooth (used for in app payments), ARkit, Touch and FaceID, motion sensors, altimeter, webRTC for the camera stream etc. are still omitted for PWA’s in Safari.
From a usability point, Android users can get a prompt to install the PWA as a stand-alone app, but iOS users must do a manual action to install the PWA in Safari.
Furthermore, there is no PWA support on the Chrome browser for iOS devices because service workers are not supported for Webviews.
Bottom line: iOS/MAC OS support of PWA’s is limited and it is unsure when Apple will do this.
When to go for a PWA?
PWA’s are mainly interesting in the following cases:
- News and Ecommerce sites where the content is updated regularly
- You want to provide content/service which is not allowed by Apple/Google T&C of their appstores
- If you have a limited app building budget
- When you do not need tight integration with mobile device hardware
- If you provide your apps for free
- If you don’t want to give Apple 30% of your revenue
- When you want a better user experience than responsive web sites, although native apps still provide the best user experience
- If findability of your service is very important and you think your users will not do the effort to install your app
- If you can live without push notifications for iOS users
Native apps are still the best choice for:
- Comfort of the users and speed
- User experience
- AR and 3D rendering
- Different monetization models like subscriptions and in app purchases
- Very secure apps with biometric authentication
- Cross device push notifications
- Tight hardware support
- If your app store presence is a must
You should consider what the best technical approach would be for each of your projects. Not only based on the current functional requirements but regarding your future needs and roadmap too.
A PWA or native app for your project?