Web app developers constantly strive to improve the performance and user experience of their products due to the demand from consumers for faster, more responsive, and easier-to-use apps. In fact, according to Google, 46% of people would not purchase from a brand again if they had an interruptive mobile experience.
Enter progressive Web apps (PWAs), an alternative to native app development, that combines the best of traditional Web sites with the functionality of mobile apps to offer the speed and seamless integration users want.
What are PWAs and how do they differ from native apps?
Google introduced PWAs in 2015 as a cross between web pages and native mobile apps. They are, basically, Web sites that act like native mobile applications, combining the best features of mobile apps with Web sites.
Traditional native apps are typically built for each specific device and/or operating system (Android vs. iOS) using platform-specific programming languages (Java, C#, or Swift), which means apps are usually developed twice, increasing costs and development time.
However, PWAs use Web-centric technologies based on JavaScript (such as JSON, React, and Angular, but also PWA-specific components like Polymer) and HTML. The main driver of a PWA is a script called a Service Worker that runs in the background of a Web page to catch network requests outside of user interactions and cache and produce responses. This brings the speed and responsiveness of a Web page to a mobile app a user can access right from the home screen of their phone.
So, how do you know if a progressive Web app is right for your project? Let’s look at 5 pros and cons of progressive Web apps to help you decide.
Pros of PWAs
1) Accessibility
A PWA can download data and return user responses just like a native app or a Web site, but by using caching the app can utilize stored data if there is no Internet or mobile connection, essentially making it accessible offline and reducing the need for load and reload.
And, there’s no need to install the app on a user’s device from an app store, which saves device capacity; however, an app user can choose to save the PWA to their home screen for easy access.
2) Quick Download and Fast Performance
Since PWAs make heavy use of service worker technology, which runs in the background of the app, to operate, they load lightning-fast and respond to user requests with the same speed. Also, when a user installs a PWA on their device, there’s little lag time waiting for a download or installation process to complete, like there is with native apps.
3) Multi-Platform
PWAs are based on Web technology (Javascript, HTML, CSS), so they are mostly device and browser independent and don’t require duplicate development to run on Android, Windows, or iOS platforms.
4) Search Indexed
Because PWAs are essentially Web pages, they can take advantage of search engine optimization and Google indexing to allow users to find them via standard or even voice searches rather than through a device-centered app store.
5) No Updates Required
PWAs refresh themselves each time a user’s device has Internet or mobile connectivity and opens the app. There’s no need to push an update notification or make the user re-download the app.
1) Access to Hardware
Because a PWA is not natively installed to a user’s device, it cannot access certain hardware features like advanced camera functionality, Bluetooth, the altimeter, GPS, or Touch ID.
2) Platform Limitations
While PWAs are mostly multi-platform, there are some iOS compatibility issues prior to version 11.3. Additionally, PWAs are not supported by Safari, Internet Explorer, Edge, or custom browsers, which means older devices running these browsers cannot access and get the full benefit of PWAs.
3) Performance vs. Native App
PWAs are written in JavaScript, a single-threaded programming language, which inherently limits their performance as compared to native apps that use multi-threaded languages like Java.
In turn, devices do not natively interpret Web languages; doing so requires more processing power, which then drains battery life at a faster rate when a user accesses a PWA.
4) App Store Availability
Even though PWAs can be indexed and searched, they can’t be listed on a device’s app store. Users who find and download apps exclusively through their app listings may not find a PWA.
5) No Cross-Application Login
Since PWAs do not interact directly with native apps, they offer no support for cross-application logins or security. If a user has both a native app and a PWA, once they are logged in to one version of the application, they will still have to login to the other once they access it.
And, with iOS, there’s no Touch ID support, so logging in will require users to type in their actual credentials.
Which one is right for you?
If your business wants to add a mobile app to your suite of product offerings, but you have a limited budget, or your main focus is on speed, responsiveness, and seamless user experience, the choice to build a progressive Web app is clear. A PWA’s accessibility, fast performance, cross-platform capabilities, and especially search indexing give it the edge over a native app for your needs.
If you’d like to learn more about PWAs, check out this deep dive presentation by Google.
And, if you’d like to see PWAs in action, browse this directory at Appscope to see how companies like Instagram, Twitter, and Tinder utilize their features.