What’s New with Progressive Web Applications (PWA) Nowadays?
With Apple’s release of OS version 16.4 in March, Safari web applications can now send push notifications to iOS and iPadOS devices, as promised by Apple at the June 2022 WWDC. This long-awaited feature is an opportunity to review Progressive Web Apps (PWA), and to examine whether push notifications actually afford new app development possibilities on iPhones et iPads.
First of all, let’s recall that Google introduced PWAs in 2015, in response to web developers’ needs for a richer and more immersive user experience (UX) that could rival that of native applications. A key feature of PWAs is that the UX remains excellent no matter the quality of the browser, the hardware, or the network connection. The device adapts to the parameters of the hardware and software, hence the term “progressive.”
Progressive technology relies heavily on service workers (SW), which are JavaScript files whose main task is to cache subcomponents so that the app will continue to work offline. Indeed, SWs carry out their tasks asynchronously from the primary script. They also manage background data synchronization, they centralize incoming data from the GPS and the gyroscope, they preload resources that the user will eventually need, etc.
More experienced Spiria clients often ask us if a PWA could be a cost-saving solution for their mobile development needs. As a digital solutions specialist, I am of the opinion that this is certainly a more affordable option than developing two native applications, one each for iOS and Android. Until now, however, we ruled out PWA when developing for the Apple platform because push notifications didn’t exist.
With this issue addressed, let’s do an overview of its current limitations and possibilities.
PWA’s limitations
Let’s set the record straight: PWAs were invented by Google. Therefore, they work quite smoothly on Android. That said, here are the three main challenges on both types of mobile platforms.
- Browser Dependence: Who says web application, says browser. We are therefore limited by its features -- and its bugs! On iOS, the developer must use Safari's WebKit, which isn't very feature-rich.
- Resources Access: A PWA cannot fully access all of the phone's hardware and software. Most important are contacts, calendar and call features (text message intercept, voice calls, sending text messages).
- JavaScript: PWA remains, after all, just a web application composed of HTML, CSS and a lot of JavaScript. We’re talking about a single-thread language that doesn’t perform quite like a native application. This has an impact on battery life and on the UX.
Besides push notifications, which are now resolved, we must mention three more limitations that are specific to iOS and iPadOS:
- Safari/WebKit specifically: The only browser permitted to support PWA on iOS, with the limited features and custom bugs this entails.
- 50MB limit: As long as an Android phone has room, you can install an application no matter its size. An iOS phone, on the other hand, has a 50MB limit for data storage. This precludes a large-scale application and requires the script to be as efficient and optimized as humanly possible.
- Absent on the App Store: Installing a PWA is not possible from the App Store, which inhibits brands’ important need for visibility.
Advantages of PWA
So what are their advantages?
- Development costs: PWA’s most-touted advantage is its single code base for all platforms, be they mobile devices, tablets, laptops or desktops, which greatly reduces costs.
- Always up to date: As with all web applications, users do not have to make updates. No customer is ever marooned on an older version.
- Usage statistics: All marketing and statistical tools are ours for the taking to analyze user data and monitor the life of our application.
The SWOT analysis (strengths, weaknesses, opportunities, and threats) summarizes all of the above.
To wrap up, when looking into the suitability of a PWA, we need to answer “yes” to the following: Is the budget limited? Are we dealing with a small application such as an MVP (minimum viable product)? Are there fewer users? Are the desired features straightforward (no calling or photo taking, for example)? All sum told, its application is still quite restricted.