Hello everybody
I'm web developer (student for now)and i've done some little project with angular 1 and react. But I want do bigger projects with this technology including mobile application.
So i think that i need to consider two different technologies :React/ReactNative or Angular2/NativeScript.
Do you have any advice or feedback about them ? If i spend lots of month for learning one of them framework, i hope using in my future job, which one can be more used in the few future years?
Thank's for your help !
I prefer React Native over Angular NativeScript because it is a mobile framework that compiles to native app components, allows us you to build native mobile applications (iOS, Android, and Windows) in JavaScript that allows you to use ReactJS to build your components.
Angular is complex to learn where as ReactJS is easy because its a very small framework.
Regards,
In terms of architecture, React Native and NativeScript are quite different.
NativeScript is simpler to understand. It's basically the Java/Android API or the ObjC/iOS API wrapped up in a JS API. Note that they aim for 100% parity between the native platform APIs and the corresponding JS clone API. They do not attempt to abstract the native API before exposing it to JS, i.e, every single Java class and method should have an equivalent JS binding. Under the hood they basically wrote a JS-to-Java/ObjC bridge that handles data marshalling, garbage collection integration, etc. All this bridging work comes at a performance cost, although very minor. Also, everything happens on the UI thread and there's no transparent thread support yet, so the UI can get laggy if there's a lot of processing to do. Angular has been integrated into NativeScript so now it's possible to build Angular mobile apps that are driven by native UI elements.
React Native takes a more involved approach. First of all, there is no direct mapping from native to JS APIs, i.e, they do not attempt to make every class or method in the native API directly callable from JS land. Instead, they abstract the view system of the platform to something that makes sense for React. On both Android and iOS there is native code (in Java and ObjC) that wrap the native View objects and allows the React framework (JS code) to control them. All the JS (including the React framework code and the user code) runs in a separate thread from the UI. The JS side and the native side communicate by exchanging serialisable messages, which can be intelligently batched to minimise the JS-to-native call overhead. The performance critical stuff like computing layout and animations can be handled on the native side while the high level UI logic nd the business logic can be written in JavaScript. Users can even write their own native modules to interface with native code from JS.
Unlike NativeScript which basically says "JS all the things" and exposes the entire native APIs in JS, RN builds a thin abstraction over the platform's native UI system that does all the performance-critical low-level stuff in native and is driven by the high-level JS code. Of course, this means that React Native does not give you access to the low-level details of the UI and forces the React way of doing things on you, but that's kind of the point. Personally, I prefer React Native because I think it has a better architecture and there is a lot of community momentum behind it and it has already been demonstrated to be a very capable solution to build performance UIs in JavaScript.
I'd personally invest time in NativeScript, not because of Angular2, but because NativeScript was designed to work with vanilla JavaScript out-of-the-box, unlike React Native which has a dependency on react.js.
This means that after the initial learning curve of NativeScript, you won't have to ditch your previous knowledge whenever Angular or React get declared obsolete by the community, and people start migrating to "the next cool framework". Some years ago, most of us took jQuery for granted.
Other advantage of NS is the automatic availability of new APIs (ex. iOS 10, or Android N), so you won't have to wait until NS gets updated to take advantage of the new APIs.
Also, I read some claims that "React Native has a longer story than NativeScript", I don't know in which parallel universe did that happen, but NativeScript was released 6 months before the announcement of React Native. [1][2]
I'm betting on React, big time!
It's very simple to reason about big applications in React, because of it's rendering paradigm and component hierarchy. That's something I was never able to do before in javascript, even on angular (just tested the version 1).
On top of that, it's very fast, has awesome documentation, ever growing community and the library just gives some freaking good error messages and warnings when you mess things up :')
But, don't have my word for it. Test it yourself! You could get the basics of react in a single day.
If you have just 2 alternatives in mind, there's no reason to spend months learning something before testing them to see what fits you best. Take like 2 days for each technology and play with both before commiting. That's my advice to you (:
I think that you know the difference between the Angular and React. Both have its Pros and Cons. If you want to know more about the differences, Check the following links
I prefer React Native over NativeScript. You can find lots of resources for React Native on the internet, and the learning curve is also not steep. It will be easy for you to learn and deploy the application in React Native.
React Native is created by Facebook and the NativeScript is created by Telerik. Facebook is investing a lot on React Native. As the result, You can find many production quality React Native apps in Play store and App store.
React Native: Learn Once, Write Everywhere
NativeScript: 100% Shared code
As the goal specifies, You can share 100% of the code between Android and iOS in NativeScript. But, In RN, you can share codes between both the app but not 100%. In my point of view, React Native goal is better than NativeScript because every platform is different from each other.
React Native is also using the Virtual DOM for updating the UI like React. React Native will calculate the changes in the background thread and keep the UI thread untouched if there is no change. So, UI will be very responsive. But, If the component makes a lot of calls to the native OS, then the app will be slow.

NativeScript is following the classic approach like Android. Running JavaScript on the UI thread allows NativeScript to deliver on one of its core guiding principles: provide high-performance access to 100% of native platform APIs through JavaScript. Period. No trade-offs. No limits.

As of July 2016, React Native has 888 contributors and 35k+ stargazers. NativeScript has 64 contributors and 7k+ stargazers.
React Native Community is very active on StackOverflow, Official Facebook Group and other forums.
There won't be the drastic performance difference between the Native and these two frameworks. These frameworks are the huge improvements from the Phonegap/Cordova. React Native have slightly better loading time than NativeScript.
React and React native because it has a longer history than angular 2 and native script.
César Devesa
{NativeScript}
And thinking about the crossPlatform or crossCode, with Angular + NativeScript + Electron you can:
Target platforms:
Like this: github.com/NathanWalker/angular-seed-advanced