Listen to this story
|
Developed by Facebook (now Meta) in 2013 for internal use and released to the public in 2015, React Native came into the scene and managed to make a mark in the frontend-development ecosystem.
It uses the same principles as React – a component-based structure, hot reloading, and a vast developer tools ecosystem. Backed by the JavaScript community, it uses the knowledge and solutions from a multitude of developers to ease development for others.
It is important to differentiate between React.js and React Native. The former is a library for building web applications, while the latter is a framework for creating mobile applications.
Subscribe to our Newsletter
Join our editors every weekday evening as they steer you through the most significant news of the day, introduce you to fresh perspectives, and provide unexpected moments of joy
Your newsletter subscriptions are subject to AIM Privacy Policy and Terms and Conditions.
Component-based UI development that used to be React’s USP is now adopted by the development community at large. Several competing front-end frameworks and browsers provide more varied options.
Is it worth learning today?
Despite the plusses, reasons are mounting not to learn React Native. As an engineer, it may not be worth adding this tool to your kit. Firstly, React refrains a developer from exploring web development, especially the separation of concerns and the basics of HTML, CSS and JS. One can say it keeps engineers from becoming experts in web technologies because they’re too busy learning React specifics.
Often, React applications don’t play well with browser features. As a result, if a new HTML markup specification reaches full browser support, React users will often be among the last to use it.
Secondly, code maintainability is an issue as React requires complex building tools. It requires at least four steps of transpilation to run React code in production, often leading to configurations that one can’t master easily. React files are typically written with a .jsx extension which cannot be executed in a web browser without exploring the specifics. Moreover, it needs to be typically converted into readable Javascript files. At the end of transpilation, the written code is unrecognisable from the code that runs.
Developers find it difficult to debug the apps built with React Native. These apps use several programming languages, such as C++, Java, and JavaScript, which slows down the debugging process. Hence, developers need to understand the platform’s native language thoroughly. React Native apps sometimes crash during debugging, and the React Native logs aren’t really helpful. That’s why many developers use a tool like Flipper that makes debugging more manageable and enables access to native logs.
Lastly, users find the React Native developer environment very mac/iOS-centric.
Every tool has a lifecycle, and several users suggest that React is reaching the tail end of its (extremely influential) life. Of course, the concepts React introduced in the web development domain will continue to develop, but if not in the world of React development already, one can reconsider based on the current technology available.
What is the best alternative?
Flutter is a solid contestant for React Native. It is more likely to gain an advantage over React because of its compatibility with hybrid app development, allowing mobile app creation. One can say it is likely to be replaced by Flutter once it gains footing among developers.
Other than Flutter, Microsoft developed Xamarin is a worthy competitor. Though unsuitable for UI-heavy applications, its flexibility and scalability helps it earn a spot on this list. Xamarin lets developers reuse up to 96% of their C# code by leveraging the language. Further, it offers forms components, making it better for code reuse than React Native and Flutter, which share an average of 60–90% of codes.
With prominent contributors, including Google, BlackBerry, Adobe, Microsoft, IBM, Microsoft, and Mozilla, Apacher Cordova deserves to be mentioned. After the 2011 acquisition of Nitobi by Adobe Systems, the framework was renamed PhoneGap. Then the open-source edition was released as Apacher Cordova.
Apps created with Cordova offer similar functionality across mobile as well as web platforms. Moreover, version 1.9 and above, allows developers to combine hybrid and native code snippets. It also enables users to utilise wrappers such as Intel XDK and Appery.io. It reduces the reliance on platform-centric APIs such as those of Android or iOS.
Wrapping up
React created a paradigm shift by moving developers from using HTML, CSS and JS as separate resources to the belief that all three can be shared and reused. But this framework is now the de facto model for web development, and the space has become saturated with choices. Other frameworks on the domain provide a smoother experience altogether, and one need not stick to React just for the buzz around it.
Note: The version of React Native at the time of writing is 0.70. The “0” indicates that the project believes the framework has not yet reached initial release status. Source: https://reactnative.dev/versions