Introduction

A couple of years ago, when you wanted to build a mobile app, there was only an option to build native apps – in other words, you could make it for a specific platform (iOS or Android), or, if you wanted to appear in both platforms, you had to build two separate apps.

Nowadays, it’s a bit easier. You can still choose to go platform-centric (iOS only, or Android only), but this time, you can also build a cross-platform app – in other words an app that will work on both iOS and Android using one codebase only – or a Progressive Web App (PWA) – an app that works in the browser, yet behaves like a truly native app!

Even if the differences are less and less visible, all of them still have pros and cons that make one better than others. Of course, it all depends on the case in which they will be used, your business type, and the result you want to achieve (more about how to build and choose objectives for your app you can read here). 

In this article, we will dive a bit deeper into best use cases for native, cross-platform, and PWA apps, as well as we will look closer to the pros and cons of building each. 

What are Native apps?

As I’ve explained, Native apps are the ones built for a specific operating system, like Android, iOS, or Windows.

Native apps are a great option if you aim to have: 

  • Outstanding performance
  • Flawless user experience (even with resource consuming apps like games)
  • Use of full potential of a specific OS platform

However, they also have their cons, which may be: 

  • More expensive in general
  • It takes much longer to produce a native app
  • Need to hire a dedicated developer for each operating system
  • It’s harder to learn (or convert to) a native programming language
  • Hard to update and maintain 

Native development pros

  • Native apps are better performance-wise

Even if the web is able to do more each day, cross-platform apps are still not able to run at the same performance level as native apps in their natural environment.

Native apps have been made fully to run on a specific operating system, which means they are able to use all the blessings and potential of that system to maximize app functionalities and deliver the ultimate user experience in the result.

  • Native apps are better for designs and interactions

The previous point is strictly relater to this one.

If you consider complicated designs or advanced interactions as a crucial part of your business advantage, you should definitely go for native development.

Native apps are like fishes in the water. They cannot live anywhere else, but they live like no other animal in the water. And this is why native development makes it possible to deliver a truly outstanding user experience.

  • Native apps use more of the device functionalities

Native apps work perfectly with devices of specific operating systems. This especially applies to iOS and Apple devices. If you want to use the full potential of an iPhone in your app, and you plan to make some functionalities specifically working on this device, you should definitely choose native development. 

Native development cons

  • Native apps are more expensive in general

First of all, you need to hire different developers for different operating systems. 

Second of all, it takes more time to build a native, and there is no possibility to use a blessing of reusable components and code parts. 

Third, it’s harder to find a talented native developer, and generally, it’s also more expensive. 

  • Native apps are harder to update and maintain

Maintenance of native apps is truly hard, as you need to spend time searching for bugs on different platforms, as well as you have to plan and prepare the updated plan for each separately. 

What are cross-platform apps?

Cross-platform apps are the ones built-in web languages (like JavaScript) that can be later pulled (f.e. through React Native) as native apps able to work on any operating system and device.

Cross-platform apps are great when you want to: 

  • Build your app 50% faster
  • Build one app for both iOS and Android
  • Get to market faster
  • Update and maintain it easier

However, be aware that cross-platform apps have cons, like:

  • Still needs a native skill for complicated functionalities
  • It may not be a good choice for big size-wise apps (like games)

Cross-platform development pros

  • Cross-platform apps work everywhere

If native apps are like fishes, cross-platform apps are like ducks. They can swim, walk, and fly.

This is a typical scenario when the gift is a curse as well, as you can do a lot, but none of it will be done in a spectacular manner. However, although cross-platform apps cannot use the full potential of specific operating systems, they are built to run regardless of them, and to be honest, if you don’t have any big size-wise designs, or you don’t need any fancy interactions, your app will be just fine.

In this case, you don’t have to develop two apps (one Android, and one iOS) anymore. Instead, you can use one developer that will build an app ready to be working on both, Android and iOS, and more than that, on every device.

This is a great option for lightweight and easy-to-use apps, or a startup, or any other small business that would like to appear on the market faster without a need of making huge investments.

  • Cross-platform apps are better price-wise

Don’t get me wrong – it’s not a typical price-performance relation.

To deliver a great user experience you don’t have to take native development as a no-brainer. Cross-platform apps are doing great in that matter too, and if you put a price tag next to that, you may just fall in love with cross-platform apps and get yourself a win-win scenario.

There are quite a few things that make cross-platform development cheaper.

Mind that the popularity of web programming languages is constantly growing, which means it is easier to get a cross-platform developer on board than to get an Android/iOS developer.

More than that, think of a learning curve. It is way much easier for Android/iOS developers to learn React Native for example than a React Native developer to learn Android/iOS development.

Also, in most business cases, native hyper-performance is not so-much-needed.

As long as extreme designs or interactions are not crucial to your business (which is probably more than 80% of business cases worldwide), you don’t need extreme native performance. Cross-platform performance is still delivering a great user experience for a much better price.

You can find out more about how React Native (a cross-platform framework) can cut your development costs in this article. 

  • Cross-platform have a better time to market

Native development is time-consuming. Or at least in comparison with cross-platform development. 

For example, thanks to React Native (more about it here) you can build your app faster by using reusable components. Thanks to that you are able to build an app even 50% faster. You can also use ready-to-use components that been already made by somebody else and easily copy them to your own project.

You may not be able to have an outstanding user experience from the beginning, but you can arrive on the market much faster (which is great for startups to test their MVP), get feedback, and adapt changes accordingly without a need for a big investment.

That way, you protect yourself from building and investing in something that nobody will use in the real world.

  • Cross-platform reach more people

This is an important business advantage related to multi-platform support.

Native apps can run only in one operating system, which means you have to build two apps to cover the mass market. In other words, building a native app makes more sense if you want to reach only people using for example iOS.

With cross-platform development, you are able to reach all operating systems users with one app.

Cross-platform apps cons

  • Not so native-free 

You still may need some native skills for advanced functionalities (or to use the full potential of the device) 

  • May not be a good choice for demanding UX

As we said before, although cross-platform apps are becoming more and more like native apps, there are still cases in which they won’t make it. Like games, or truly demanding designs in user experience. 

What are Progressive Web Apps (PWA)?

Cross-platform apps are also made with technologies like PWA (Progressive Web Apps) – websites that look and behave just like apps! And as the Web can do more each and every day, it makes almost no difference for a typical user to use a native app instead of a cross-platform app (or a PWA), and vice versa. 

Progressive Web Apps are great, as they are: 

  • Easy to build
  • The most cost-efficient way to build an app
  • Works on any device
  • Doesn’t require any installation
  • Updates are happening automatically

However, they are also: 

  • Are only an imitation of a real mobile app
  • Weak on performance
  • Doesn’t support some minor functionalities (like push notifications)

Progressive Web Apps (PWA) pros

  • Easy to build

PWA is famously known for its motto: “Once built – works everywhere”. You need only one codebase that will work on any device, any operating system, anywhere.

  • The most cost-efficient way to build an app

Because basically what you build is not an app, but a very responsive website that is optimized to work and behave like an app.  

  • Works on any device 

All you need to do is to run a browser – no matter which is that. PWAs also work for any kind of screen size and device.

  • Do not require any installation 

You have it all in your browser. It’s enough to just open it.

  • Updates are happening automatically 

PWAs are getting updated automatically while refreshed. No manual or any other updates needed.

Progressive Web Apps (PWA) cons

  • Are only an imitation of a real mobile app

Although they do look, feel, and behave like an app – it’s just a website. In order to “have it” on your phone, you need to make a shortcut. 

  • Weak on performance

You cannot really use it for demanding interactions, as well as speed and user experience is highly dependent on the device and internet connection. 

  • Doesn’t support some minor functionalities (like push notifications)

Even if web development is trying hard to do its best to become truly cross-platform, so it can be also used on mobile devices, there are still functionalities that will probably stay truly mobile, and reserved for mobile development technologies only. 

Tools to use

Native development Cross-platform development PWA development
AppCode React Native React
Android Studio Flutter Angular
Xcode Xamarin Vue

Examples of usage

Native apps Cross-platform apps PWA apps
Angry Birds Instagram Starbucks
Waze Pinterest Fantasy Premier League
Uber AliExpress Twitter
Most of the games Skype Forbes

Summary and the final advice

To sum it all up, Cross-platform apps seems like a great idea, because: 

  • You build one app that works everywhere,
  • You can build app faster (reusable components or use ready-to-go solutions),
  • It’s easier (and cheaper) to find a decent cross-platform developer,
  • It’s easier to train a cross-platform developer than a native one.

On the other hand, Progressive Web Apps (PWA) are a great idea, as:

  • It’s the most affordable way to build an app
  • It’s much easier to build and maintain
  • Doesn’t require any installation
  • Updates are happening automatically after refreshing the browser

And finally, Native apps are perfect, if you aim to:

  • Deliver a truly outstanding user experience
  • You need a super performance (f.e. to run a demanding game)
  • Want to use the full potential of specific operating system and devices

The final advice:

  • If you are a big company, or a game, that has a wish to use challenging and demanding designs, or interactions, and you can afford to hire two different developers and a designer at the same time – definitely go native.
  • If you want to build one app that is working on both iOS and Android –  use cross-platform development. 
  • If you think cost-wise – build PWA first, and then, if your app will be liked by people, you can push it to the next level, and make it a real app. 

Wondering which way of mobile development is a good way for your business? Let’s talk!