If you work with apps in any way, shape or form then you’ll no doubt have come across React Native (and if you haven’t, where have you been?). A brainchild of Facebook (and similar to their JavaScript library React), the open source React Native platform has taken the app development world by storm, allowing developers to build cross platform apps using Javascript and in essence, develop one version of an app that can then be pushed out across multiple platforms, instead of building separate versions. Naturally, the latest version of the Facebook app has been built using React Native, but we ask – is this really the future for app development?

Cross-Platform App Issues

Building an app that can be used across multiple operating systems is a notorious minefield, with a long legacy for bad builds. Apple have very stringent guidelines for apps to be approved onto iTunes, and even if you do have a tool that can do this, the result is often poorer than that of an app built in a dedicated framework. However, many developers still either choose or are forced to go down this avenue due to budget constraints, often leading to issues with slow loading, the need for frequent updates and limits on what can be done with graphics, especially for games.

This is where React Native comes in!

Using React Native

React Native has a few unique features that make it work more cohesively than other cross-platform tools out there.

For one, it doesn’t make apps run inside a web view, but instead builds a mobile app that runs standalone on each operating system.

Facebook have also released the Create React Native App, which simplifies the initial set up process and makes it just that bit easier, especially for novice users. There are also courses available from third party sellers on using React and React Native, so support isn’t an issue, especially as debugging and application packaging development tools are also readily available.

For developers who like to see changes in a real-time environment, React Native serves this up no problem – you can see the code and implementation on real mobile screens changing as you go, with interfaces for different operating systems laid next to each other for comparison.

React Native has native controls that allow for smooth performance on older versions of each operating system, with little to no lag. • The code can be reused across different apps – a definite plus! Of course, as with any development platforms, there are some niggles

The CSS Flexbox that React Native relies heavily on can be a bit tricky for new users – but there are many tutorials online to read up on how it works (and http://flexboxfroggy.com/ if you fancy whiling away a fun few minutes)

It is a relatively young and fresh contender on an already heavily saturated market, so competitors such as Xamarin can feel more comfortable to navigate around – but new versions are released monthly and the developer community is growing massively.

With the new versions of React Native being released, vigilance is a must to keep up with compatibility – but most changes are minor and there is plenty of warning and notice given. You can also use the upgrade assistant to check your native project’s compatibility.

So, is React Native the future?

Well, we certainly like it! No longer are we having to have difficult conversations with clients about the cost and support needed to build separate versions of the same app, or choosing to use a cross-platform tool that doesn’t quite meet the mark. We have seen a reduction in issues with Android users seeing reduced functionality when compared to iOS users of the same app (a definite plus with Android overtaking iOS in terms of revenue and downloads). Whilst React Native does have it’s cons, they aren’t major and definitely don’t detract from the end results.