Will React Native Survive?

Recently, Facebook released news that they’re rewriting the messenger codebase on iOS, for a faster, smaller, and simpler app. It caused quite a buzz in the developers (and not only)  community. Many people started questioning whether it means they abandon React Native?  Does it mean that they switched from React Native to Native? Or what’s going to happen with React Native? Why don’t they use it in the Messenger app? 

Although Facebook didn’t use the RN framework from the very beginning for their messenger. The fact that they didn’t mention React Native, but mentioned going more Native probably led to such assumptions. 

We decided to take a closer look at this cross-platform solution, companies using it, and those who quit. As well as contributing to the discussion and make our guesses on whether React Native will make it to the future. 

What are cross-platform solutions?

The mobile apps not only continue to be in demand among users but also transforming how businesses operate.  According to Statista, the number of downloads grew 45% during the last three years, and the expected revenue is going to hit 188.9 billion US dollars in 2020.

Since the industry is growing rapidly, it’s natural that developers are looking for new ways to make app development easier, quicker and more convenient. Businesses,  in turn, also constantly searching for new solutions to optimize spendings. 

These stimulated the appearance of cross-platform solutions such as React Native and recently Flutter. 

The idea behind cross-platforms is the ability to make apps that are compatible with multiple mobile operating systems. In other words, you can hire one team to develop an iOS and Android app, which sounds very tempting. Especially if you know that for Native iOS and Native Android development, you need separate developers to code in different languages. 

So why all apps aren’t developed using React Native? 

The reason is simple – cross-platform is always behind. It doesn’t mean your React Native app is bad or won’t be successful. It just means that cross-platform still can’t replace Native development in terms of performance speed and many other aspects. 

The concerns about React Native

React Native started its history in 2013 as Facebook’s internal hackathon project. It was first introduced in 2015 by Facebook at the Reactjs Conference.  The framework gained its popularity by having close to the native performance and the ability to reuse big parts of the code. React Native uses JavaScript web programming language and JSX markup syntax. 

There some issues that developers point out when talking about React Native.

Although React Native promises that you can write code once and then share 95% for across iOS and Android. In some cases, it becomes impossible to achieve that. 

When companies with existing native apps try to put RN on top of it (the case of Airbnb), they may end up with 15% – 30% of sharing code and supporting three platforms which makes it even more difficult. 

On the other hand, if you write the React Native app from scratch, you may achieve a high percentage of code sharing.  But there still some native modules such as push notification, deep linking, etc. Which should be written in the native languages and then included in the rest of the code. That, in turn, requires knowledge in native languages. 

The other concern is performance. There’s an issue with slower initiation time so that you don’t really want to use RN on your launch screen (React Native made some improvements in that aspect, but we’re not sure if it radically solved the problem)

However, except that, the overall performance is quite similar to native.

From the developer’s perspective, there’re some complaints that the creators of RN tend to overpromise and underdeliver. In reality, there could be poor documentation, buggy code and other issues that can’t be controlled.

So you need to wait for the framework updates and literally put the app in someone’s other hands. Of course, we observed many improvements in this platform, as they’re trying to release new updates very frequently. 

What is more, programmers sometimes can be subjective when choosing the platform. RN is extremely popular among web devs because it actually duplicates their technology stack. And very often they just don’t know what the native mobile development looks like, so can’t compare.

React Native also faces real competition. A newly emerged Flutter is superior in a lot of ways But it might as well give a boost to RN improvements. Check out our comparison of these cross-platforms, if you want to know more. 

Sunsetting and Sunrising React Native

Some time ago, Airbnb announced that they’re sunsetting React Native due to many technical and organizational issues. They decided to concentrate on making pure native apps amazing. According to Airbnb’s blog post, they couldn’t reach their goals such as moving faster, maintaining the quality bar, writing code once instead of twice, and improving the developer’s experience with React Native. 

Udacity also went back to native, after using this framework for a few years. They probably won’t be investing in cross-platforms in the near future, but still keeps eye on RN and Flutter, as these frameworks evolve very fast. They notified that the iOS team was pretty happy using React Native, and they may build some of the features with it later on. But it took longer for the Android team to take features from early-stage to the polished release, so they probably won’t consider it again. 

In contrast, Shopify declared that they’d be going all in React Native and all of their future applications are going to be developed using this framework. They will experiment with the React Native Web in 2020, following the Twitter example. The fact the company’s making bet on this cross-platform solution makes the RN future looks no so pessimistic. 

Many people are wondering why Facebook – the creator of React Native isn’t using RN in its major apps. There’s some information that the marketplace, ads manager, Facebook dating is written in RN. Still, the announcement of going more native in the messenger app is quite disturbing. 

To sum up

So will React Native survive? 

We definitely won’t see the Facebook killing the framework soon. It still has the potential and is quite popular among startups and developers. 

Yet, with the growth of the mobile app market, the competition is more than intense. People often rate services, based on their digital customer experience. So in 2020, it has become crucial to ensure the flawless performance of the apps to stay on top of the competition. And here native development is invincible. Cross-platform solutions are lucrative, but still, need to mature in many ways. 

We might witness as well as the trend of going back to native as the rise of new better technologies, changing the future of mobile development. 

What exciting project are you working on?
We'd love to hear more about it!