React Native was born in 2013 in a Facebook inter-staff Hackathon, and by 2015 it was released to the public. It took only three more years for it to become the second most popular repository on GitHub, and today it remains one of the most-used development frameworks (including being the 14th most starred repository on GitHub), especially for building mobile apps for iOS and Android. It’s based on React, a JavaScript library owned and maintained by Facebook, but is used for building user interfaces directly on mobile platforms, rather than for web browsers.
But why is it so popular? What does it do that other frameworks before it did not? And is it worth it for a developer to learn React Native? Or are there other frameworks that deserve more of their time and focus?
React Native creates applications using JavaScript and the JSX markup (a version of XML) for both iOS and Android. It does this by rendering native APs in Objective-C for iOS and Java for Android. But unlike older frameworks, React Native allows devs to reuse code across web and mobile, and to build apps that work across iOS and Android using the same code and the same underlying architecture. That’s a huge advantage for developers and their teams.
Another advantage of using React Native is that when you build an application with React Native, it renders “native” mobile UI (as opposed to web views), so your app will run smoother and better. Older methods of creative mobile applications also combined JavaScript, HTML, and CSS, which would render web pages slowly, with uneven performance. React Native works directly with the mobile US, which allows the developer to access platform features within the phone, like camera, location data, etc., so the apps you build are immersive and fully functional.
React Native also has useful features which make it a learner-friendly and developer-friendly framework. For example, one feature, called “live reloading,” allows developers to preview and view changes they are making to the app as they are writing code. This real-time feature means that as code gets written, devs can see the code functioning in parallel view, so devs can get real-time feedback, and “live” test code and features as they are being created. This is an advantage for new devs and for more experienced devs who want to work quickly and efficiently.
Because of how React Native is built, it’s easy for developers to share work on React Native projects, and especially to do so in distributed teams or at different stages of an ongoing project. The modular and intuitive interface of React Naive increases the ability of multiple devs to make updates and upgrades to applications, as well as to create shared work streams through a mutually understood programmatic logic and with testing scenarios. These fluid systems also create better integration with QA testers, and help the entire team save time when working within the framework.
It’s rare these days for a developer to create an app for an Android phone but not for an iPhone, or for an iPhone and not an Android. So the fact that React Native uses most of the same code to deploy an app on both operating systems means you can save thousands of dollars and just as many hours by developing an app once, and not having to produce redundant work for secondary operating systems. Current estimates show that 90% of React Native code can be used in both Android and iOS.
There are a large variety of component UI libraries in the React Native ecosystem, which allow developers to create smooth UI experiences in the apps they build with React Native. UI libraries like Shoutem, Expo, native base, and others, help developers using React Native to save time, as it allows them to avoid building things from scratch, so they can focus on innovation and creativity, rather than building and rebuilding basic aspects of app development.
As we’ve seen, React Native is a platform which allows developers to build native, cross-platform mobile apps, and React.js is a JavaScript library you use for constructing high performing UI. While React Native was built on the back of React, they don’t serve the same role. Both React Native and React.js are open source, both were created by Facebook for their internal purposes, but are now supported by a large community of developers. React.js can be used to build the essential base of an application, but it requires additional libraries in order to build full apps. React Native, however, is a framework for building native mobile applications in their entirety.
As we’ve seen, React Native was born of a hackathon, which means it was created by a developer community in order to fulfill a demand the community had. As the iCapps blog puts it, this demand was to create a framework which would “combine the advantages of mobile app development with the power and agility of the native React environment.” And it’s done that, as been championed by a vibrant community of developers who have shared their knowledge and expertise and pushed the improvement of React Native forward, which is why today it’s the 14th most starred repository on GitHub, representing millions of users around the world.
If you’re interested in exploring React Native further, or to speaking to the top 3% of React Native devs in Latin America, Jobsity is standing by and eager to chat. We’re specialists in Android apps, as well as iOS, and are excited to share our knowledge with you -- or to help you build your own team of nearshore React Native developers. So don’t hesitate to get in touch!
--
If you want to stay up to date with all the new content we publish on our blog, share your email and hit the subscribe button.
Also, feel free to browse through the other sections of the blog where you can find many other amazing articles on: Programming, IT, Outsourcing, and even Management.
With over +16 years of experience in the technology and software industry and +12 of those years at Jobsity, Santi has performed a variety of roles including UX/UI web designer, senior front-end developer, technical project manager, and account manager. Wearing all of these hats has provided him with a wide range of expertise and the ability to manage teams, create solutions, and understand industry needs. At present, he runs the Operations Department at Jobsity, creating a high-level strategy for the company's success and leading a team of more than 400 professionals in their work on major projects.