As a programmer at Purrweb, I wish to share my expertise on what React Native is in real projects. This framework continues to attract the attention of newbie developers, but it still causes controversies. I decided to distance myself from any disputes, beautiful epithets, and hackneyed phrases to share my own, proven experience.
Here, I transform my knowledge of iOS and Android development into a useful guide designed to answer one question: what are React Native specialists really dealing with?
Those who don’t have hands-on experience with the framework often think that it is perfect. But this is far from being the case. I will definitely talk about the drawbacks, but let’s start with the positive.
RN code is pretty much similar to that of iOS and Android systems. In fact, it is 65-70% the same. So, the total amount of written code will be almost two times less. Thanks to this, the number of bugs that may occur during app development is minimized. The unified code also makes it simpler to maintain an application in the future.
This gives a significant edge to startups, for example. This way, they get more time to focus on other activities — launching a marketing campaign, analyzing monetization methods, planning future iterations, etc.
As close to native as possible
Unlike other popular solutions like Cordova, Ionic, or Titanium, which mimic the browser environment, RN uses native APIs. As a result, there are no problems with tabs and scrolling, the interface is as responsive as in a classic application, without WebView or similar tools under the hood.
RN is packed full of components and libraries. They help complete various performance tasks during the product creation process. However, the main concern here is to make sure that the library used by a programmer or a team is maintained by the community and, therefore, updated frequently.
The RN community is constantly working to add tested and functional libraries to the framework. Often, such libraries can boast wide support and frequent updates in the form of fresh bug fixes and patches for the new version of the framework. In addition, there is a repository where developers can get help in case of failure to upgrade to the latest version of RN.
What can I say here? Static type checking is a very handy feature. Thanks to it, the number of bugs that may occur because of negligence is significantly reduced. In addition, TypeScript helps simplify the process of maintaining a project or even create an application based on a template. At the moment, all our teams use TypeScript for their projects.
The fastest way to find a contractor
Customers no longer need to spend a lot of time looking for Java and Swift developers. Ideally, finding a specialist who understands React (the same RN, but for web development) will be enough.
A few more useful features:
- Debugger Flipper should be installed as a default to support plugins;
- Fast Refresh significantly speeds up and simplifies the development of an application. After any change to the code of a component, it starts the instant update process without changing its state;
- JS-engine Hermes speeds up application launch for the Android version, reduces the bundle size and memory consumption;
- Native modules’ auto-linking simplifies the installation of libraries. Non-native users do not need to write imports, which greatly saves time.
Following the above said, one may think that React Native is the obvious choice for any developer. But some specialists continue to choose other solutions because of the RN disadvantages.
The framework is too crude
It seems that React Native has been around for a long time, but it is still not even the 1.0.0 version (the current version is 0.63). In this regard, many components are simply missing, and the technology itself is updated too often, which is not always a good thing.
These frequent updates mean that developers need to closely monitor the version of their RN and libraries that it relies on. This removes the ability to postpone the product, say, for a year, and then start adding new features, since it will take time to update the framework itself. But it is still worth mentioning that in 2021 this process takes much less time than two years ago. There are convenient services that show what and where to update.
The problem with Android
The problem of adapting RN-based applications to all Android devices remains. There are simply too many of them, with different screens and resolutions. However, this issue is relevant to many other cross-platform solutions.
The above points are solely the result of my experience in working on various projects — both current ones and those that have already been successfully launched and transferred to the support phase.
The framework is not perfect, and still too fresh. But, from my point of view, it is the best solution available on the market, for 95% of tasks.