So, you, too, want a “piece of the pie” right? Since now, with the new generation of cross-platform mobile development frameworks available, any developer/entrepreneur can build his native-like mobile app and have it running on ALL platforms. So, a new world of opportunities opens before your eyes! Now the question that arises is: who wins the “React Native vs NativeScript” race for your “heart and mind”?
One's backed by a huge community, not to mention its famous “protector”: Facebook. The other one takes the “write once, use anywhere” philosophy to a whole new level.
One “entices” you with high performance that it's ready to inject into your future app. The other one tries to lure you in with full access to native APIs and freedom to work either with Angular or with JS. Whichever you're more comfortable with.
Tough choice, right?
Well, the choice is dependent on your own needs (like all choices should be). And while you're defining them and analyzing them, let's compare the 2 cross-platform frameworks competing here using 7 key criteria:
React Native and NativeScript: 2 Cross-Platform Frameworks, One Promise
The “promise” here being that of developing your app once, then running it across all platforms, all while accessing native components, needless to add.
Unlike the once so very promising hybrid frameworks, which use web view for rendering and which CANNOT access and use native UI components...
In this respect, both NativeScript and React Native, 2 next-generation cross-platforms, promise you that they'll:
- help you build a mobile app accessing and leveraging UI components from the native OS (with a huge impact on its UX)
- … and all this WITHOUT using the browser to “wrap” it into a native app
Now let's proceed jurying this “competition”:
React is just... fast, way faster! Its native rendering provides a user experience that's the closest one to a purely native one.
By comparison, NativeScript — which “spoils” you with native rendering, too — is a bit slower due to its Angular-powered rendering process.
2. Technology Used
It was more than predictable that the 2 teams would go with WEB frameworks and web-specific concepts for setting up their cross-platform frameworks' architecture and tooling. It was vital:
- for developers not to feel as if they were walking on unfamiliar "native ground; instead, to get the feeling that they were (still) developing for the web
- for the underlying mobile machinery to get “outshone“ by familiar web technologies
And so, each team chose its favorite(s) technology to implement:
- uses React JS, so you might find it a bit more challenging to learn React
- doesn't have a web framework in itself, since it's more of a UI library instead; this is why its mobile UI is made of JSX-written components
- … meaning that you'll need to reach out to its large community for selecting your own state management, your app's navigation, network modules...
- if you're already familiar with Angular or JS (and there's no need for you to learn a whole new framework), this might be a reason weighing heavily on your React Native vs NativeScript decision-making
- you'll be able to... get right to it and have your app built in no time!
3. Provided Support
If we put the two rivaling solutions for mobile app development under a magnifying glass using this criterion, here's what we discover:
- is delivered to us by Telerik a Progress, a software development company
- meaning that you can rely on their full support (both in the development and the production phase)
- at an enterprise level, you get to benefit from their training, dedicated services, a stack of tools and solutions (e.g. code encryption)
- at a developer level, they offer you their full support on GitHub; it's there that you can post all detected issues and requests
- not backed by a developer tools company, but by... Facebook itself
- other major contributors are Wix and Airbnb
- it provides you with multiple “support channels” for sending out your questions/special suggestions/signaling all detected issues: Stack Overflow, Facebook groups, Discord channels, Product Pains (a voting system for new feature requests)
4. Provided Access to Native APIs
Let us jury the “React Native vs NativeScript” competition for developers' “hearts and minds” (in this case yours) using a new criterion: the way each framework accesses the native runtime!
And their approaches sure are different:
- all the objects in JS will be right at hand (so, no need to become a Java guru or to get a grip on working in Objective-C)
- the one and only “small inconvenience” to expect is the need to apply platform-specific changes to config files if you use native third-party libraries
- won't provide you with full access to native APIs
- you'll need to write your own “bridges” for that (which are nothing more than Java or Objective-C/Swift pieces of code where you point out the interface of the objects that you need in your app)
- no need to panic, though: you stand all the chances to find precisely the “bridge” that you need as you dig through all those provided by the React community
5. Underlying Philosophies: React Native vs NativeScript
Choosing the right framework for your mobile app project is not just about analyzing the used technologies, but also about considering the promises the compared frameworks make.
Now, let's run our imaginary magnifying glass on the 2 rivaling cross-platform frameworks here and see what they're “luring” you in with:
- “learn once, write anywhere” is the promise the React team makes
- it's true that React is significantly more difficult to get started with, but once you're familiar with it and once you've written your code, you get to use it across all platforms (Android, Windows Phone, iOS)
- moreover, it empowers you to create and to render platform-oriented UIs
- “write once, use anywhere”
- not only that it's easier to get started with NativeScript, thanks to the familiar web frameworks that it implements, but your codebase will run smoothly on all native platforms
- so, no need for custom work here
- a key advantage for NativeScript in the “React Native vs NativeScript” clear-cutting competition
6. Plugin Ecosystem
How about weighing each framework's “load” of third-party libraries now?
Since the right plugins can definitely take pretty much any “OK-ish app” right to the level of... “the next best thing in terms of mobile native apps”.
- taking its globally known “protector”, you won't be nickel and dimed in third-party plugins, that's for sure
- there are lots of third-party apps that started to provide API especially for Facebook's protege, with new and new platforms releasing their React Native-oriented plugins every day
- so, do expect a significant load of plugins to rummage in
- although lighter than React Native's own pile of third-party plugins, it's still heavy enough to meet your app's specific needs
What if you hit a dead end right at a key phase of your cross-platform app development process? Then it will be reassuring enough knowing that you have a large community of dedicated developers ready to give you a hand, right?
So, let's jury our “React Native vs NativeScript” competition here as regarding the community aspect.
First of all, I should point out that both frameworks are open source, so they stand on an equal footing here.
- predictably enough, being backed by Facebook and being an extension of ReactJS has been helping React Native gather a huge community of developers
- although outshone by React Native's audience, having both Google and the AngularJS community backing it has helped this framework, too, gather a community of millions of developers ready to assist you
It All Comes Down to: Picking The One that Best Serves Your Project's Needs
So, which are they (your needs)? What type of mobile app are you planning to develop?
- Is it a platform-dedicated one, supercharged with high performance and cutting-edge functionalities? Then React Native is a good fit (yet, do keep in mind that you'll need to custom-tune your app's UI for each and every platform that you'll want it to run on)
- Is it a 100% cross-platform app, using the very same codebase across all platforms, that you have in mind? Then NativeScript might be the answer
- Is your users' network connection a vulnerable issue in your scenario? Then you might want to consider opting for a React Native app, since it will be lighter than a NativeScript one
- What do you value most: a huge and involved community of developers ready to help you out (React Native) or dedicated paid support and custom training (NativeScript)?
- Are you already familiar with React or with Angular?
In the end, there's no “winner” in the “React Native vs NativeScript” race! There's just a “perfectly suitable” and a “less suitable” framework for your own app idea.
Now take your time to ponder on the 2 cross-platform frameworks' pros and cons, to analyze your project's specific requirements and see which one of them suits best.