Our team frequently advises our clients on what type of application to choose: native, cross-platform, or PWA. Therefore, we decided to simplify our task and write an article focusing on the difference between native apps and PWAs.
What is PWA?
Progressive Web Apps (PWA) is not a framework or SDK. It's a philosophy on how modern web applications are built. Simply put, it's a display mode of a website that can be run as an application on smartphone hardware, providing a similar experience to an app. Hence, PWAs can work on any device equipped with any hardware, whether it's a computer, tablet, or smartphone.
From a technological standpoint, PWAs utilize modern web standards available in browsers: HTML5, CSS3, and JavaScript. PWAs do not impose any special restrictions on the web applications themselves. For instance, PWAs can be single-page applications (SPAs), or not.
The main feature of PWAs is the support for offline functionality using the Service Worker mechanism and the associated ability to add the application icon to the user's device home screen. Companies such as Tinder, Pinterest, Forbes, Aliexpress, and Uber have PWA applications.
The main feature of PWAs is the support for offline functionality using the Service Worker mechanism and the associated ability to add the application icon to the user's device home screen. Companies such as Tinder, Pinterest, Forbes, Aliexpress, and Uber have PWA applications.
PWA vs Native
Progressive Web Apps (PWA) have a range of advantages over native apps. However, like any other approach, PWAs have their drawbacks too. Let’s compare PWAs with native applications.
Advantages of Progressive Web Apps (PWA)
✔️️ Cross-platform compatibility.
PWAs work with most browsers and operating systems:
- Browsers: Safari, Chrome, FireFox, etc.
- OS: iOS, Android, macOS, Linux, etc.
✔️️ Faster deployment.
It's easier for developers to create a PWA than to develop native apps for different platforms.
It's easier for developers to create a PWA than to develop native apps for different platforms.
✔️️ App performance.
Since PWA is essentially a website, its performance speed cannot match that of native apps. When compared to React Native, the disparity isn't key, however, PWAs on Flutter will perform much better than RN apps and provide a better overall experience.
✔️️ Push notifications.
PWAs enable push notifications through Service Workers. However, this feature is platform-dependent. They are available in browsers like Chrome, Opera, Safari, and Mozilla, and Safari on iOS. Push notifications in PWAs work well on Android; this feature was introduced in update 16.4 and is enabled by default for all iOS users.
✔️ Independence from app stores.
With PWAs, the lengthy content update reviews, possible app removals, and opaque under-the-hood checks in Google Play/Apple Store/App Gallery become a thing of the past. A PWA is an app assembled from a browser. To deploy an app on a website, there's no need for app stores; simply upload it to a domain.
Since PWA is essentially a website, its performance speed cannot match that of native apps. When compared to React Native, the disparity isn't key, however, PWAs on Flutter will perform much better than RN apps and provide a better overall experience.
✔️️ Push notifications.
PWAs enable push notifications through Service Workers. However, this feature is platform-dependent. They are available in browsers like Chrome, Opera, Safari, and Mozilla, and Safari on iOS. Push notifications in PWAs work well on Android; this feature was introduced in update 16.4 and is enabled by default for all iOS users.
✔️ Independence from app stores.
With PWAs, the lengthy content update reviews, possible app removals, and opaque under-the-hood checks in Google Play/Apple Store/App Gallery become a thing of the past. A PWA is an app assembled from a browser. To deploy an app on a website, there's no need for app stores; simply upload it to a domain.
Drawbacks of PWA
One of the primary drawbacks of PWAs is that they can be slower than regular websites. This occurs because PWAs need to load all data and resources required for the software's operation, including fonts, images, and JavaScript files. If the site has a lot of data, this could slow down the page loading time.
Certain hardware may not support specific PWA features, such as push notifications or offline mode. Similarly, some browsers may not support PWA capabilities.
PWA software ensure security by utilizing the HTTPS protocol, web app manifest, and Service Workers. They rely on the protection provided by the browser and require preliminary defenses against attacks like CSRF, XSS, SQL injections, and other similar threats.
PWA software ensure security by utilizing the HTTPS protocol, web app manifest, and Service Workers. They rely on the protection provided by the browser and require preliminary defenses against attacks like CSRF, XSS, SQL injections, and other similar threats.
Advantages of Native Apps over PWAs
✔️️ Maximum Performance and Functionality.
Native software can fully leverage functionality, providing high performance and access to a wide range of features.
Native software can fully leverage functionality, providing high performance and access to a wide range of features.
✔️️ Full Access to Device Features.
Native apps can interact with the camera, sensors, geolocation, and other device capabilities.
✔️️ Enhanced User Experience.
Native apps can offer the best user interface, experience, and interaction through optimization for each platform.
✔️️ Access to App Stores.
Being listed in app stores can increase an app's visibility and user trust.
✔️️ In-app Security.
Native apps are considered more secure due to several factors:
Native apps can interact with the camera, sensors, geolocation, and other device capabilities.
✔️️ Enhanced User Experience.
Native apps can offer the best user interface, experience, and interaction through optimization for each platform.
✔️️ Access to App Stores.
Being listed in app stores can increase an app's visibility and user trust.
✔️️ In-app Security.
Native apps are considered more secure due to several factors:
- Apps employ multi-factor authentication.
- Have SSL certification.
- The app stores have a set of rules, ensuring that app security is maintained at an acceptable level.
Disadvantages of Native Apps compared to PWAs
- The need to develop separate versions for different platforms (iOS, Android) may require more time and resources.
- Updates to native apps must go through an approval process in the app stores, which can cause delays.
- Native apps require downloading and installation, which may deter some users.
Let us separately focus on the limitations of basic platform features on iOS and Android. The limitations and features that are unavailable as of April 2023 are emphasized.
Android | iOS | Заголовок 3 | Заголовок 4 | Заголовок 5 | Заголовок 6 | Заголовок 7 | Заголовок 8 | Заголовок 9 |
---|---|---|---|---|---|---|---|---|
Video | Video | Нужен блок | Нужен блок | Нужен блок с табличкой для статей на вихре | Нужен блок | Нужен блок | Нужен блок с табличкой для статей на вихре | Нужен блок |
Geolacation | Geolacation | |||||||
Notification | Notification | |||||||
Contact picker | Contact picker | |||||||
Web share | Web share | |||||||
Authentification | Authentification | |||||||
File System | File System | |||||||
Vibration | Vibration | |||||||
Audio recording | Audio recording | |||||||
Audio | Audio | |||||||
Bluetooth | Bluetooth | |||||||
Web NFC | Web NFC | |||||||
QR code scan | QR code scan | |||||||
AR/VR | AR/VR | |||||||
Payment | Payment | |||||||
Wake Lock | Wake Lock | |||||||
Sensor | Sensor | |||||||
3D Motion | 3D Motion | |||||||
Multi Touch | Multi Touch | |||||||
Network info | Network info | |||||||
Speech synthesis | Speech synthesis | |||||||
Speech recording | Speech recording |
What to Choose
In conclusion, we will outline situations when you should particularly consider Progressive Web Applications (PWA).
Limited Time and Budget: PWAs needs less time and resources for app development and publication. If you develop a PWA using the Flutter framework, the company gets a whole suite of applications for part of the cost: Web + Mobile + PWA. This is cheaper than maintaining three teams of developers: Android — Kotlin, iOS — Swift, Web — JS.
You want a simple application for your users: PWAs do not require downloading and allow interaction with users through push notifications. Additionally, PWAs will help you engage uninvolved users — those who prefer interacting with websites. Typically, such users are reluctant to transition to mobile apps, with the likelihood of this being around ≈30−60%. Progressive web applications can increase the likelihood that a user will use both Web and PWA.
You need platform independence: PWA is assembled for any platform Android and iOS, using a browser. Therefore, it doesn’t matter from which platform the application was installed.
You want a simple application for your users: PWAs do not require downloading and allow interaction with users through push notifications. Additionally, PWAs will help you engage uninvolved users — those who prefer interacting with websites. Typically, such users are reluctant to transition to mobile apps, with the likelihood of this being around ≈30−60%. Progressive web applications can increase the likelihood that a user will use both Web and PWA.
You need platform independence: PWA is assembled for any platform Android and iOS, using a browser. Therefore, it doesn’t matter from which platform the application was installed.