React Native vs. Flutter vs. PWA

Published October 14, 2019, updated December 21, 2022
by Ivan Bezdenezhnih
13 min read
Mobile Development

What are the main differences between PWA, React Native and Flutter, and how to tell which one is the perfect choice for your next mobile development project.

React Native Vs. Flutter Vs. PWA

Please note that we wrote this in October 2019. As technology progresses at the speed of light, it’s possible that, at the time you’re reading this, one or a few things have changed.

When approaching a mobile app development project there are over a dozen choices for technologies to build it. You could build it in native android and iOS operating systems or you can use one of the many hybrid frameworks.

In this article, we’ll assume that you’ve already decided that having a single code base for your application (aka the hybrid framework approach) is a good idea. Now, you only need to choose the framework that works best for your app. And, that’s the hardest part. To help you out, we made a detailed comparison of the three most popular frameworks used today:

What is a Hybrid App?

Hybrid apps look just like native apps. You can download them and use them just like any other native app. However, they are essentially websites built with HTML5, Javascript, and CSS. The greatest advantage of building hybrid apps is that they work on both iOS and Android and you can build them with one codebase.

Mobile App Development UI - What is a Hybrid App?

Why Hybrid?

Hybrid technology shortens mobile app development time and provides a native app experience.

The hybrid approach enables you to:

With a growing number of mobile users, companies started investing more in mobile app development to improve user experience and keep users fully engaged.

Currently, the most popular hybrid technologies are PWA, ReactNative, and Flutter.

What is a Progressive Web App (PWA)?

According to Google: Progressive Web Apps are installable and live on the user’s home screen, without the need for app stores. They offer an immersive full-screen experience with help from a web app manifest file and can even re-engage users with web push notifications.”

Progressive Web Apps are:

  • Progressive — they work for every user on their mobile devices (unless it’s an outdated one)
  • Responsive — work on tablets and mobile phones, with any screen orientation and design
  • Connectivity independent — support working offline
  • App-like — feel like an app
  • Fresh — always up-to-date
  • Safe — Served via HTTPS and provided with the standard security practices
  • Discoverable — PWAs are identifiable as “applications”
  • Re-engageable — have features like push notifications
  • Installable —  might be placed on the home screen
  • Linkable — easily shared via a URL

What is React Native?

React native is a mobile app development framework that you can use to build mobile apps by using JS and React. React Native apps work on both iOS and Android platforms, and they are built from a single code base.

React Native supports embedding native modules written with Objective-C, Swift, or Java, to get even better OS-specific compatibility.

What is Flutter?

Flutter is an open-source mobile app development kit from Google that you can use to create high-quality apps with a single codebase, for Android and iOS. It is based on the Dart language and has native-like widget sets for both platforms.

What’s Common for all Three Hybrid Technologies?

They are free and supported by Android and iOS! In addition, they have:

  • Shared codebase — all three use a single code base to build apps
  • Hardware support — camera, microphone, speakers, geolocation, etc.
  • Native experience — they look and feel like native apps. They can be added to the home screen, and have native navigation and features, like sharing and push notifications. 
  • Backed by industry giants:
  • React Native is built and supported by Facebook
  • Flutter is developed and owned by Google
  • Most of the frameworks which are usually used to build PWA are backed by industry giants like React (Facebook) or Angular (Google).
  • Open-source and free
Mobile Applications

What Are The Main Differences Between PWA, React Native And Flutter?

All three technologies will help you build mobile apps for iOS and Android, using JavaScript (for React Native) and Dart (for Flutter). The main perk is that you can create native apps for both platforms with the same language, but what are the differences between these technologies?

We are going to discuss the main differences and point out important features and limitations that can help you decide which platform is the best for your mobile app.

When Was The Technology Introduced?


In 2015, designer Frances Berriman and Google Chrome engineer Alex Russell coined the term progressive web apps to describe apps taking advantage of new features supported by modern browsers, including service workers and web application manifests.

React Native

The first version was released in 2013 at a Facebook hackathon project.


The newest technology was released in 2017.

Supported By Industry Giants And the Most Famous Applications


The frameworks you need to build PWA are usually backed by industry giants (Angular by Google, React by Facebook) or a massive community of contributors (like vue.js).

Some of the most famous PWA applications are:

  • Aliexpress
  • Twitter lite
  • Telegram
  • Uber
  • Google maps

React Native

Backed by Facebook, the most famous mobile applications built with React Native are:

  • Facebook
  • Instagram
  • Pinterest
  • Skype
  • Uber


Built by Google, here are the most famous Flutter applications:

  • Google
  • Google Ads
  • Google Greentea
  • Abbey Road Studios

Distribution Channel And Audience


Since a Progressive Web Application isn’t a native application, it can’t be distributed through the Google market and the Apple store. That’s certainly a downside for many projects, but there are also tons of benefits that make PWA a great choice.

Android and Apple Logo

You can easily distribute your application directly through the web since:

  • It doesn’t require to be installed first
  • It could be used immediately once opened
  • It doesn’t take device memory, so there is a lower user engagement threshold
  • It doesn’t have to be approved by the App store or Google market to become available to the public
  • You can monetize it following your own plan, without paying any commission and following third-party monetization rules.

React Native and Flutter

The general advantage of both React Native and Flutter is that you use them to build real native web applications that you can distribute on Google Play and App Store. This means that the user has to download and install the app before using it.

Another advantage of having the “real” mobile app is an opportunity to use Google and Apple monetization tricks and have in-app billing, advertising, and paid versions.

Native Engagement Experience (Push Notifications And The “Share” Feature)


The Push notifications are supported through W3C Specification. Though, they are available on Android but not on iOS, unless you use a Safari browser.

You can easily share any PWA content through other applications on Android, and the same feature should be added soon on iOS too.

Currently, you cannot register your application as a share target (also known as deep linking), but we can expect this feature quite soon via Share Target API in Chrome on Android. At the moment, there isn’t any news about doing the same for iOS.

React Native

Push notifications, share, and share target (deep linking) are supported natively.


Push notifications are supported natively as well. However, the ability to share is supported only with third-party native extensions.

Contacts Integration


Contacts integration is not supported by W3C yet, but it’s possible through third-party contacts integration (it’s possible to get phone contacts from Google’s API).

React Native and Flutter

Fully supported natively.

SMS & Calls Integration


PWAs can’t read and send SMS, but they can invoke calls by manual page action like tapping the “call me” button.

React Native and Flutter 

The application built with any of these two can invoke calls by a manual action like “call me” somewhere on the screen. Both React Native and Flutter applications can read SMS but on Android only. 

For sending SMS, iOS, and Android both support sending messages by native embedded SMS applications and can utilize callbacks to get control back to the application once the message is sent.

PWA Installation



PWA application can be installed as a shortcut on the home screen.

React Native and Flutter

Both can be installed as native applications on the device.

Flexibility To Fit The Common Platform Ui/Ux Approach


The Progressive Web Application is a Web application in the first place, so there are plenty of web frameworks with any possible languages. All of them are widely supported by the community.

What you need to do is choose an app development framework that fits your application the best and that has all functionalities and abilities you need. Though the platform-specific UI/UX approach is not supported, so the PWA won’t be looking fully like the native application on all the platforms.

React Native 

React Native provides excellent support for native UX/UI, though the framework relies too much on third-party components. Some native components are adaptive to the platform, such as the height of the search bar, fonts, and shadows, and some are not.


Flutter has platform-specific widgets that you can use to create exciting apps with a native UX on both Android and iOS. These customized widgets help you design an engaging user experience. Flutter doesn’t rely on 3rd party components, but you can still use some if needed.

PWA Hardware Support

Hardware Support

At the time of this writing, PWA technologies have some limitations related to hardware interaction & functionalities. Be sure to compare your requirements with what is possible before choosing the technology.

Since React Native and Flutter are supported on most hardware, here’s a list of what’s not supported!


To check if you can rely on the web platform to build your app, open, and it will give you a list of features, and services that are supported and not supported on your device.

What’s not supported on Android as of this date (Chrome browser):

  • NFC
  • Ambient light measuring
  • Geofencing
  • Proximity sensors
  • Wake lock

What is not supported on iOS as of this date (Safari browser):

  • Media Recording
  • Bluetooth support
  • NFC
  • Ambient light measuring
  • Geofencing
  • Proximity sensors
  • Screen orientation
  • Wake Lock
  • Speech API
  • Network Information
  • Device Vibration
  • Battery information

React Native and Flutter

These two frameworks can support anything through native extensions.



The stability of PWAs entirely depends on the selected framework, so it’s hard to give a general yes or no.

React Native 

If React Native relies too much on third-party components, stability might become an issue, because some of them might not be supported and not updated often enough.


Flutter is much more stable than React Native, since most libraries are included, and they are often updated and compatible with any new versions.



PWA usually has lower performance because it uses web DOM and requires a browser to be implemented which isn’t as fast as native rendering. Might not be a good fit for applications for which the performance might be a bottleneck. E.g. if there is a lot of data that should be stored and searchable locally in offline mode, it might be an issue.

React Native

React Native provides pretty good performance because it uses the native rendering engine through the bridge. Though, the RN – bridge – native UI rendering architecture is not very stable and might cause memory leaks due to its nature.


Flutter utilizes its rendering engine and has an excellent performance that is almost equal to native rendering.

Black Screen With Lines of Code

Ease Of Coding


The ease of coding for progressive web applications depends on the selected framework, so the answer is very relative. However, almost any web-based technology can be used.

React Native

This framework is quite stable as it uses JavaScript and React approach. There are a lot of experts in this area, and the community is enormous. Requires native development knowledge to make extensions.


Flutter requires knowledge of Dart language which isn’t as popular as JavaScript or some similar language. The technology itself is pretty young still which makes it harder to find people with the respective expertise too. The community is not as big as the React Native one so it makes it harder to find solutions in some tricky cases. 

If the project is supposed to implement some custom platform extensions (to work with some specific hardware or something like that), it would also require some mobile native development experience.

  • Requires to know Dart
  • Not that many professionals are available yet for React Native
  • Requires native development knowledge in order to make extensions

Development Speed


Having the same code base for both web and mobile applications can significantly increase the development speed and reduce its cost. All the other factors that determine the mobile app development speed depend on the choice of framework.

React Native

React Native framework has a hot reload feature that speeds up the mobile app development time by automatically reloading the app every time the code changes. Plus, developers can use quite a lot of third-party components, which will also speed up the development process and of course, increase the speed to market.


Flutter also has the hot reload feature and is packed with default widgets that you can use to make an entire application and do that pretty fast. If you need something other than these widgets, development time might take a bit more than with React-Native because you would have to code from scratch.

What Technology is the Best Choice For Your Project?

Choosing the right mobile app development company technology for your project depends on the specific needs you have. But for starters, to help you out, we’ve come up with a mini-guide that will tell you when is the best choice to use PWA, Flutter, React-Native,

When PWA Is Best:

  • When you are not looking to distribute your app on Google market and App store
  • When it’s imperative to have the same code base
  • If your application is rarely used, so users usually avoid installing it
  • When your app doesn’t take up too much data to be stored offline and when it doesn’t have high-performance requirements
  • When you don’t need options like SMS reading, deep-link integration, device vibration, etc
  • When you already have a web application, and now you want a 
  • You already have a web app and want to have minimal time-to-market

When React-Native Is Best:

  • PWA doesn’t fit you for some reason
  • When you need to have different UI/UX for different platforms with unique elements and layouts
  • You couldn’t build the app with a predefined set of standard Flutter widgets
  • When you already have ReactNative experts on your team

When Flutter Is Best:

  • PWA doesn’t fit you for some reason
  • When you can build the app with the standard Flutter widgets set
  • When you wish to educate developers on how to use Dart and Flutter and when you have access to Flutter professionals

Choose PWA when you want to distribute apps on private channels.

Choose ReactNative when you want to have a near-native experience and when you want to use JavaScript.

Choose Flutter when you want to stand out in the market and use Dart as a programming language and when you want to have a beautiful UI.

If you’re looking for help in choosing the right technology and approach for your company’s mobile app, get in touch! We’d love to hear from you.

Originally published October 14, 2019, updated December 21, 2022

Related Posts

Mobile App Development Languages - Programmer coding on mobile
Mobile App Development

A Complete Guide to the Top Mobile App Development Languages

In the past decade, mobile devices have become integral to our daily lives. According to Data Reportal, there were 5.22 billion mobile phone users at the end of 2020—that’s more than half of the world’s population! This rapid growth has led many businesses to focus on developing apps, as mobile apps have become the best […]
18 min read
by Jeffery Thompson
Agile Software Development Outsourcing
Software Outsourcing

Agile Software Outsourcing

What Is Agile Software Outsourcing? Agile software’s high success rate can be as high as 64%, according to Zippia. It’s a significant disparity from Waterfall’s 49%. This is why at least 71% of companies in the US have adopted Agile, including IBM, Microsoft, and Cisco. Most companies are aware of the advantages of Agile, but […]
13 min read
by Jeffery Thompson
Anatomy of Bug Life Cycle in Software Testing
Software Testing and QA

The Anatomy of a Bug’s Life Cycle in Software Testing

What Is a Software Bug? A software bug is a flaw in the code of a program. It can be as small as a typographical error or as large as a significant logic error. There are many different types of bugs. Some are easy to fix. Others may need a lot of time and effort […]
11 min read
by Jeffery Thompson
Book A Call

We’re BIT Studios!

At BIT Studios we specialize in designing, building, shipping, and scaling beautiful, usable products with blazing-fast efficiency