Ever since mobile phones have become more powerful in terms of their battery capacity, their processing power and the OSes that they run on them, mobiles have been running more and more versatile apps. This has been fuelled by the open source community of Android developers, helped partly by the iOS development community as well. As of October 2018, there are 2.1 million apps in the Google Play Store and around 2 million apps in the App Store. This is an unprecedented number of apps, and this number is only set to grow in the next few years.
For many years now, there has been a huge push to code android apps in Java, and iOS apps in either Swift or Objective-C. This led to having different development teams and software stacks for all these different app ecosystems. This meant having different CI/CD pipelines, different change cycles, and different development teams for each of these platforms. With the possible advent of other devices and operating systems like smartwatches, smart TVs, smart kitchenware, this app ecosystem was about to explode and be rendered unmanageable. Cross-platform app development became a problem to be solved.
Thankfully, Facebook recognized this predicament and came up with a fantastic solution which was based on the powerful React Web development framework. React is a framework created by Facebook for data-driven web interfaces. React provides a component-driven architecture which uses a declarative syntax and is easily extensible.
In 2012 Mark Zuckerberg commented,
“The biggest mistake we made as a company was betting too much on HTML5 as opposed to Native”.
And then suddenly, the IT world was abuzz with excitement around React Native. Everyone wanted to build an application in React Native, and React Native developers started getting hired in huge numbers.
To understand why this buzz is justified, and why we should develop applications in React Native, let’s take a step back and understand some basics.
Facebook’s objective has been:
“To be able to develop a consistent set of goals and technologies that let us build applications using the same set of principles across whatever platform we want.”
Given this overarching objective, they set out to apply the same set of principles such as the virtual dom, layout engine, stateful components and many others of their React framework, to the iOS and Android platforms. The benefit of React Native is that if you understand how to build a React Native app for Android, you understand how to build a React Native app for iOS.
It’s truly – learn once, write anywhere!
React Native is famous for empowering its developers with unmatched speed during coding and efficiency. React UI library for web applications is present for all UI elements. The DOM abstraction only adds to the technical superiority of the library.
You will get speed and agility.
Some of the most critical questions that are plaguing the heads of technology divisions at most companies are –
Is React Native the right solution for us? Is it better than native development?
There is no easy way to answer this question. It depends, to a large extent, on your use case. Both React to Native development and Native app development serve different purposes.
The short answer is “NO”. There some pitfalls of using React Native as well.
Some of the disadvantages are:
Maybe React Native is not meant to be for all your needs and use cases.
But the key thing about React Native is that it’s still in development and we are yet to see its full potential. In the future, it may be more powerful and efficient and allow for even more use cases, but for now, it cannot fully replace native mobile development. However, it’s written once, use everywhere paradigm can be a tremendous time and money saver if used on the right projects.
Let's craft delightful digital experiences together.
Tell us more about your vision.
Resources that can help you start, build and support your digital journey.Find out more