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

NativeScript

539
1.1K
+ 1
516
Xamarin

1.3K
1.5K
+ 1
785
Add tool

NativeScript vs Xamarin: What are the differences?

# Introduction
When choosing a cross-platform mobile development framework, NativeScript and Xamarin are two popular options. Understanding their key differences can help developers make an informed decision on which one to use for their projects.

1. **Language and Technology Stack**: NativeScript uses JavaScript, TypeScript, and Angular to develop mobile applications, while Xamarin uses C# and .NET. This difference in languages and technology stack can influence a developer's preference based on their familiarity and expertise in a particular language.

2. **UI Components**: NativeScript offers native UI components that render directly to the native platform, resulting in faster performance. In contrast, Xamarin relies on a shared UI framework that may cause a slight lag in performance compared to NativeScript.

3. **Tooling and Ecosystem**: Xamarin provides a robust ecosystem with Visual Studio and Xamarin.Forms, allowing developers to build cross-platform applications efficiently. On the other hand, NativeScript offers multiple plugins for seamless integration with various libraries and tools, enhancing the development experience.

4. **Performance and Compilation**: NativeScript compiles the JavaScript code to native code at runtime, resulting in slower startup times compared to Xamarin, which compiles the code to native binary, leading to faster execution. Developers need to consider the trade-off between startup time and execution speed when choosing between the two frameworks.

5. **Community Support and Documentation**: Xamarin, backed by Microsoft, has a strong community support system and extensive documentation to address developers' queries and concerns. NativeScript, although growing rapidly, may have fewer resources and community-driven solutions compared to Xamarin.

6. **Cost and Licensing**: While both frameworks offer free community editions, Xamarin requires a paid license for businesses with revenue exceeding a certain threshold. In contrast, NativeScript is open source and free to use, making it a cost-effective option for developers and businesses.

# Summary
In Summary, the key differences between NativeScript and Xamarin lie in their language and technology stack, UI components, tooling and ecosystem, performance and compilation, community support and documentation, as well as cost and licensing, ultimately influencing developers' choice for cross-platform mobile development.
Advice on NativeScript and Xamarin

Hello,

We're just brainstorming for the moment and we have a few questions.

We have an idea for an app that we want to develop, here are the prerequisites:

1) cross-platform (iOS, Android, and website);

2) as easy to maintain as possible / well documented / widely used;

3) Visual Studio Code and Copilot compatible;

4) Text to speech;

5) Speech recognition;

6) Running in background (screen off with TTS and speech recognition);

7) could be using TypeScript;

8) Monetized through ad and in-App payment for premium version;

9) Display on lock screen (Android only I guess)

So what would you recommend?

I've been trying to review the options available, and I've considered:

  • NativeScript

  • React Native

  • Flutter

  • Any other?

Thanks in advance for your help, and I'm open to any comments.

See more
Replies (2)
Gabriel Alao
Lead Developer at The Web Gurus LLC · | 2 upvotes · 13.2K views
Recommends

Use Flutter and Firebase as a backend service, Firebase also helps to speed up the development and rollout of the app. The cloud-hosted NoSQL database provides a real-time database that helps you store and synchronize data between the clients. This indeed makes it easier for you to access the data using any of the devices.

See more
Recommends
at

Hi there, for cross-platform functionality in terms of 3D assets if any, echo3D can help you with that. It's 3D asset management on the cloud so you can write your references to the objects and update them in the echo3D web browser. echo3D is not yet on this platform but it will be soon!

See more
Bhupendra Madhu
Web Developer at Ecombooks · | 8 upvotes · 701.3K views
Needs advice
on
FlutterFlutterReact NativeReact Native
and
XamarinXamarin

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 · 37.6K views
Recommends

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
Recommends

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 · 5.2K views
Recommends

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
on
PyQtPyQtReact NativeReact Native
and
XamarinXamarin

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)
Recommends
on
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’s 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 · 50.1K 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 · 56.9K 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
Manage your open source components, licenses, and vulnerabilities
Learn More