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.
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
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?
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.
More benefits – This article touches on just some significant advantages. Find more here.
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.
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.
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.
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.