React Native or Native Apps: A Mobile Development Dilemma

Written by: admin Date of published: . Posted in test

In software development, choices come in plenty, and we face them on a very regular basis. Which platform should you focus on, which approach should you pick to get from A to B, which languages, libraries or frameworks will work best for you? These are just a few of a great many of multiple choice questions that every project so lavishly presents us with. And before you come to realize the true girth of the problem at hand, there will be countless opinions and voices getting you utterly and totally confused. In this article, we will take an in-depth look at an emerging alternative to native mobile development.

Getting Started

Let’s now imagine that you need to create an iOS and Android mobile app for your company or customer, and do it in the fastest, easiest and most cost-efficient way possible. If you come from the mobile development world, you will probably opt for native development in Java (for Android) or Objective C/Swift (for iOS), but making both versions will obviously require nearly twice as much effort, and it’s very unlikely that you know both platforms well enough to do this on your own. If you have a Web development background and are really good with JavaScript, but have never dealt with mobile, you will probably be puzzled and won’t know where to start.

A situation like this would naturally make you think of a cross-platform solution; a solution capable of bridging the gap between your experience as a JS developer or a single-platform mobile specialist and the need for a native-looking mobile app written once to work on a wide range of devices. There are various cross-platform products out there, and the choice of the one that’s right for you depends on a number of factors, including, but not limited to, the following:

• Unique requirements that may influence the choice of the platform to be used;

• The developer’s experience with a particular language and skill set;

• Future plans for the app (need to maintain, customize and update the code).

Going cross-platform offers a number of advantages for the developer and yet poses many challenges. As a mobile developer with little experience in Web development, you may find the learning curve of popular cross-platform tools to be quite steep. As a front-end developer, you will also spend considerable time absorbing the new development philosophy, but in the end, you will see the results are well worth the efforts.

Let’s now focus on the key topic of this article — one of the best solutions of this type available on the market today and called React Native.

React Native

As the name suggests, React Native is based on React, a popular JS library for developing Web applications released in 2013 by Facebook. A very recent newcomer to the market of cross-platform tools, React Native embraces the “learn once, write everywhere” philosophy, as the framework allows you to use good old JavaScript, CSS-like style sheets and even familiar HTML tags to create native-looking (and behaving) iOS and Android.

Apparently, React Native is not just about JS, CSS and HTML –  these are just the basic ingredients. First of all, knowing React is a must — React Native is essentially an extension of React for mobile development. It typically takes up to a month or so to understand React Native’s development concepts and flows, but once you are done with the initial training, you’ll be able to write highly reusable, clean and fast code at speeds you’ve never dreamt of. Professional development in React Native may also require the knowledge of the Flux framework and packages like Redux/Reflux.

In React Native, its JavaScript components and views strictly correspond to their IOS/Android equivalents, offering the same functionality you would get with native components. And where there is no match or the functionality you are developing is very performance-critical, you can always use native components – they fit well into any React Native app and can be used alongside its JS code. Finally, React Native is being very actively developed, and new releases are steadily rolling out new JS counterparts for a diminishing pile of remaining “uncovered” native components. In the foreseeable future, React Native promises to become a complete alternative to native development platforms, with a few minor exceptions.

React Native vs. Native Development

We are going to compare development in React Native and native app development by a number of criteria:

Ease of learning

React Native: You need to be well-versed in JavaScript and Web development in general and need to have some React experience to understand its key concepts and overall philosophy. In addition, knowledge of JSX, Flux or Redux will come in very handy and will considerably speed up the development process. In general, according to surveys, it takes an average developer around a month to “catch the drift” of React Native and start writing real applications.

Native development: The learning curve varies and may not be the same for both platforms. If you want to be a jack-of-all-trades of mobile development and write for iOS and Android single-handedly, this might be an immense challenge that may take years to complete. Therefore, if you need to develop native apps for a project of yours, you may need two people to get the job done.


React Native: This technology is perfect for fast prototyping and creating applications that are not performance-critical. The thing is, due to its JS nature, React Native only has one execution thread at its disposal, so when it comes to calculation-intensive components, this fact instantly becomes a bottleneck, if not a blocker. The solution is to use native components mixed with React Native’s ones (which is totally possible), to take advantage of multi-threading and faster execution of the native code.

Native development: By definition, native development is suitable for all kinds of applications without restrictions.

Code reusability

React Native: Fully reusable code base that works on iOS and Android without limitations. No need to modify two app version and create new builds – everything is done on-the-go.

Native development: Native code for corresponding versions of your apps.

Speed of development

React Native: Since you are working with cross-platform code, the development time is dramatically reduced; you can create two versions of your app in half the time that would be required for developing two native versions.

Native development: To match React Native in terms of timelines, you will need two experienced native developers (iOS and Android) or compromise on time and do it yourself, given that you are familiar with both platforms. 


React Native: The library is full open source and free, so all you’ll be spending money on are electricity and coffee.

Native development: Some licenses or add-ons for native IDEs may not be free, so the cost will be higher.

Bottom Line

The bottom line is that React Native is a very promising technology with huge potential, which has already been duly appreciated by such giants as Airbnb, Baidu, Discovery, Instagram and others. Steadily improved and updated by its founders, it is two steps away from becoming a full-fledged alternative to Objective C, Swift and Java, especially on projects that are not performance-critical, where React Native may not shine just as brightly. If you are an experienced JavaScript developer, React Native is the shortest route to exploring the mobile domain by leveraging your JS web-development expertise.


Eugene Rudenko is a senior online marketing manager for Oxagile, a custom software development company. Headquartered in New York, Oxagile has local representatives in London, U.K., and a development centre in Minsk, Belarus. Among company clients are such industry leaders as Google, Vodafone, Disney, and others.

The post React Native or Native Apps: A Mobile Development Dilemma appeared first on SiteProNews.

Leave a comment