fbpx

You may not realize it, but there’s an earth-shattering debate raging all across the web right now that is shaking the very foundations of our digital civilization:

“Should developers build progressive web apps (PWA), or should they opt for a Native mobile app experience?”

Okay, maybe it’s not that serious, but “PWA vs. a native app” is an important consideration for custom development of your next mobile app.

Table of contents

  1. What is a Native App?
  2. What is a Progressive App (PWA)?
  3. What is the Difference Between a PWA and a Native App?
  1. Cross-Platform Native Codebases to the Rescue
  2. So Which is Better in 2020? Which Should I Choose?
  3. Our Experience in Native App Development
  4. Our Experience in PWA Development
  5. PWA Times?

With the ubiquity of mobile devices and the rise of the mobile web, developers are beginning to question whether native experiences, i.e., downloadable apps, are going the way of the dodo bird. After all, if you could build a PWA and get a truly cross-platform, no-download experience with all the benefits of web and native applications nearly for free…why wouldn’t you?

pwa app development

As an app owner, you’re probably asking yourself that very question. Rest assured, dear reader, we’ve thought about the matter long and hard. Our wealth of experience building both native and progressive web apps has given us valuable insight into this fractious debate.

Before we share our knowledge, though, let’s get a few things straight. Namely, just what a PWA vs. a native app is.  We’ll start by refreshing our memory of the “native app or PWA” basics.

1. What is a Native App?

The dumbed-down definition of a native app is a mobile application that can be downloaded from an app store, e.g., App Store, Google Play, or Galaxy Apps. However, you can download native apps just as easily virtually from anywhere on the internet. Plus, Google is already piloting a technology that accepts PWAs into Google Play.

What makes an app genuinely native is a programming language that it’s built with.

  • For Apple’s mobile ecosystem it’s Swift or Objective-C
  • For Android its Kotlin or Java

programming languages to develop native apps

Wait, how about all those cross-platform frameworks like React Native and Xamarin? They let app developers work with the same code base, and ship mobile products to the App Store and Google Play at the same time. Aren’t such apps native? They are, to an extent.

Apps built with cross-platform tools have JavaScript at their core and often rely on native code to tap into advanced features of a mobile OS. You can spot a 100 percent cross-platform app if you see UI elements that belong to a mobile website (like a dull spinner) or weird menu options you used to see on older phones. And those cross-platform apps that go the extra mile to really mimic native experience are at least 50 percent native.

new rapid prototyping ebook

The bottom line is that often only developers can tell you whether an app is native or PWA. And that’s the point, right? Users don’t care whether you spent a month or two releasing the app. Now, how do PWAs fit into this picture?

2. What is a Progressive App (PWA)?

We’ve all downloaded apps from the App Store or Google Play. You probably have Facebook, or YouTube, or Gmail on your phone’s home screen right now, so the concept of a “native” app should be pretty familiar.

example of a progressive web app Google Maps Go

However, if you’ve run into Google Maps Go or Twitter Lite and installed them — you also have PWA from Google Play.

Progressive web apps are fairly new on the scene – only seeing more widespread adoption in recent years – and at first glance, they can be indistinguishable from a regular web application. So without knowing what to look for, you may have used one without even knowing it.

Despite this surge in popularity, however, for one reason or another, PWAs have yet to take over the mobile market completely. Not least among these reasons is that they’re still not treated as first-class citizens on iOS devices.

But we’ll get to that. For now, let’s focus on getting a solid definition of these “new-fangled” PWA things.

find out if PWA will work for your app

PWAs have many different definitions depending on who you ask, but the technical (and arguably the original) meaning, as outlined by Frances Berriman and Alex Russel all the way back in 2015, specifies three things required of an app to qualify as a PWA:

  1. Must run under HTTPS
  2. Must serve a Web App Manifest
  3. Must use Service Workers

But as far as definitions go, that honestly isn’t very helpful. (Too much jargon!)

Luckily, thanks to our experience with building PWAs, I think we can offer a much more intuitive explanation for what exactly makes a PWA.

Put more plainly, PWAs are web apps that seek to appear and act exactly like their native counterparts: They work full screen to make the user experience immersive, can be installed and accessed from the home screen just like a native app. Furthermore, PWAs can save the state from session to session and even access your device’s hardware capabilities, so they can do things like track your location, access your health data, or use a camera.

progressive web app

 

3. What is the difference between a PWA and a Native App?

So what’s the real difference between a progressive web app and a native app? If a user can mistake one for another, why would you care? Obviously, because you’ve heard about some advantages of PWAs over native apps, right?

PWAs promise many things:

  • an experience that is indistinguishable from native mobile products
  • an untethered existence, free from app stores or lengthy downloads and updates
  • a unified in-app experience accessible across all devices (even desktop!)
  • a simplified development process that can take between 50 and 75 percent less time than a traditional native mobile development process.

That said, reaping all these benefits turns out to be harder than it seems. Even with their supposed advantages over native apps, PWAs still suffer from performance problems:

  • being especially hard on a device’s battery
  • lack of features
  • hardware integration problems

Despite these potential shortcomings, PWAs are still powerful new contenders on the scene with a lot to offer, so whether they are right for you and your company depends entirely on your app and your business. To find out if they’re right for your use case, let’s drill down and try to make a case for whether you should choose to build a PWA.

Pros and Cons of PWAs in 2020

Let’s explore three aspects of PWAs that may affect your decision to build one: the good, the (maybe) bad, and the truly ugly.

PWA vs. native apps

First, we’ll explore the unadulterated good: the ease of development that PWAs can offer compared to native development.

Then, we’ll look at the bad (or still good, depending on who you are) that can come with the purely web-based promise of PWAs.

And finally, we’ll explore the tragic situation that results from PWAs being second-class citizens on iOS devices and not quite VIP on Android.

The Good: Ease of Development

I’ve hinted at this fact above, but at their core PWAs are simply web apps with added functionality to make the experience more immersive on mobile devices (fullscreen, gestures, etc.) As such, PWAs rely on a well known and, frankly, ubiquitous tech stack: HTML and Javascript.

This reliance on the well-trodden ground of JavaScript callbacks and DOM elements means that development is significantly easier compared to building a native app. You won’t have to worry about making sure your team can handle coding for iOS and Android in parallel (plus, a server-side) since you only need to develop a single web app.

PWA development is easier than native

Having a single codebase that is entirely web-based also means that a lot of the smaller annoyances that go with mobile development are taken off the roster. Gone are the days of tracking and squishing bugs for both versions of your app. Say goodbye to having multiple release schedules for all the app stores.

Differing app-store guidelines limiting what one or the other version of your app can do? Seeking app store approval for changes? Not with PWAs. And as an added benefit, you definitely won’t have to worry about the app stores taking a cut of your app’s purchase price.

The “write once, deploy everywhere” workflow behind PWAs is at the core of all of these development benefits, and it is probably one of – if not the single greatest – benefit of PWAs.

get estimate for native vs pwa

These benefits exist because PWAs are web experiences first and foremost, but while that web-based experience can end up being the best thing that ever happened to your developers, and maybe even your users, it may also be the very thing that prevents your new app from being discovered.

The (Maybe) Bad: A Web-Based Experience

Since they’re just web apps at the end of the day, PWAs can leverage all of the benefits of the web platform, including those mentioned above, while still getting access to some of the native features through mobile devices’ browser capabilities (via Service Workers).

PWA vs. native apps capabilities and reach

 

Service workers may make them feel like native apps, but PWAs are still effectively websites under the hood, and that means they are:

  • Shareable — This may be more or less useful depending on your app, but in theory, a user should be able to take the URL of the page they are on and share it with a friend, or access that same URL on another device and get the same page.
  • Installation Optional — Users can simply use your app as a website if they choose not to install it. In other words, no more awkwardly asking users to install your app. They can, if they want, but they can still use your app. Again, many people are already using PWAs without knowing it.
  • SEO Relevant — Being a web page at heart means that search engines can crawl your progressive web app (the publicly facing parts, at least). Suddenly, your solution becomes searchable.

For companies that are transitioning their existing web products into PWAs, these could potentially be huge boons. With the right attention to detail, you could keep all of your “SEO juice” and continue to reap the spoils of a well-indexed and eminently shareable website while still going all in on the mobile space.

mobile first indexing

But, for companies starting from scratch or transitioning away from a native app, building up your web presence from scratch might be less enticing, and indeed disastrous. Any good SEO consultant will tell you that it takes time, effort, and, indeed, sometimes money and advertising to maintain a competitive search presence nowadays.

Without a central one-stop-shop like native apps have in the Google Play Store and the Apple App Store, PWAs live and die by their ability to be found by people searching on the web. Note that 2021 will mark the point when more and more PWAs become available in Google Play (not App Store, though).

It turns out that app stores offer a lot of discoverability right out of the box: everyone knows where to go to find the apps they want. There are efforts out there to provide a similar experience for PWAs like Appscope, but their popularity obviously pales compared to Apple and Google’s marketplaces. If you’re a smaller shop with less of a chance of reaching the top of search results, you might not see the adoption you need without costly marketing or SEO consulting.

We'll provide insight into what tech stack and APIs work best for your app idea.
Tell me more

However, even if you are blessed with good SEO and top-ranking search results, don’t celebrate just yet. Chances are that around half of your users are on iPhones or iPads, and I hate to break it to you, but…

The Ugly: iOS, Safari, and PWAs

That’s right, we’re finally going to address the fact that iOS doesn’t fully support PWAs (as of iOS version 13). It is probably the single most limiting thing about PWAs right now, so let’s get into it.

the disadvantages of pwa

In short: Apple values the integrity of its walled-garden. So, many of the capabilities that Chrome exposes for PWAs on Android are simply missing when it comes to Safari on iOS.

For example: on iOS, having background sync in a PWA will require substantial efforts from a development team like leveraging offline detection and IndexedDB. At least the preview in the app switcher is no longer empty and displays a PWA card like any native app’s card.

Background sync is far from the only problem. In fact, the list of missing iOS features for PWAs is quite long. The following is a non-exhaustive list of either things native iOS apps or Android PWAs can that iOS PWAs can not:

  • Store more than 50mb of files for offline content
  • Display install banners to invite installation to the Home Screen
  • Access each app separately in settings, they’re all under “Safari”
  • Use native social capabilities
  • Open the locally installed PWA context when opening a link

will your pwa perform as expected on ios?

  • Background code execution is limited
  • No in-app payments
  • Use Bluetooth
  • Access the altimeter
  • Access battery information
  • ARKit
  • Lock the screen orientation
  • No push notifications

Any one of these individually could be a dealbreaker for PWAs, depending on the app. But that last one, a lack of push notifications, is egregious.

PWA app case study

 

Our team Topflight has had firsthand experience with it. As of right now, a PWA we built for one of our clients – an AI helping people meet their mental health goals – is unable to send notifications to its iOS users.

For our clients, and indeed for any app that seeks to make timely recommendations to its users, this is a particularly thorny restriction to have to deal with. With iOS’ share of the mobile market hovering around 50%, it’s hard to imagine abandoning a vast swath of your audience by building a PWA that needs any of these features to work on Android and not iOS.

4. Cross Platform Native Codebases to the Rescue

With somewhere around half the mobile market not being able to make full use of PWAs, it seems that the only way forward is to build a native app.

But drinking the PWA kool-aid means believing that native development is devoid of efficiency, and committing to native development is a development death sentence, right? Must we continue to deal with multiple codebases, disparate deployments, teams needing iOS and Android knowledge to develop effectively, and being tied to the whims of the app store admins? Must we truly resign our fate and sacrifice our programmers and their productivity at the altar of hardware API access?

Well, not necessarily.

PWA built using native

What if you could get some of the benefits of PWAs while writing iOS and Android code? What if you could simply write javascript and HTML, while still making deployment to all of the app stores easy? Furthermore, what if you could get that ease of development while still having access to all of the capabilities of the mobile platforms your app runs on?

There are actually many frameworks out there that promise to make cross-platform development a reality by leveraging Javascript. Each of these frameworks allows you to develop and compile your app separately to mobile, desktop, or to the web, while still only writing a single codebase.

Our preferred platform is React Native, which, like vanilla React, allows you to define “components” in Javascript that get translated by React Native into code that the native platforms can understand.

Now, compared to the prospect of developing a web app and allowing any mobile device with a modern browser to install and use your app seamlessly, you’ll still be writing a comparatively large amount of platform-specific code with React Native.

 fully native cross platform apps

The good news is: React Native takes this necessity and places it front and center in the development process. Providing ways of structuring your code that make platform-specific code easy to understand and a breeze to write. React Native also allows you to include your own native C++, Java, or Swift libraries where appropriate with a simple import statement. Things like background jobs, complex multithreaded image processing, or database access code are not outside your reach because you chose a high-level framework.

With React Native, in exchange for having to deploy our app to the app stores, and having to do a little bit of extra work to get cross-platform deployments ready, you can buy yourself the best parts of the PWA development process and the native capabilities you need. In essence, React Native allows you to mitigate many of the problems with native development that PWAs attempt to solve while still requiring half the effort of traditional native development.

5. So Which is Better? Which Should I Choose?

PWAs have a number of clear benefits:

  • they don’t require downloading
  • they’re easy to develop
  • they use web technologies that are ubiquitous and enable any phone with a browser to use your app.

They also come with caveats that mean complicated use cases might not be possible to pull off uniformly across all devices.

choosing pwa vs native

Native Apps enable better raw performance, API access, and features like code injection and background jobs, but can require more in-depth development and larger (or duplicate) codebases to get cross-platform adoption up and running.

PWAs may be the obvious go-to for companies who don’t require mobile-specific capabilities, are vary of app development costs and have an existing web presence that will allow for visibility in search rankings.

expert advice on pwa vs native

Meanwhile, native apps are a solid choice for a business with a mobile app that needs the features of modern mobile devices.

Thanks to React Native and an aggressive development schedule, we built Helpkin a fully functional MVP for both app stores in 5 short months. As a social network for trading babysitting, playdates, and other services between friends, Helpkin’s use case requires complex UI views, calendar integrations, navigation capabilities, and analytics for user tracking.

We were able to seamlessly deploy Helpkin to the Play Store and the Apple App Store from Day 1, and now both versions of the app are rated 5 stars!

helpkin case study

Helpkin’s case and aggressive timeline really pushed us to our limits. Even deeper than that, it drove home for us that cross-platform native development needn’t be as difficult as it used to be. Check out our case studies for yourself and see what’s possible with React Native or PWA.

6. Our Experience in Native App Development

We’ve developed a fair share of native mobile apps and can definitely see the case when a native app is a safe bet. I’d say you should go for native development when you want to:

  • offer premium-quality service
  • connect to IoT devices
  • have different roadmaps for Android and iOS apps
  • build a game (alas, we don’t do those)
  • provide fancy animations

Please note that here under “native” we include apps built either Swift, Java, Kotlin, Objective-C, or React Native and Flutter. A perfect example of a native app we made is WalkerTracker.

walker tracker screenshotsThis fitness app integrates with Apple Healthkit, Fitbit, Google Fit, and Samsung Health. It tracks users’ movements via a Mapbox API for international step competitions.

Here’s another example from our portfolio: Sherpa, a fintech budgeting utility for personal finances. The app integrates with the user’s bank account and helps them run a smarter budget. The main reasons to build Sherpa as native apps were PCI compliance and bank-level security.

 

example of a native app vs. PWA Sherpa

 

7. Our Experience in PWA Development

One of the PWAs we’ve built is an AI-assisted mental health app. This project helped our customer get into a business incubator and continue innovating his product.

mental health PWA app exampleAnother recent product we’ve built using the PWA format was Habitap, a habit-tracking app with dashboards, social interactivity, and other cool features. A CrossFit gym needs to engage its members and help them stick with a healthy lifestyle by using a universal, subscription-based app.

pwa app example

While there are nuances, our general train of thought is to go for a PWA when you want to:

  • build an MVP version
  • quickly make your existing web property available as a mobile app
  • reach as many customers as possible
  • neglect such features as notifications and background sync

8. PWA Times?

PWAs might be the future, but they have a long way to mature before they’re ready to completely conquer the mobile world. Until then, there’s still a need for the tried and true native app. Ultimately, however, choosing which style of app to write is up to you and your business’ needs.

Regardless, we’re app developers in Los Angeles, California, and our team is here to help you. So whether you need help with a progressive or a native mobile product, or if you want advice on deciding between a PWA or native mobile app or need to understand some PWA intricacies like a “channel conflict”, don’t hesitate to reach out.

Frequently Asked Questions

Do I need a PWA if I already have native mobile solutions?

If you have only an iOS version, then a PWA can help you effectively reach customers using Android phones and tablets. Otherwise, no.

Are there any limitations to using progressive web apps vs. native on smartphones?

Android users will need Chrome installed as the default browser.

I’ve heard Apple is coming forth with supporting more PWA features in Safari. What are they?

Dark mode, authentication methods (including Face ID), preview in the application switcher. But nothing major like notifications or install prompt yet.

What is the latest and greatest in the PWA world on Android?

Immersive (100% full-screen) experience, shortcut actions on a long tap, graceful permission handling.

How much lead with time to market do I get with a progressive app vs. a native app?

We built this PWA in 3 months. If we were to make the apps natively for iOS, iPad OS, and Android, the development process would be at least 5 months, and the app wouldn’t be available on the desktop.

Find out what the right web app for you is
Schedule Free Consultation

X
What is the one thing that sets apart a successful app from the rest?

Looking for help with your app?

From a prototype to a full-blown app, we’ll help you hit the market
in record time with a product that’s set to win.
We can help with:
Schedule a Consultation
Strategy
From a prototype to a full-blown app, we’ll help you hit the market in record time with a product that’s set to win.
Design
Your app will have a unique visual appeal engaging your customers way beyond average digital experiences.
Development
We’ll pick relevant technology pieces for your app to make it secure and easy to scale up and maintain.
Schedule a Consultation

Have an idea?

Let's Work Together

Our industry-leading expertise with app development across healthcare, fintech, and ecommerce is why so many innovative companies choose us as their technology partner.

Learn how to build winning apps.

Privacy Policy: We hate spam and promise to keep your email address safe

Copy link