Worldwide the form factor transition from desktop to handheld devices (mobile, tablets) has been happening at a high pace. Mobile and tablet devices worldwide accounted for 51.3 percent of internet usage worldwide during the end of year 2016 compared to 48.7 percent by desktop.
Mobile phone user penetration worldwide growing steadily year after year, with 63% of total population using mobile in the year 2016 and this is expected to grow to 67% of the population by year 2019. Number of worldwide smart phone users in the year 2016 were 2.1 billions which is expected to another 1 billion by the year 2021.
Amongst the mobile platforms, Android leading significantly with a market share of 85%, while iOS is 14.3% and windows 0.4%. Android and iOS put together having 99+% market share are expected to continue to dominate the market worldwide.
With the above facts, focus has swiftly moved towards offering services on handheld devices as mobile apps predominantly on iOS and Android platforms while Windows phone still catching up. The challenges for the enterprises has been to respond to the pace at which technology has been evolving, beating the competition by reaching the customers faster, building skills in the widely different technologies to cater to distinct mobile platforms and maintainability of the code.
For building mobile apps on iOS platform, knowledge of iOS platform, its native components and objective-C (now Swift as well) which is significantly a different set of skills required to develop mobile apps on Android platform using Java technology. This had created a need for common code technology to build cross-platform mobile apps swiftly, without comprising on the quality.
And so the birth of various cross platform mobile app development tools such as Phonegap (Cordova), Xamarin, Appcelerator, Monocross, Codename One, RhoMobile, NativeScript, Convertigo, Kony, React Native & more. Most of these development tools has their own advantages and disadvantages.
React native brings the better of both the worlds i.e. Native development and hybrid frameworks. With React native you could develop an app once in React Native and deploy it on both iOS and Android. The underlying framework doesn’t distinguish between the two platforms. It uses native components instead of web components as building blocks. React Native’s building blocks are reusable “native components” that compile directly to native. Components you’d use in iOS or Android have counterparts right in React, so you’ll get a consistent look and feel.
With React Native there is also a big advantage for businesses that want to extend an existing app but donot want to rewrite the existing code. Incorporate React Native components into your existing app’s code. For example, if your existing hybrid app was built with Cordova and Ionic, reuse that Cordova-based code easily with a plugin in React Native.