NativeScript is an open source framework that allows
you to create native iOS and Android apps, with one codebase, using the web
skills you already have (JavaScript and CSS) and the libraries you already
love.
N/A
React
Score 9.3 out of 10
N/A
React is a JavaScript library for building user interfaces. React enables users to create interactive UIs. Design simple views for each state in an application, and React will update and render just the right components when data changes. React is available free and open source under the MIT license.
N/A
Pricing
NativeScript
React
Editions & Modules
No answers on this topic
No answers on this topic
Offerings
Pricing Offerings
NativeScript
React
Free Trial
Yes
No
Free/Freemium Version
Yes
No
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
The NativeScript framework and CLI are completely free and open source. NativeScript Sidekick is a free download to improve developer productivity with optional paid tiers for power users.
NativeScript allows to easily integrate with native APIs by threading models. Moreover, the framework itself can be integrated with Angular, VueJS and JavaScript due to the fact that it was built on based on these frameworks. It allows you to easily maintain if you projects are based on these frameworks. Therefore, for the development of cross-platform applications it can be very handy!
React is a JavaScript user interface construction library that works well for:
Developing web apps with dynamic and complicated user interfaces.
creating reusable UI elements that may be used in other applications.
creating single-page applications with dynamic content updates that don't require a page reload.
The Virtual DOM's effective updating mechanism allows it to handle large volumes of data updates.
React, on the other hand, might be less suitable for:
Websites that are simple, stagnant, and have no interaction. Other libraries or simple HTML, CSS, and JavaScript may be a better fit in such circumstances.
Web sockets may be a better choice for applications that need real-time updates, such as chat or gaming apps.
When creating mobile apps, React Native is a better option.
Server side rendering only, as React is designed to run on the client side.
True native app. The app uses native components and that is quite noticeable in the overall performance of the app. NativeScript is also awesome in the way we can access the native APIs, so we are never really constrained by the framework. If we need, we can just dive into the native APIs without leaving our environment and language (JS).
Cross-platform. Builds for Android and iOS. It deals with the platforms differences very well.
Support for Vue.js. Even though it is just a community effort, the NativeScript-Vue plugin is the best alternative to build native Apps with Vue.js. That was a major factor to go with NativeScript.
Solid backing by large organization (Facebook) thats committed to keeping the development on the project. In my mind, this is the number one priority for any library because without this: time is wasted on getting up-to speed on a library that you will never use, have a codebase with a library thats hard to maintain because few years down the lane, hiring devs to maintain an unsupported library is very difficult.
As with any libraries, open source community's support is critical for success of any framework because this allows for more pre-built components that could be used right out-of-box => makes Development using React a breeze.
React's Stateful and Stateless components make organizing your code a breeze. These components would also allow for writing clean Unit Tests on the logic.
React's component lifecycle. It offers a variety of lifecycle methods, that allows for handling different scenarios of loading and manipulating data in the UI.
I found React's documentation very well maintained with plenty of examples explaining each feature.
Responsiveness is a very important criteria in selecting a UI and React is very responsive. It does some neat optimizations on re-rendering using virtual DOM and would only re-render parts of the DOM that changed. These optimizations makes React Applications feel really fast.
React Native would allow for building applications that span across web and mobile interfaces (iOS and Android). This makes learning React even more enticing, because using a single library, you could build applications that span across Web, iOS and Android.
create-react-app is an effort by Facebook (creators of React) that makes getting started with React really easy. It does all the heavy lifting of configurations for you and allow you to focus on just development.
Small footprint, minified React + React DOM is under 150Kb, that makes loading UI's with react really fast.
React + Enzyme (backed by Airbnb) + Sinon + Mocha + Chai makes unit testing the UI components fun and improves the overall maintainability of the project.
Nativescript runs everything on a single thread. i.e., the UI thread. If you want to offload some processing, you have to use web workers. This experience can be improved in the future releases.
Currently NativeScript only have hot reload when you change the UI file or Css file. There is no hot reload when you change Js/Ts file, unlike Google's Flutter. This is also something which NativeScript will get in the future releases.
In current version of NativeScript, there is no livesync when building with webpack. This feature will be added with NativeScript 4.x. (an RC version for 4.x is already available)
React's state management can get hairy if you have a deeply nested component and need to pass things up or down the tree very far. This is where libraries like Redux come in, however.
The progressive nature of its development and change cycles can leave information outdated online faster than other frameworks. This can make finding help or documentation on 3rd party sites frustrating.
The learning curve on "thinking in React" can be slightly higher than other more familiar patterns of web development.
Building an app in it can be cumbersome to set up with webpack, but things like Create React App can get you going in a jiffy.
The hybrid is ok but native is better for performance and the right use case I want to go for is the performance without dealing with too many development tools.
There are a few things that may take some getting used to when coming to a modern JS frontend. Tools like Babel and Webpack (or abstractions that hide their details from you) are often a starting point and JSX can be confusing at first. But assuming the developer is already familiar with modern frontend tools, React is a very natural fit and makes creating user interfaces a joy.
My focus has been, and must remain, with obtaining support from web resources over that of paid support programs. Many companies, including those of government agencies, do not have a budget sufficient for paying large sums of money to other organizations to answer questions. Even in cases where an organization did purchase support programs, developers often found that the delays in obtaining responses to development issues was excessive. I give NativeScript the lowest possible rating, due to the fact that their website content is severely outdated and of little use to a developer in a crunch. The NativeScript environment may be far better than I have been able to report, but held back from excelling due to poor support content. Being that I am often asked to push the boundaries in various areas, improper documentation is highly detrimental to a development team, and thuss a review. I would be more than happy to improve this review as the content of the support documentation provided by the NativeScript team makes its way to their website in the form of real-world examples which are applicable to all versions, or at least the most recent versions, of their product.
Since it's open-source and very popular, the community support for React and related tools and libraries is excellent. There are a lot of people using the same tools, and so issues tend to get fixed quickly and "recipes" are easy to come by. And since it's backed by Facebook, they have a dedicated engineering team working on the progression of React.
NativeScript was indeed a better experience at first than Ionic. But the real game-changer in 2022 for cross-platform applications is Flutter now. We changed to it shorty after NativeScript, as it is much more stable, more widely supported, has a ton of extra features, and does not rely on JavaScript and Android knowledge as much as NativeScript.
There are other options for building SPAs, and the two most common aside from React are Vue and Angular. React has been the leader of the pack for a while and has been an innovator. Angular is good for companies that want an opinionated framework so that it standardizes practices. However, Angular is known to be more difficult to work with and unnecessarily complex. Vue is seen as taking the best from React and Angular, and it is built for incremental upgrades. Vue has a passionate and growing user base, but it hasn't quite caught React in popularity.
We had built this particular app once already, during a 6 month time frame, using Ionic. When we hit the wall, we chose NativeScript, and built the whole app from scratch. We estimated another 6 months, but completed the work in 4 months due to the ease of use.
We have found collaboration with our client much easier because of the simplicity of releases and speed of development.
Having a tool like NativeScript has allowed us to make competitive quotes for mobile app development contracts, where previously that would have been closed to us due to our lack of native development experience. Being able to build iOS apps without a Swift-code expert has opened those doors for us.
Since we're still in the conversion cycle, all the data is not in. But React has had a positive impact on Developer productivity and the ability to produce efficient, highly flexible UX. This in turn, enhances our customer experience, which is generally the most important component of our ROI.
Conversion has been difficult since it requires a change of mindset. Most developers have adapted quite well, but the process has been lengthy, and 2 years in, we are still not fully converted. This essentially is a temporary negative impact on ROI.