Blog
Back

A Checklist to Help You Choose Between PWA and Native

323
#Development 25 july 2023
  • Nick Gribkov

    Flutter-developer

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 to build modern web applications. Simply put, it's a display mode of a website that can be run as an application on a smartphone. Hence, PWAs can work on any device, whether it's a computer, tablet, or smartphone.
From a technological standpoint, PWAs utilize modern web standards available in browsers: HTML5, CSS3, and JavaScript. The PWA approach doesn't 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.

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 capability.
PWAs work with most browsers and operating systems:

  • Browsers: Safari, Chrome, FireFox, etc.
  • OS: iOS, Android, macOS, Linux, etc.
✔️️ Faster deployment.

Creating a PWA is quicker than developing 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 is not significant, however, PWAs on Flutter will perform much better than RN apps.

✔️️ 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 the resources required for the app's operation, including fonts, images, and JavaScript files. If the site has a lot of content, this could slow down the page loading time.
Certain devices may not support specific PWA features, such as push notifications or offline mode. Similarly, some browsers may not support PWA capabilities.

PWA applications 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 apps can fully leverage device 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 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


  1. The necessity to develop separate versions for different platforms (iOS, Android) may require more time and resources.
  2. Updates to native apps must go through an approval process in the app stores, which can cause delays.
  3. 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 require less time and resources for development and publication. If you develop a PWA using the Flutter framework, the business gets a whole suite of applications: Web + Mobile + PWA. This is cheaper than maintaining three development teams: Android – Kotlin, iOS – Swift, Web – JS.

You want a simple application for your users: PWA does not require downloading and allows 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 applications, 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.
  • Nick Gribkov

    Flutter-developer

Blog

0 / 0

Product Strategy Forum: development & implementation

Museum of London Docklands on May 31