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
Xamarin
Score 6.0 out of 10
N/A
N/A
N/A
Pricing
NativeScript
Xamarin
Editions & Modules
No answers on this topic
Xamarin
Free
Offerings
Pricing Offerings
NativeScript
Xamarin
Free Trial
Yes
No
Free/Freemium Version
Yes
Yes
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!
Xamarin is well suited for several reasons. The first, it allows companies to share code across platforms. If the app has a lot of business logic and a fairly simple UI, Xamarin is great for this use case. Xamarin also works well if the developers who will work on the app are already fluent in .NET. Xamarin is less appropriate if the company has a lot of developers. If there are plenty of resources to develop apps natively then the headache of dealing with Xamarin's issues are not worth the effort. If the UI is very complex and has difficult animations it's difficult to debug visual/performance issues in Xamarin.
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.
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)
Having also done a lot of native mobile development, some of the IDE's features need to emulator their native counterparts. For example, trying to extract a string resource on Android in Xamarin Studio is painful. There are many useful tools in Android Studio that Xamarin should implement.
Xamarin will always be behind on native platform features. They must catch up when Apple and Google release new platform versions.
The biggest pain point is the random issues Xamarin continues to have. Having a large code base on top of a native platform makes it very difficult to debug issues. Every developer must decide if its an issue with Xamarin or the native platform. Bugs don't get fixed very quickly. Hopefully that will change with the Microsoft acquisition.
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.
Xamarin has been great for developing different projects efficiently and effectively. It's nice to reuse the core business logic across different platforms so that there are less to maintain and little replications are needed. The biggest benefit is that C# programmers do not have to learn a different language to do mobile development.
If you are required to develop applications that are cross-platformed, Xamarin is a great tool to use. It will help save time and efforts from your development team to be able to build applications seamlessly for android, IOS, windows, and web on a single platform instead of requiring multiple tools to get the job done
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.
I never had to contact support for any help. Most of the problems we ran into, we were able to identify and use peer support through blogs and other internet sources to resolve the problems. There are plenty of sources online which provide tutorials, discuss problems, etc. Example: StackOverflow
Just with any programming tasks, have a plan first. Design out the system, spend time to build it correctly the first time and have plenty of testing and user acceptance opportunities. Xamarin was easy to implement for a C# programmer. However, you need to do tutorials to realize the platform's capabilities.
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.
Xamarin runs natively on MacOS, and the debugger and other integration and auto-complete tools are far better than Eclipse for C# .NET. It also carries much of the plugin/add-on capabilities that are so desirable on Atom. Eclipse is a better for generalized software development, provided a developer is comfortable switching between the IDE the command line for certain parts of their workflow, like building, package management, or debugging. But for C# .NET development on MacOS specifically, Xamarin is the best product I've used for the job.
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.
Code Sharing - We were able to launch an Android implementation of our app within weeks after finishing iOS. The amount of time taken to develop a new platform is very small.
Monetization - not the best, but definitely getting better. We've had issues with finding suitable ad networks that work with Xamarin.