React Native vs Real Native. Choose between native and cross-platform development

0 Comments

What are good cross-platform development on React Native, why do JS teams need natives, and what are the advantages and disadvantages of both methods in a real project.

We also found WebView and Phone Gap, wrote in Xamarin and other frameworks: we got bumps, tried, got frustrated and tried again, and eventually abandoned. And only with React Native it turned out differently. We have been writing on RN since 2017 and have successfully released 14 projects. This framework does exactly what it promises.

Pavel Beloborodov, Head of Business Development and PM at Mercury Development

Round 1. Price and time

On React Native, one of the projects managed to achieve up to 95% code reuse between iOS and Android. The second platform was received at the price of testing and debugging, so the speed of development on RN is higher.

Round 2. Requirements for the team

Another advantage of React Native over native development is the saving of working hours, but there is a caveat.

There was a case when they wrote a 2000-hour project in React Native for the iPad. Thanks to RN, we were able to rewrite the application for Microsoft Surface in 11% extra time. We quickly rebuilt the program, fixed bugs and everything worked.

Pavel Beloborodov, Head of Business Development and PM at Mercury Development

React Native modules don’t always work as they should. In such cases, we are left with two options: to change the incorrectly working module to other components, or to fix bugs in the native code. In the first case, we complicate the code, and for the second, native developers should be in the team. It’s good when they sit in the next office and it’s bad when there is no such luxury.

Mikhail Samolinov

, Responsible for mobile development at Mercury Development, PM

Wix.com rewrote their application in React Native, and now they have about 10% of native developers on their team in case of possible force majeure.

Round 3. Maintenance and product development

Price

After the release, the team wants to spend as few resources as possible on project maintenance, and in the interests of the customer, pay less for supporting an already implemented product. In this sense, applications on React Native are cheaper for both the customer and the developer – one JS programmer is needed for maintenance instead of two native ones.

Feature Parity

Native development for Android and iOS is not equal in time. The longer the project lasts, the more the code and architecture diverge. As a result, a new feature may fall on one implementation and not fall on another.

Dependencies

React, as an open source project, is built from many different libraries and third-party components, which is why the number of dependencies is much greater than in native. In 2017-2018 there was a huge problem with their stability, refactoring and debugging, but in the last year or two it has practically disappeared and mature dependencies are updated quickly and often by developers.

Round 4 Look & Feel

Out of the box on React Native, you can get a fast interface with a close to native user experience, and the GUI is thrown on average one and a half times faster.

On the other hand, an application with such an interface is unlikely to be featured in the AppStore or the Play Market – the application interface will be different and not in favor of RN.

Round 5. Performance

React Native is worse at handling large data arrays. In addition, applications on it take longer to launch than native applications. If you need maximum performance, it is better to choose native development.

Bonus React Native

A React Native mobile app is easy to turn into a web app and run on UWP.

Compare

What to use

Experts from Mercury argue about many points, but they agree on one thing: everything that can be done on React Native must be done on it. Of course, provided that you have a strong web team. But far from everything is possible: maximum performance, native UI or close synchronization with hardware components remains with native development.

Mobile application on Flutter: pros and cons for business

You can speed up application development using cross-platform frameworks, such as React Native or Flutter. What are their strengths and limitations? When do you need a “cross-platform”, and when do you need a native classic?

70% of purchases happen through the mobile channel

There has been a 7% increase in Internet users over the past year, and their total number in the world has reached 4.6 billion, according to We Are Social. Up to 80% of respondents have made at least one online purchase during the pandemic, and Data Insight estimates that more than 70% of active shoppers checkout via smartphone.

The mobile channel is becoming more and more important for contact with the audience. The timing and cost of developing an application largely depend on the choice of technology stack: languages, frameworks, libraries.

Among the criteria for choosing tools are the functionality of the future application, the experience of the team, the timing of the project and market entry, budget, scalability, and much more.

There are two main groups of applications in mobile development:

Native (from English native – native)

In such applications, the code is created from scratch for each platform, in the language of this platform and with standard SDK (software development kit) libraries. For example, for Android, Java or Kotlin is often used, and for iOS, Objective-C or Swift.

Cross-platform

Code is written once and then compiled for iOS, Android, and other platforms. Applications will work and look identical on several mobile operating systems. There are many suitable development tools, ranging from Kotlin Multiplatform Mobile (KMM), Bitrix Mobile, Xamarin and Cordova to Flutter, which is actively promoted by Google and is gradually gaining popularity.