Need advice about which tool to choose?Ask the StackShare community!


+ 1

+ 1
Add tool

NativeScript vs Xamarin: What are the differences?

What is NativeScript? Build truly native apps with JavaScript. NativeScript enables developers to build native apps for iOS, Android and Windows Universal while sharing the application code across the platforms. When building the application UI, developers use our libraries, which abstract the differences between the native platforms.

What is Xamarin? Create iOS, Android and Mac apps in C#. Xamarin鈥檚 Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry鈥檚 most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.

NativeScript and Xamarin belong to "Cross-Platform Mobile Development" category of the tech stack.

Some of the features offered by NativeScript are:

  • 100% Access to Native Platform API
  • NativeScript is free of charge as an open source project
  • Code with JavaScript. Style with CSS

On the other hand, Xamarin provides the following key features:

  • Cross-platform development- Thinking about supporting iOS, Android, Mac and Windows? Xamarin allows you to write it all in C#.
  • Reuse existing code- Use your favorite .NET libraries in Xamarin apps. Easily use third-party native libraries and frameworks.
  • Discover as you type- Explore APIs as you type with code autocompletion.

"Access to the entire native api" is the top reason why over 55 developers like NativeScript, while over 111 developers mention "Power of c# on mobile devices" as the leading cause for choosing Xamarin.

NativeScript is an open source tool with 17.1K GitHub stars and 1.26K GitHub forks. Here's a link to NativeScript's open source repository on GitHub.

Rdio, Olo, and Rumble are some of the popular companies that use Xamarin, whereas NativeScript is used by Work Box, Zege Technologies, and GeekyAnts. Xamarin has a broader approval, being mentioned in 74 company stacks & 65 developers stacks; compared to NativeScript, which is listed in 10 company stacks and 23 developer stacks.

Advice on NativeScript and Xamarin
Bhupendra Madhu
Web Developer at Ecombooks | 8 upvotes 路 30.8K views
Needs advice
FlutterFlutterReact NativeReact Native

I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.

See more
Replies (3)
Myo Win
CTO at Myanmar Web Designer (MWD) Co., Ltd. | 5 upvotes 路 14.3K views

Flutter is the best one. If you are a new comer in mobile app development, choose Flutter.

But if you have strong experience in JavaScript and you have a lot of JS websites that you want to develop into mobile apps, choose React Native.

Ionic also has its strong points such as a lot of prebuilt components for different platforms and minimal dev environment requirement (you only need a browser).

See more

React Native has a very rich ecosystem and if you're already a web developer, the skills that you already possess will transfer over very well. React is the second most popular web framework according to Stack Overlow's 2022 Developer Survey. No one framework is the 'best' as they all serve different purposes and have different use cases. If you're looking to pick up something popular, I would recommend React Native.

See more
Kubilay Cagri Yildirim
Senior System Architect at Profelis Bilisim ve Danismanlik | 1 upvotes 路 347 views

The easiest and fastest for you right now is React Native. I dont know about the Xamarin but I dont like microsoft.

See more
William Miller
Needs advice
PyQtPyQtReact NativeReact Native

We are developing an AWS IoT app for large boats. The IoT devices have sensors all over the boat for engine oil pressure, position, water depth, fuel level, crew location, etc. When the boat has internet, we interact with AWS cloud using lambda and Amazon DynamoDB. When the boat is offshore, the captain and crew still need normal and emergency alerts and real-time sensor information. The crew might have an Android or IoS phone or a Windows or macOS PC to receive alerts and interact with sensors. We may use the AWS GreenGrasss edge computing solution and either MQTT or HTML for that function.

Question: We want to develop a cross-platform client to run on Windows, Mac, Android, IOS, and possibly Linux. We are primarily Python programmers, so PyQt or Kivy are options for us, but we have heard good things about React Native, Flutter, Xamarin, and others. We think an AWS Greengrass core on an RPI4 could communicate to the client with MQTT or a local webserver with a client web interface.

Any thoughts would be much appreciated.

See more
Replies (2)
React NativeReact Native

I don't know much about Xamarin but I know about PyQt and React Native.

However, I don't recommend PyQt because the apps made using PyQt are not that suitable for mobile apps. If you take a look at the PyQt interface, you will be able to see that the features are more of a desktop apps kind.

React Native uses JavaScript. React Native is immensely flexible in upgrading your apps because it allows you to formulate your app code into independent blocks.

In Xamarin, you have to write the code in .NET . The best thing about Xamarin is, that it extends the.NET developer platform with tools and libraries specifically for building apps for Android, iOS, tvOS, watchOS, macOS, and Windows

While the best choice for you depends on various factors but React Native app development is a promising overall choice. In today鈥檚 scenario, React Native has steady growth, flawless code structure, and brilliant and large community support. We suggest you go for React Native for your next project owing to its outstanding support from developers, easy availability, and cost-effectiveness.

See more
Saamer Mansoor
Founder at The First Prototype | 4 upvotes 路 29.2K views

It seems like your app is not really using any native functionality on the phone. I have experience with cross platform iOS & Android development. They are all really good tools! Xamarin (all the project on the website portfolio I attached) is awesome for accessing native functionality (NFC, Sensors, Bluetooth, etc), and I have built apps that have millions of downloads, some that hit Top 5 on Utilities, another that hit Top 50 in Finances. You just have to look at what your application intent is, it seems like it's just to read and post data. For that they are all pretty good, but you should also look into Ionic which may serve the same purpose

See more
Decisions about NativeScript and Xamarin
James Bender
Lead Application Architect at TekPartners | 5 upvotes 路 30K views

I've yet to see a non-native application that I felt performed as well and/or provided the same user experience with Cordova/PhoneGap/Xamarin. Frankly, at best they all seemed like underpowered web applications deployed to a sandbox that ran on a phone. They didn't feel "slick" or "mobile-first" and in some cases the performance was unacceptable. At previous companies, we built a few of these apps at the client's insistence, and in every case, they re-engaged us about 18 months later to re-write the app(s) natively.

We are doing some research on React Native and Flutter, but I am not yet convinced that they can provide the same level of experience and performance as native, though I am trying to keep an open mind.

See more
Gabor Galazzo

As a startup, we need the maximum flexibility and the ability to reach our customers in a more suitable way. So a hybrid application approach is the best because it allows you to develop a cross-platform application in a unique codebase. The choice behind Ionic is Angular, I think that angular is the best framework to develop a complex application that needs a lot of service interaction, its modularity forces you (the developer) to write the code in the correct way, so it can be maintainable and reusable.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More