React Native At A Glance: Advantages & Drawbacks
Sean McGowanApril 02nd, 20182 minute read
Sean is a technical researcher & writer at Codal, authoring blog posts on topics ranging from UX design to the Internet of Things. Working alongside developers, designers, and marketers, Sean helps support the writing team to ensure Codal produces engaging web content of the highest quality. When not writing about the latest innovations in app design, Sean can be found cooking, watching old movies, or complaining about the shortcomings of his favorite Philadelphia sports teams.
Built and licensed by Facebook, React Native is a mobile framework that allows developers to construct apps that are easily transferable across different mobile platforms. In other words, engineers can use the same codebase for both the iOS and Android versions of the application, rather than writing two separate codes in Swift/Objective-C or Java, respectively.
It’s an incredibly powerful framework that’s being used for tentpole mobile apps like Instagram and Airbnb, but it isn’t without its tradeoffs. Just like any other tech stack, you’ll have to decide if it’s the right fit for you.
To help you make this decision (without having to slog through mountains of tech jargon), software development agency Codal has cut through the noise and honed in on both the pros and the cons of using React Native.
Advantages: Faster To Market, With Less Resources
By roughly halving the development time needed to construct iOS and Android versions, apps built in React Native require significantly less time, money, and engineers to create.
On top of the reusable codebase, React Native’s open-source nature means there already exists many plug-and-play components that can further expedite development. As the RN community grows, the prevalence of these off-the-shelf solutions will only increase, which means code your developers have to build from scratch.
Advantages: Hot Reloading
React Native’s hot reloading capability makes it an ideal framework for apps that prioritize a dynamic user interface. With hot reloading, UI engineers can tweak the interface and implement new changes without taking down the app and sacrificing uptime.
Furthermore, any changes made to the UI are instantly reflected in-app, without the developer needing to manually save them. Simply put, it’s another way to shave time off development and allow for the easy retooling of the app’s design.
While it’s true apps built with RN are slower than ones constructed in a native language, the difference is imperceptible for most practical use cases. For the overwhelming majority of applications, those built with React Native perform just as well as their native counterparts. Combine that with the services of an expert mobile app development agency, and suddenly your platform is operating at peak performance right off the bat.
Drawbacks: Limited Navigation Capability
Despite its cross-functional utility, React Native can’t provide the same quality of navigation as an app written in native. This typically isn’t an issue for more standard mobile applications, but ones with an especially complex architecture that requires robust navigation may be better choosing a native language.
Drawbacks: May Need Custom Modules
Though the React Native community and library are always growing, it’s still a relatively young framework, which means some of your mobile app’s components may need to be constructed from scratch—somewhat defeating the purpose of the multi-platform functionality that makes React Native so attractive.
But despite this disadvantage, the need for custom modules should by no means be a dealbreaker. As more and more developers choose React Native, the less likely it is custom modules will be necessary, meaning a more holistic, smoother user experience.
Additionally, components that don’t already exist in React Native can be built in a native iOS or Android language and inserted manually. For a comprehensive list of the modules React Native currently supports, as well as additional information on the hybrid framework, click here.
Drawbacks: Facebook Dependency
Although React Native is an open-source framework, Facebook still has the rights to it, and you’re still operating on the social media giant’s license when you use React Native. While that means you benefit from the significant amount of resources and effort Facebook funnels into their framework, it also means you’re at the corporation’s mercy should they decide to pull the plug.
It’s extremely unlikely this happens—and if it does, it certainly wouldn’t be a full-stop shutdown—but Facebook’s control of React Native still has some potential implications. For instance, Facebook has the right revoke a license to use React Native were you to get into a legal or patent dispute with them.
Choosing the right framework for your mobile platform should not be a snap decision. As a part of the technical backbone of your app, it’s necessary to spend time carefully weighing the factors differentiating these frameworks.