← Back

PWA vs. Native Apps: Difference, Pros and Cons

Close-up of an iPhone home screen with various app icons

One thing PWAs and native apps do have in common: the app icon on your phone’s home screen. Photo by William Hook on Unsplash

If you have ever looked into how to publish a real app alongside your website, you have probably come across the term “PWA”.

PWA stands for “Progressive Web Apps”. What a PWA is, what there is to know about it, and whether PWAs work just as well as real native apps - you will find out here.

App development basics

Developing native apps for Android and iOS is expensive. You have to support two different platforms, programming languages and APIs. On top of that, the user interface has to be built once for Android and once for iOS.

For an app of medium complexity you therefore need 2 developers - or better 4, for quality reasons - who can each build for Android and iOS devices.

But since you already have a website, it would be great if it could behave like an app and be installable.

Your plain HTML pages are not enough for that, though: for what you want to achieve, you need access to the camera, the QR code scanner, payment methods and push notifications. You would also like to offer an app-like offline experience.

This is where PWAs come in.

Progressive Web Apps (PWAs) are ordinary web applications that can be extended with capabilities previously reserved for apps. They also behave like apps.

Characteristics of PWAs

Caching and offline capabilities

Caching and offline functionality is one of the core building blocks of PWAs. It lets you specify which files must be available through the so-called service worker, the invisible helper working in the background of every PWA.

That matters especially when the mobile connection is less than ideal.

PWAs also make it possible to automatically resume a job (e.g. synchronisation) once the connection is back online.

Access to device features

Native apps are usually deeply integrated into your smartphone’s capabilities. Users take it for granted that apps can scan QR codes, take photos, determine the location or send push notifications - even when the app is not currently running.

Websites cannot do that. Unless you turn them into a PWA.

Some examples of such app capabilities:

  • Sending native notifications
  • Background sync API
  • Payment API

PWAs can do much more, e.g. speech recognition, barcode scanning and so on.

A great playground to experiment with PWA capabilities can be found here: https://whatpwacando.today

Lower development costs with a PWA

The advantage is obvious: PWAs are inexpensive and quick to develop.

What you should consider with a PWA

Biggest risk: PWAs do not always get support from smartphone manufacturers

Here is the catch: PWAs strictly depend on browser support.

On Android the risk is low, since there are many browsers for Google’s OS and Google Chrome both supports PWAs and actively pushes them forward.

With Apple, however, the situation is different.

In February 2024, Apple quite abruptly decided to drop support for parts of the PWA specification on all iPhones and iOS devices. After considerable pushback, the company from Cupertino did reverse that decision.

But the big risk remains, and you need to be aware of it. And if you do not want to take that risk, you need a real app - either built natively once for Android and once for iOS, or with cross-platform frameworks like Flutter.

Flutter lets you build for both Android and iOS from a single codebase. That saves time and money.

On top of that, Flutter apps can also be shipped directly as a PWA.

A website does not automatically make a good mobile app

Turning your website into a PWA is fundamentally very simple. All you need is a few lines of code, the PWA manifest, which you have to add to your website.

But just because you decide to turn it into an app with a few lines of code does not mean it becomes a good mobile experience.

You have to understand your users, their behaviour and how mobile devices work very well - otherwise the website converted into a PWA creates a lot of frustration on the user side and reflects negatively on your product or your company.

If you have extended your website with the PWA specification but usage does not grow, you should investigate:

  • Maybe your users do not need a mobile application?
  • The PWA experience is not good enough and you need a real native app

No publication in the app stores

Progressive Web Apps are not listed in the app stores. That means your PWA cannot be found through search there. App store optimisation is therefore not possible either.

Users often do not know how to install a PWA

Most users are not familiar with PWAs and do not know how to install one. They are used to installing apps through the app stores and struggle to find their way around PWAs.

Conclusion on the difference between PWAs and native apps

Depending on your requirements for mobile use, a PWA can be a good and cost-effective way to extend the reach of your web applications. PWAs can behave and look like real apps while being quite inexpensive to develop.

However, PWAs are not real native apps - and they are not suitable for many use cases. With real native apps you have more capabilities and options. You are also not exposed to the risk that Apple discontinues PWA support tomorrow and you have to start all over again.