June 10, 2020   |   6min read

React Native vs. Native App Development—Pros and Cons for Business

What is React Native?

React Native is a framework created by Facebook to enable a smooth and easy cross-platform mobile development. It basically means that you don’t have to create an iOS and Android app separately. All you need is one codebase to develop beautiful apps for both platforms, without compromising on the UX and UI experience.

Today, the biggest companies in the world recognize more and more the React Native’s potential for business. What are the benefits? Is React Native the right solution for you? Is it better than the native development? We sat down with our Head of Client Services Szymon Nieradka to answer these and other React Native iOS and Android related questions.

Check if React Native
is the right tech for your project

The dream of having one framework that will cover all platforms has been with the industry for years. Making that dream come true, however, used to be impossible. In fact, we were struggling with mobile cross-platform development for many, many years.

When it comes to web development, you access most of the functions on your laptop using one application—a web browser. Nobody questions HTML’s (to be more precise HTML5, CSS and JS) dominance as it’s a certain standard.

Mobile development went in a completely different direction. Fifteen years ago no one had any idea how to build an interface in mobile apps. We all remember what Symbian looked like, and the differences between iOS and Android in the beginning. Back then it was super hard to prepare one framework that would somehow be useful on all other platforms. There were of course frameworks like Xamarin, PhoneGap and bunch of others that did their best to achieve that goal—but none of them was really good.

Nowadays, a few things have changed, especially when it comes to the UI. The efficiency of devices has increased and the market fragmentation decreased—there are only two players: Android and iOS. Only four years ago we were creating a mobile banking app for the largest Polish bank for iOS, Android, WindowsPhone, Symbian/Java and Blackberry…

I believe that React Native is the very first framework that allows us to create a mobile app, which will work both on iOS and Android and we don’t have to compromise on speed, efficiency or their overall look and feel.

The React Native mobile app’s great look and feel depends in the end on the abilities of the developers. You need the right partner to work with and that part will never change.

React Native vs. native—which is better?

There’s no clear yes or no answer here.

Some time ago we started a few new projects. Two of them involve a pure native iOS development and one of them is a React Native project. We were wondering which approach is better for all of them—native or cross-platform development. The answer is: it all depends on the project.

If the client says, that the only platform they are interested in is iOS, then it doesn’t make sense to make it in React Native. If they are expecting to utilize platform specific features (such as iOS ARKit) then React is still not the best option here.

So sure, there are cases when we don’t recommend the cross-platform development. However, the fact is, that in around 80% of real business cases React Native can increase the speed of mobile development by 30%, sometimes even 40%. These numbers come from our projects, not from thin air, which is why I’d recommend it for most cases.

I have an app to develop. Why should I do it in React Native?

It is faster (therefore cheaper), and you don’t have to compromise on application’s features. It’s also easier to maintain. Once you find a bug, you can solve it in one place for both platforms simultaneously.

React Native is widely used by big brands so you don’t have to worry about it going anywhere in the next couple of years.

Does it affect the code’s quality and the end product’s overall look?

To be honest, it’s super easy to make a really ugly and slow native app—all you have to do is work with inexperienced designers and developers. Luckily, as I mentioned before, you don’t have to compromise on UI while using React Native.

We believe that only mobile app developers with a strong native background can prepare seamless mobile experience in a React Native mobile application. Since they have a native experience, they know what to expect from the app.

All of our React Native developers have strong technical experience with native codes. They are former Objective-C, Swift, Kotlin and Java developers and because of that, they would never deliver something that compromised on performance, quality etc.

The React Native mobile app’s great look and feel depends in the end on the abilities of the developers. You need the right partner to work with and that part will never change.

Of course, there are edge-cases where React Native is not the best option. In one of the projects we were working on last year, our customer asked us for an animated background that will look like a ‘spilled gasoline on water’ and will respond to the phone’s moves. And of course, this animation should not affect battery usage. We did it in OpenGL for Embedded Systems.

Bloomberg, Gyroscope Health, Uber Eats, Instagram etc…

It is worth mentioning that not all of them are purely React Native mobile apps. The technologies can be mixed. Sometimes you will start with React Native and then customize the app with native or the other way round.

Not all of the major apps are purely done in React Native. The technologies can be mixed.

React Native vs. native—what are the UX and UI differences?

The biggest difference between React Native and previously mentioned cross-platform frameworks is their approach to UI. Most of those frameworks tried to generate user interfaces by using the same techniques on both platforms. Sometimes they managed to look the same on iOS and Android but they certainly didn’t behave the same way. Whereas React Native converts then same source code into different native components on both platforms. In other words, these are native components, only rendered in a different way. After all, there’s a reason why it’s called React NATIVE.

For example, a developer is writing a React Native code that’s supposed to render a button in an app. However, on iOS it’s an iOS-native button and on Android it’s a completely different, Android-native button. In the end, the button looks, behaves and reacts the same way. The only difference is, the actions performing behind these buttons are written in a non-native language.

So you won’t have to compromise on UI in React Native and you can expect your app to perform the same way as a native app would.

Why should one consider React Native in their business?

React Native is widely used by big brands so you don’t have to worry about it going anywhere in the next couple of years. It would affect too many giant companies, plus it’s a technology that the industry is very much focused on right now.

To keep it short, you should choose React Native if you want:

  • your app to be delivered sooner than in native
  • the development team to consist of only 5 people instead of 8 or more
  • testers to spend less time on regression tests
  • the bugs to be solved quickly
React Native is a perfect solution for your business.

If you’re not willing to use super platform-specific features like ARKit on iOS, then there is no better technology for you right now on the market.

Leave a comment below to let us know what you think about React Native development. Get in touch to talk to our experts about your next project!

Szymon Nieradka

Head of Client Services

Ula Rydiger

Content Marketing Manager

Did you enjoy the read?

If you have any questions, don’t hesitate to ask!