Order Group
Feb. 22, 2019, 6:13 p.m. | Web Development

The facts about React Native - the framework's pros and cons

Introduction – what is React?

Interactive UI. That’s the essence of what React is all about. It means that a web page dynamically refreshes only new data if the source is updated while the page is being displayed. The page is always showing real-time data with no additional user intervention. Contrast that with the previous scenario where the entire page had to be refreshed if even one small data element changed at the backend. The Facebook team sensed a pressing need for this new approach and developed it as an open source library in 2013.

What does React Native add to React?

React Native is the next generation of React, specifically for mobile device app development. It invokes native code routines in both iOS and Android devices as and when required. That means only one code base needs to be maintained. The framework has steadily gained momentum since its inception. There were natural reservations about adopting it in the early days. Typically, JS libraries do not have the sort of broad community support that established languages such as Python and others enjoy. However, those fears have been allayed because an enthusiastic user community has sprung up. Equally important was a licensing issue, which Facebook relaxed to place it under the standard MIT license

The nitty gritty – what features are special about React Native?

A short list of big names that have adopted it as a mainstream development technology acts as a testimonial. Big brands such as Skype, Pinterest, Bloomberg, Instagram of course, and many others. But what are the pros and cons?

React Native Strengths

One code base - It compiles into native code for multiple platforms. Currently, those are Android and iOS. There is a belief that the framework will soon be adopted for native compilation on Windows and tvOS also. The resulting UI has an entirely native look and feel with no apparent loss of user experience.

Better than a hybrid - Hybrid mobile app frameworks traditionally use elements such as a WebView. React Native does away with them because its components compile into true native code. The result is exact native functionality that is consistently indistinguishable from code completely built in Swift or Android.

Rapid build cycles – The productivity gains from a single build are apparent. Now you don't have to decide on a priority between more profitable iOS or higher volume Android as the primary development objective. One build gives you both.

Reusable components – Historically a vital objective for developers, React Native delivers truly reusable components.

JavaScript only – The majority of developers will never need to delve into building true native code. Only those apps requiring deep device capabilities need ever look beyond what is provided in the React Native libraries. That means that existing JS expertise can immediately be leveraged to develop cross-platform apps with a highly refined and professional UI.

More benefits – This article touches on just some significant advantages. Find more here.

React Native Weaknesses

Dependency on Facebook? - Initially, Facebook took measures to protect itself against potential lawsuits resulting from releasing the framework as Open Source. More recently, they altered their policy and React Native is now available under the same MIT (Massachusetts Institute of Technology) license as the likes of Ruby on Rails and jQuery amongst many others.

Incomplete? – The tool is still relatively young and under continuous enhancement. As such, developers may stumble across occasional inconsistencies. However, the active online community usually has the answers. Early deficiencies in the framework surrounded the need to build missing native code components to augment those found in React Native. However, these gaps have been filled in over time and, for the vast majority of developers, it contains everything they need.

The business case for switching to React Native

Mobile device traffic from mobiles outnumbers desktop/laptop. That is the "as is" scenario today and the trend showing no signs of slowing. 5G will make the mobile UX even better with its higher bandwidth and superior speed. App development companies need to look no further than the high profile users (such as Facebook itself) that deploy React Native in production. Maintaining feature parity does not now require any additional overhead in time or cost.

Case study: Read how Pinterest assessed React Native through its technical and organizational evaluation process.

Why React Native may not be suitable for everybody – or is it?

Mature and well-established apps development companies may already have invested considerably to build native code bases in one or more of iOS, Android, Windows or others. Therefore the anticipated cost of re-tooling on a new platform may not be instantly appealing. However, this (somewhat technical) blog by the development team at delivery.com describes just that. They successfully slotted React Native into quite an extensive existing native codebase. Food for thought for anybody in a similar situation.

Conclusion

The overwhelming need for M-commerce, gaming, and other applications to stay ahead of the competition will drive the market for fast and exciting apps on every mobile platform. Any business with a significant dependency on online sales must deliver the best possible UX or lose market share. Enterprise apps to need to be slick and provide a level of familiarity for users. This demand is what is fueling the market for development in React Native. Whether you develop in that framework or choose some similar alternative, it’s where the demand lies. The capability to develop once in JavaScript and deploy on multiple platforms represents cost savings that cannot be overlooked, especially when married with NodeJS or NextJS backend frameworks.

Leveraging new technology to build apps that excel is a path adopted by successful app development companies. They have added React Native as an additional tool in their development technology armory in parallel with existing native coding strategy. Right now, React Native is a clear winner, and mobile software development can only benefit by adopting it.