To Be React Native or Real Native? That Is the Question for a Mobile Startup
When developing a mobile application, is it better to go with a real native application or to use React Native? Like most things, it all depends.
Join the DZone community and get the full member experience.
Join For FreeWherever you go, you hear "startup this, startup that" and you start to feel that startups pop up like mushrooms. Or maybe you yourself are the proud owner of the brand new shiny business? Well, startups come and go. To be more specific, 90% of them fail. Sorry, but it's the brutal truth. People tend to have these brilliant ideas and those ideas tend to be the only thing they have while starting a business. Think competition, think raising funds.
Important questions should be asked when planning to start a business. We live in a technological world, so a lot of startups decide to build a platform or mobile app. For the latest there is a very popular decision to make these days - what framework should I choose to develop my mobile app with?
Will your product evolve according to your users' feedback? Or would you rather risk using technologies with less functional development capabilities? We have some suggestions for you.
React Native and Real Native: So Close and Yet So Far
Anyone can name the two giants in mobile platforms world - iOS and Android. As you probably had a chance to try or at least see both of them, you are aware that they are much different in terms of user experience.
A Native App, as its name indicates itself, means that the app is developed directly for a specific platform. If you want to reach both iOS and Android users - you have to develop two apps separately. In the case of Android, you would, therefore, use Android Studio, along with Java and Kotlin languages. On the other hand, for iOS, the Integrated Development Environment is Xcode, with an option of both Objective-C and Swift languages.
React Native is a Facebook's open source baby. It allows building cross-platform (iOS and Android) mobile apps with JavaScript. It means that there is no need to develop two different apps. Unlike other frameworks used for mobile app development, Ionic or Cordova for instance, it neither runs inside of a web view nor hybrid or HTML5 app. Instead, it's easy to build a high-performance app, very similar to those built in Java, Objective-C, or Swift.
Seems like it's a perfect tool for mobile apps development. However, it should be remembered that iOS and Android user experience differ in a fundamental way.
What about the features not supported by React Native library? Well, there is an option to write a Native Module using the corresponding language and link it to the React Native codebase.

React Native as the Coolest Kid on the Block
What is the React Native phenomenon? What makes it more and more popular among big companies? How is it different from other mobile app development frameworks?
The popularity of this framework shouldn't surprise anyone as it comes with the promise of creating apps for different platforms simultaneously. Since React Native solely depends on JavaScript, you don't need to get the knack of any other native languages to build apps for iOS and Android separately. Imagine years and years of struggling with trying to develop a universal framework for all mobile apps platforms. History has shown that it was a hard row to hoe. There were Xamarin and PhoneGap of course, along with other frameworks, but they weren't useful enough.
Do you remember how different iOS and Android were a couple of years ago? It was almost impossible to connect those two worlds. React Native has made the dream of having one cross-platform framework come true. As the first framework for iOS and Android, it made it possible to reach similar efficiency, speed, and look. The apps can feel very similar. Examples? There are a lot of apps built with React Native that you already know or use, such as Instagram or Airbnb.
What else makes Real Native so popular right now? As you only develop one app for both iOS and Android it takes less time and a smaller team. Regression tests will take half the time and the same applies to fixing bugs.
Great, isn't it? But here the question arises — is this mobile framework suitable for all kinds of projects? Well, of course, not. There are a lot of considerations that need to be taken before making a final decision - React Native or Real Native? Such considerstions could be your current coding proficiency, the scope of your app, and the duration of your project.
Final Battle: React Native vs. Real Native
The clue of this article is to show you the differences between developing a mobile app in React Native and Real Native. Without further ado, let's check the pros and cons of both frameworks.

As you can see above, both Real Native and React Native come with a lot of pros, however, in the case of cons we think that React Native has a little bit more of them.
Real Native stands out when it comes to access to all APIs and functionalities without any extra layer mapping. There is also a vast choice of third-party libraries. A bigger community helps in improving the development of the app and the app itself. As some functionalities can be developed only in native frameworks, developers need to know them either way. Native frameworks have existed longer so they have had more time to gain the interest of users, which makes it safer in terms of updating. Strict languages allow for easier bug detection and if you know one of them it would be easier for you to learn another one.
With all of those benefits there is one big drawback - if you want to have your mobile app available on iOS and Android, it means you have to develop two separate applications. That means more time and money, a bigger team, and twice as much time dedicatd to updates.
On the other hand, the biggest advantage of React Native is the fact that you only need one codebase that can be used both for iOS and Android. That means shorter Time to Market because you have to develop only one app instead of two. Being a JavaScript framework, it is easier to learn for those developers who went from web to mobile development. Moreover, the development is faster with Hot Reloading, where changes are immediately available. React Native is also open source, so there is an opportunity to inspect the code, understand it better, add features, fix bugs, and generally improve the framework.
In contrast to Real Native frameworks, with React Native there is a problem in accessing some of the APIs. Features that are not supported can be developed through native modules, however, it requires developers to have knowledge of native languages. The result is code duplication and the discontent of developers who wanted to avoid native languages. React also has less third-party libraries, worse access to other native apps, and, often, trouble in matching design guidelines for both iOS and Android. And what if Facebook decides one day to stop updating React?
Of course, I didn't manage to present all of the pros and cons, but I'm sure that is enough to show you the difference between those two frameworks and answer at least some of your questions.
Published at DZone with permission of Jacek Knaflewski, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments