React Native : The Positive’s & Negative’s 🔥

Yuvraj Pandey
7 min readAug 22, 2018

React Native (RN) lets you build mobile apps using only JavaScript. It uses the same design as React does which lets you to compose a rich mobile user interface from declarative components. React Native combines smoothly with components written in Objective-C, Java, Kotlin or Swift. It’s also easy to build part of your app in React Native, and part of your app using native code directly — that’s how the Facebook app works.

React Native is here to stay 🔥

A common mentality among developers is that they don’t want to invest the time to learn a new technology if there’s a strong chance that it might become obsolete in the near future.

But after playing around with React Native for quite some period of time, I have found it to be an enormously powerful tool and I am pretty confident it will be used in the years to come surely.

Facebook, Instagram, and Airbnb all these big giants have built their latest versions of mobile apps using React Native. Also there are many popular apps out there right now that have trusted React Native and invested in developing their app on top of it.

What makes React Native special ❤️ ?

If you’re new to React Native, it’s an open source project developed by Facebook. It allows developers to build cross-platform mobile apps using JavaScript. I have always been doubtful of tools that call themselves as cross-platform tools for mobile development. All too often you end up with a look, feel, and performance that disappoints on the native platform.

React Native is not like other mobile app development frameworks, such as Ionic or Cordova which run’s inside of a web view, or an “HTML5 app,” or a “hybrid app.”

You build a high performance native mobile app that is no where less from one that is built using Swift/Objective-C or Java/Kotlin.

In addition, if there is ever a feature that you need to add in you app that is not yet supported by the React Native library then in that scenario React Native makes it easy to write your own Native Module in the platform specific language like Swift/Kotlin, which can then be linked to your React Native codebase.

React Native : The Pro’s 👍

Time Efficiency

  • Design and layout feels a lot more productive if you are quickly able to visualise what you create. For that very purpose, React Native has a great feature called “hot reloading”.
  • It allows the changes made in the code to immediately take effect into iOS and Android app variants. It’s like a live preview of your code!
  • This reduces the waiting time for changes to show up to zero and saves a lot of development time as well.

Performance

  • By using native controls and native modules, React Native improves on performance.
  • React Native interacts with the targeted (native) components for iOS or Android and renders code to native APIs directly and independently.
  • In doing so, it uses a separate thread from UI, which results in increases the performance. The key factor here is React using the native APIs.
  • Other options like using a WebView to render code may have other advantages, but compromise the performance.

Growing Community

  • As I mentioned above, React Native is an open source project. That means anyone can contribute to the framework.
  • It also means you get to have a more approachable access to great developers and their experience.
  • If you are facing any issues, you have high chances of getting the right kind of help from the community and experts thereby saving some amount of development time.

Ready-made Components Increase Development Speed

  • Another great feature on the React Native table is the ‘Ready-to-apply components’.
  • Instead of writing code from scratch, you get to use ready-made components.
  • They are great for achieving simple forms of functionalities. It not only makes the development process simple but also faster.

Ability to Target Multiple OS with Less Native Code

  • The ability to create one app running for multiple OS is just great. No matter the simplicity because you might not get all the features or advanced functionality in apt packages for apps created with React Native, but nonetheless, you will have two applications with the time, effort and resources for creating one.

Better than Hybrid Native Experience

  • React Native offers a truly native user experience, unlike other hybrid tools that merely provide a native-style wrapper for browser-based apps.
  • Since React native leverages the native components, the final products look and feel very real — as if created with the same native technology.
  • If you are unaware of the technology used to build an app, you will not be able to differentiate between a simple app built with React native or an Android programming language or iOS.

React Native : The Con’s 👎

Well while there are lots of pro’s about RN there are some shortcomings as well.

Ready-made components but small collection

  • Ready-made components are React Native’s one of the most prominent pros. It’s a shame there are only a few.
  • Although, it’s still a new development framework and that the number of ready-made components is expected to increase drastically, but at the moment the collection is quite small.
  • That limits developers to creating very basic simple apps.

Native Code Required

  • Earlier in this article, I mentioned that you might still need to write a minimal amount of native code when developing apps with React Native.
  • This feels like a contradiction, because for someone developing in React Native, avoiding having to code for Android or iOS was probably what they were doing in the first place.
  • This is something you will also need to budget for, especially if your app requires access to device cameras and other onboard hardware.
  • In a some cases, this might out-weigh all React Native pro’s like a smaller team, time saving, cost reduction.

App Performance Lacks as Compared to a Pure Native App

  • If you are making a simple app, then sure go ahead — you can use the full benefits of React Native.
  • However, if you require some advanced functionality & your app involves complexity in terms of computation, then performance might go down the drain in comparison to apps created with platform-specific logic.

Component Quality

  • I mentioned the small collection of ready-made components. That is not a dead end, as there are third-party component libraries that you can choose from. But that would depend on luck, in terms of quality and reliability of that specific 3rd-part library.
  • As they are not created by the official developers, they might contain a lot of bugs and glitches. You spend time correcting those but it would be more productive if you wrote code from scratch, thus, once again defeating the purpose of avoiding platform-specific coding.

Security is Low because JavaScript Based Library

  • As we know, React Native is a JavaScript -based library. If you are using React Native for apps which require type A security, like mobile banking apps or personal finance apps, you will need to pay extra attention to detail because JavaScript is famous for its fragility.
  • You will need to keep a close watch on malicious code snippets that could, very easily harm your app’s core functionality. Especially if you are using any 3rd-party add-ons.

Memory Management

  • Again — expanding on the fact that React Native is JavaScript based, It’s not suited for computation intensive apps.
  • The performance and speed is immensely degraded and float computations are handled in an even more inefficient way, in terms of memory usage and management.

So its purely your call whether you wan’t to proceed with React Native development or with Native Mobile app development. Keeping in mind both the pro’s & cons’s of the RN platform choose wisely well at the start of your step so that it doesn’t affect at the later stages of your product development.

That’s it for this article hope you would have learn something useful from it. So If you have any thoughts or suggestions, feel free to leave a comment below. Don’t forget to share your love by clapping for this article as many times you feel like.

You can follow me on Twitter , Github , LinkedIn , Facebook.

Happy Coding 👨‍💻 🎊.

--

--

Yuvraj Pandey

Working towards striking an impact using technology for making this world a better place to live in ✅