Mobile development : React-Native(Cross platform) or native (iOS, Android)

Dec 03, 2018

by adminadmin

A native app (native application) is an application program that has been developed to be used on a particular platform. As native apps are developed for a specific platform, they can can have the full power to interact with and take advantage of operating system features and other software that is installed on that platform.

On the other hand, a Cross-platform app is an application program that has been developed to be used on more than one platform.  Because cross-platform is not specifically developed for a single platform, therefore is hard to have the full control of using operating system features and other softwares that are typically installed on that platform. However Cross-platform apps development is appealing for simple apps in terms of development cost(budget), time and single source code maintainability. React-Native is one of the popular cross-platform apps development tool among the app developers nowadays around the globe and specifically in the United Arab Emirates(UAE). 

Working as a mobile development technical lead at one of Dubai’s leading digital agency (Tentwenty digital agency), there is always a challenge for me to deliver the quality mobile application within time and low cost. Therefore I always keep an eye of the latest technology trends.

With the introduction to React-Native at first glance, it was impressive for me to hear  "Write once and run on both iOS and Android with same native code performance. It was really sounding like  "write once, use everywhere on the mobile phones, with same native code performance”, because according to the stats, in Dec-2018 Android was having 74.92% while iOS was having 22.2% of mobile devices market share, which together makes 97.2%.

The question is, is it really the case? If yes why React-native could not replace the native development with a noticeable speed till date. Although React Native was announced at Facebook’s React.js conference in February 2015 and open-sourced in March 2015.

Limitations

Although React Native is a piece of good news for the software developers still it comes with certain limitations. 

1- Dependency on Facebook

React Native belongs to Facebook, Facebook can shutdown it anytime, so react native developers are at the mercy of Facebook. The developer community has experienced the same with Parse(Facebook’s backend as a service platform), that was shut down suddenly in January 2017. 

2 - Limited UI and animations support.

There is limited support for the user interface and animations while comparing with the native development. Sophisticated animations & complex UI may not be possible with React native development. 

3 - Always behind the native

Mobile OS (iOS and Android) is evolving very rapidly to make best use of the power of available new hardware. Apple and Google are continuously pushing updates to their devices. On native the support to the new updates are available right after the release while on React Native the developers have to wait for either Facebook or dig into the native code to make use of the new functionalities. Augmented reality support is an example. 

4 - Plate Specific Components

Although reactive native handles many use-cases in a cross-platform fashion, but not all.  there are many native API Camera, native image picker, call kit, push notifications, deep linking, and third-party services like Auth0 or Amplitude that should be handled in the platform-specific fashion/manner. Here then react native really compromise on the main slogan  "Write once and run on both iOS and Android”

5- Single platform app requirement

If the requirement is to develop an app for the single platform either only Android or iOS, then choosing React Native for development is not a wise decision. It will uselessly add the dependency on third party (Facebook)’s React Native and will slow down the development due to the above mentioned limitations.

Apart from the above limitations, React-Native has something good also :)

  1. Simple App development  React Native is recommended for Simple and small apps 
  2. On Android Studio and Xcode how panic is the build process each time to check even the small UI changes on the simulator or the device.  Hot reloading and Live reloading feature of React Native saves a lot of the development and dev testing time.
  3. If you are a developer with strong React and web development background you can easily start with React Native, but to take a product along the way to the Appstore or Google play store, native development background is essential.

Conclusion :

To make a decision to between Native and React native it is dependent upon the following

  • The nature of the app to be developed. 
  • Developers background knowledge.

As a mobile developer working in the mobile apps & games industry till today my opinion is Native development is unbeatable in terms of flexibility, product delivery timeline, great UI and animations, low unforeseen risks.

If you have an idea of an app or want to develop mobile apps for your business, you will find the App engineering team atTentwenty digital agency on of the best app developers in UAE. Tentwenty app team is having a very confident history of delivering many big brands across the UAE, specifically contributed to the app development in Dubai & Abu Dhabi.

References : http://gs.statcounter.com/os-market-share/mobile/worldwide