React Native Challenges and Benefits

Purrweb
Product Coalition
Published in
5 min readJul 27, 2020

--

Hi! I’m Sasha Putrov, a team lead in React Native development agency. I ‘m here to share with you my impressions of this framework as it is — using real projects as examples.

No odes to Facebook, seriously. You won’t find here a word about how they turned over mobile development by giving birth to a multipurpose technology. This is a very to-the-point article that covers both React Native challenges and benefits — go read it!

Now let’s dig deep into the details.

React Native advantages

Shared codebase. In fact, you build two separate app versions (one for iOS, another for Android) with React Native. Two versions that share 65–70% of code.

The same codebase results in fewer bugs at the development stage (as the code is almost twice less) and makes an app easier to maintain in the future. This is cool for startups: the use of React Native saves extra days or even weeks that can be spent on top-priority activities — marketing strategy development, monetization potential analysis or future product iterations planning.

Almost native. Unlike other cross-platform technologies — like Cordova, Ionic or Titanium that imitate the browser environment (where we get a responsive website pretending to be a mobile app) — React Native utilizes native APIs.

There are no issues when it comes to tabs and scrolling, and UI is as responsive as in a native app — no WebViews or alternatives behind it

Speaking of app performance that can be achieved with React Native, check out this example:

This is PAD, a real estate app that we’ve developed at Purrweb. React Native Swipe navigation looks the way as if we used Java or Swift to create it

There are tons of UI-kits and libraries that help you cope with performance challenges during the development stage — just like in any other good framework. The only thing: you’ll need to make sure a library you’re gonna use is frequently updated and supported by the community.

Speaking of the community.

Huge community. A big advantage is that the framework is getting more and more reliable libraries — well supported, by the way — from the React Native community. And these libraries assess/receive bugfixes and patches much faster. Cool, right? In addition, there is a repository where you can get help if something went wrong with an update.

TypeScript support. Static typing = fewer bugs + hassle-free project support and the ability to build a template-based app. That’s why we use it in work on all projects — too beneficial.

Easy to find a contractor. You won’t have to spend a lot of time searching for Swift and Java developers. To get started, just find a sucker for JavaScript — it’s not a big issue when dealing with the most popular. If you find someone who knows React (RN for the web), it will be even better.

Check out a few more benefits:

  • Fast Refresh — greatly speeds up app development since almost any change in the code entails instant update (re-render) without changing the state.
  • Hermes, a JavaScript engine for Android app versions — boosts app start, cuts bundle size and reduces memory consumption.
  • Auto-linking for native modules — simplifies library installation. Non-Native devs don’t have to write imports, which greatly saves time.

That’s all fine and dandy but if I skip the part about React Native challenges, I’ll be like a door-to-door salesman. These guys sell third-rate stuff trying to pass it off as something unique. I don’t. It’s important to see things from different perspectives. And React Native is not an exception.

React Native challenges

Still young. It’s not version 1.0.0 yet, so there are some missing components and constant updates.

For a developer, the ‘immaturity’ of React Native means that they need to constantly monitor the newest RN versions and its libraries. You can’t delay a product for a year and then immediately start adding new features — you’ll need some time to update the framework.

Now the update process takes much less time than two years ago. Thanks to great services showing where and what exactly to change

Now the update process takes much less time than two years ago. Thanks to great services showing where and what exactly to change

Hard to adapt to all Android devices — there are too many resolutions and launchers. Actually, this sounds more like a problem of Android development than something related to React Native challenges.

Cases when it works best

To go React Native or not — the choice primarily depends on what kind of project you plan to develop. To sum things up, a brief overview of where this technology gets an A +.

React Native MVP. If you plan to test a business hypothesis with a fully-functioning and sexy minimum viable product, React Native is definitely the way to go. It allows you to hit both Android and iOS markets and quickly get initial feedback.

You might think: ‘Okay, I’ll create React Native app. I’ll build my MVP using this technology — will it be awesome?’ And we’ll tell you, ‘Sure thing!’

As awesome as this event app system that we developed at Purrweb. Just three simple steps to activate a guest’s wristband

Everything I’ve told you — including React Native disadvantages — is nothing but pure experience that I’ve gained from dozens of projects: current and those that had been successfully released and moved into the maintenance stage. I was, am, and always will be a supporter of React Native. Here I tried to give you the clearest picture of what we actually have. I’ve been honest with you, so hope you’ll get it. 🙂

--

--

Full-cycle Development Team focused on Web & Mobile applications. We share our experiences through articles and project cases. https://www.purrweb.com/