Why Progressive Web Apps Failed to Take Off: A Look at the Challenges and Barriers
And what can be done

source here
What is a PWA?
A progressive web app (PWA) is a type of web application that combines the features of a traditional web application with those of a native mobile app. It is designed to be fast, responsive, reliable, and to offer a seamless, app-like experience for users.
PWAs are built using web technologies and can be accessed from any device with a web browser. They can be installed on a user’s device, just like a native app, and offer features such as offline functionality, push notifications, and the ability to work in full-screen mode.
Despite the potential benefits of PWAs, they have not become as widely adopted as some experts had predicted. In this article I want to go more in depth and take a look at the pros and cons of this technology, so that we understand first its history.
The promise
The goal of PWAs was to provide a seamless, app-like experience for users without the need for a separate App Store or the need to download and install an app on their device. This made them more accessible and easier to use than native apps, particularly for users who may not have the space or resources to download and install multiple apps on their device. The Twitter app takes around 300MBs on my phone. By contrast, the PWA version takes around 600KBs. More here.
PWAs were also developed as a way to address some of the challenges and limitations of traditional web applications, such as slow loading times and poor performance on mobile devices. By leveraging modern web technologies and techniques, PWAs aim to provide a high-quality, app-like experience for users while maintaining the accessibility and ease of use of the web.
The implementation
This technology sounds awesome, so why doesn’t it see worldwide adoption?
One reason for this is that many businesses and developers have been slow to adopt the technology. Building a PWA requires a different approach than traditional web development, and many companies have been hesitant to invest the time and resources into learning this new way of building apps.
Another reason is that some users have been slow to adopt PWAs because they are not yet available on all devices. Firefox, for instance, doesn’t support PWAs at all. Even on iOS you will face multiple challenges and that is due to the fact that iOS doesn’t have the same APIs that are present in the Android realm. This lack of compatibility has made it difficult for some users to access and use PWAs, leading to lower adoption rates.
Additionally, some users have been hesitant to use PWAs because of concerns about security and privacy. Since PWAs are essentially web-based applications, there are concerns that they may not offer the same level of security as native apps. This lack of security can be a barrier for users who are concerned about protecting their personal information.
The biggest problem
It is not inaccurate to say that Apple “does not like” PWAs. Yes, Apple has supported the development and use of PWAs on its devices, including the iPhone and iPad, but on a very limited scale.
There are a few reasons why PWAs aren’t as “promoted” on Apple devices as on other platforms. One reason is that Apple has its own proprietary app ecosystem, the App Store, which offers a wide variety of native apps for its devices. This has made it difficult for PWAs to compete with native apps in terms of discoverability and user experience.
Additionally, Apple has strict guidelines for the apps that are allowed in the App Store, and some PWAs may not meet these guidelines. Apple loves moderating the content that’s on the App Store and they also get revenue from there, so having a free marketplace for apps doesn’t sound like a good business idea.
The biggest issue though is the lack of APIs for PWAs on iOS. Let’s take a look at the features that are available in almost each PWA implementation, but not the Apple one:
- Push notifications
- Offline browsing
- Background synchronization
- “Add to home” screen
- App launching screen
- Bluetooth
- Geofencing
So basically almost all the features that differentiate a webapp from a mobile app.
The biggest deal breakers are: push notifications, background synchronization and the “add to home” screen.
Without push notifications, you cannot do most of the work that is required from a mobile app. Without background synchronization, you always have to come back to the webapp to refresh the page. And the “add to home” screen, while not necessarily the most important feature, it was the one that introduced the end user to the concept of a PWA. For a Safari user to get the PWA version, he has to click the share button, and add the site on his homescreen as a bookmark. So not the same pleasant experience you get on Android.
While Apple has supported the development and use of PWAs on its devices, the proprietary nature of its app ecosystem and strict app review guidelines have created challenges for PWA developers. However, there is a small chance we may see more PWAs on Apple devices in the future.
So should I use it?
Despite these challenges, PWAs have the potential to offer a number of benefits for both businesses and users. For businesses, especially if you only target Android devices, PWAs can be a cost-effective way to build and deploy applications, as they do not require the same level of investment as native apps. For users, PWAs can offer a more seamless and integrated experience across different devices, making it easier to access and use apps on the go.
Conclusion
While PWAs have not yet taken off as some experts had predicted, they still hold a lot of potential for the future. As more businesses and developers adopt the technology and more devices become PWA-compatible, it is likely that we will see an increase in the use of PWAs in the coming years.
So what about yourself? Tell me your story about a PWA that you worked on and share your experience!
You’ll probably like these, as well:
React State Management in 2022
I wanted to create a SaaS and failed before I started
Create a Chrome Extension with React and inject it into webpages