- Introduction – what is React?
- What does React Native add to React?
- The nitty-gritty – what features are special about React Native?
- React Native Strengths
- React Native Weaknesses
- The business case for switching to React Native
- Why React Native may not be suitable for everybody – or is it?
- The choice of technology depends on your project needs
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 shortlist 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 codebase
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.
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 overtime 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 codebases 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.
The choice of technology depends on your project needs
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 the existing native coding strategy. Right now, React Native is a clear winner, and mobile software development can only benefit by adopting it.