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

Ionic

6.7K
6.1K
+ 1
1.7K
Xamarin

1.1K
1.3K
+ 1
775
Add tool

Ionic vs Xamarin: What are the differences?

Developers describe Ionic as "A beautiful front-end framework for developing cross-platform apps with web technologies like Angular and React". Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript. On the other hand, Xamarin is detailed as "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.

Ionic and Xamarin can be primarily classified as "Cross-Platform Mobile Development" tools.

Some of the features offered by Ionic are:

  • Performance obsessed
  • Utilizes Angular and React
  • Native focused

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.

"Allows for rapid prototyping", "Hybrid mobile" and "It's angularjs" are the key factors why developers consider Ionic; whereas "Power of c# on mobile devices", "Native apps with native ui controls" and "Native performance" are the primary reasons why Xamarin is favored.

Ionic is an open source tool with 38.4K GitHub stars and 13.1K GitHub forks. Here's a link to Ionic's open source repository on GitHub.

Sellsuki, Edify, and eTobb are some of the popular companies that use Ionic, whereas Xamarin is used by Rdio, Olo, and Rumble. Ionic has a broader approval, being mentioned in 392 company stacks & 350 developers stacks; compared to Xamarin, which is listed in 74 company stacks and 65 developer stacks.

Advice on Ionic and Xamarin
William Miller
Needs advice
on
Xamarin
React Native
and
PyQt

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 (1)
Recommends
React 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
Needs advice
on
React Native
Ionic
and
Flutter

Hi, we are an early startup (with an iPOC prototype) but need to get started on our MVP, and our tech developers in India recommended a hybrid, and they use Ionic, then we spoke with a software company in the US and he recommended Flutter or React Native. Any advice or input for us on the differences between these? Our app will need Bluetooth GPS for "near me" and social media sharing reviews capability, and also link on the backend with businesses. Thanks in advance for any help you can give!

See more
Replies (6)
Ahmad Khan
Recommends
Flutter

I would never recommend you to go with Ionic, Because of the User experience it provides is subpar. Flutter is most promising, Can be easily used to develop great user experience in no time. React native is also good, but it's phasing out in my opinion, while Ionic has already phased out. Flutter also provides great developer experience, resulting in fast and productive developers. I would have to press hard to think of a CON about flutter when recommending it for your needs.

See more
Dario Alves
Arquiteto de Software at Senior sistemas | 2 upvotes 路 144.7K views
Recommends
React Native

Maturity, Community, Facility, Libs React Native is the principal platform of mobile cross-platform development today, Flutter is it's a promise.

See more
Nicolas Kovacs
Recommends
Flutter

Even if React Native is older (I didn't say mature) you should go for Flutter, It's works really well and the developer experience is great (auto-completion, plugin etc). I spent years with React Native and now I am using Flutter and I don't regret It. Even if you have to learn a new language, It's pretty simple even more If you know some OOP, Java and Javascript ES6 syntax in some case. One other advantage is the facility to design app in Flutter, you have widgets for everything and you can adapt any design made by your designer. For example you can't make a simple custom box shadow with React-Native ...

See more
Recommends
Flutter

Flutter is built on DART which is written in GO. GO compiles to binary. Hence is faster than any java based framework. It provides superior performance and has a simplified UI process for designing apps.

See more
Kevin L眉cke
CTO at claimsforce GmbH | 1 upvotes 路 144.1K views
Recommends
Flutter

It depends also on your team skills. Flutter is fast to learn, fast to develop with and the performance is much better in comparison to React. If your team is already highly skilled in React Native it could be the better option - if not Flutter is my 100% recommendation. We rapidly prototype and deliver MVPs with Flutter since two years.

See more
Recommends
Ionic
at

I don鈥榯 have practical experience with flutter but between ionic and react native I鈥榙 say both a perfectly viable options and we have used both for a number of production apps. We normally go with ionic on capacitor because we build a lot of pwa/web apps so we can use the same code for all. We don鈥榯 use much of ionic elements, we do most styles on our own.

The comments that the user experience is bad I cannot agree with. A well designed and developed ionic apo can hardly be distinguished from a native app. But obviously that depends also on the usecase and type of app.

I hope this helps

See more
View all (6)
Alexis Poveda
Needs advice
on
Electron
Flutter
and
Ionic

Hi! I have to develop a software solution for a youth church group, for my graduation project. In the first meeting that I have with the coordinators, they did not have a clear idea of what they want. The biggest problem they have is the attendance control, they do it manually and that causes errors.

I was thinking of developing an Android app in Android Studio because that is the tool I master, but a friend told me that I consider using a tool that builds for iOS, Android and web. I have like 6 months. I own a MacBookAir but I do not know Swift (for iOS). I am familiar with MySQL, PHP, Apache, JSP,HTML,CSS.

Summary: What tool can I use that is easy to learn and easy to scale?

See more
Replies (5)
Recommends
Ionic

It's probably not relevant anymore, but I think Ionic with Angular as the frontend is the right choice. For IDE I would choose Visual Studio Code. You can just create a basic web application with responsive design, which is already included if you are going to use Ionic components with Material Design to create your app. You don't need to know Swift, you don't even have to create mobile apps, just create a responsive (Ionic already is) web app, or PWA. Upon browsing your website from a mobile device for example using google chrome, you will be prompted to create a shortcut of the website in your mobile phone. After you do this, there will be an icon in your phone that looks like an icon to launch an app, it will launch your website in full screen mode - for the user's perspective it will look like he is using a native app. Access https://ionicframework.com/docs/angular/pwa from your android chrome browser, go to tab options (3 vertical dots), click on Add to Home screen. When you launch the website from the shortcut, you'll see that it behaves and looks like a native app.

See more
Recommends
Ionic

I think you should chose between Flutter and Ionic. With those two options, the main question is about graphs and performance. Are they really important for your application? If the answer is yes, your tool is Flutter but, if the answer is that you need an easy tool to create an app with some basic components I would choose Ionic. You have a library with lots of components that you can use and they have native UI by default (for Android and iOS).

You will find more support if you use Ionic with Angular as frontend framework (you have the option to use Vue or React but this is a new feature for Ionic and I think there are more difficult to learn than Angular).

You can develop and debug the majority of features on PC (I don't know if that is possible with Flutter). And when you will finish the app, create iOS and Android versions is simple.

See more
Recommends
Flutter

Flutter is easy to use and easy to understand. Once you have completed the android platform, you can easily build it to ios, Web or desktop on a single code base.

See more
Carlos Esteban Lopez Jaramillo
Recommends
Ionic
  1. Electron is for desktop apps, so not useful for you.
  2. Flutter has better performance, but Ionic is decent as well, I would use Ionic unless you're making a game or graphic-intensive app.
  3. Ionic is more flexible since you have the whole NPM ecosystem available, while flutter is more recent, thus libraries for it are less in quantity and battle-tested than the ones in NPM.
  4. Ionic 4 introduced CSS variables, which improved immensely the theming process for the app, which was the hardest issue Ionic development had.
  5. Ionic has extended to many frameworks so it's compatible with Angular and React frameworks, meaning more flexibility, personally I would recommend Ionic with Angular over React since it's more suited to enterprise-level apps.
See more
Alejandro Ulate Fallas
Mobile Developer at Build SRL | 2 upvotes 路 91.3K views
Recommends
Ionic

Hi there. So Electron embeds everything in a webview, which means that what you would have to develop would be a Node project most probably. Ionic does the same (kindof but won't bore you with specifics) but it does it much more efficiently. Usually you do Ionic apps with JS frameworks like Angular or React (this one recently added). Flutter on the other hand does native apps, it does it really good but it's support for Web is in beta and it's relatively simple to setup if you already know the SDK and the environment.

My recommendation would be that you do your app using Angular/Ionic if you reaaally need the multi-platform environment and there's different reasons in this case:

  • Since it's a graduation project you need it to be as simple as it can be and adding a new technology adds to the learning curve.
  • Flutter is great if you have different complex UI or if you have specific performance needs that require native support and in your case it does not seem like you need that.
  • Flutter is also an incredibly powerful tool but it's learning curve might be tricky if you have not developed native apps before so I wouldn't recommend you start off like this if you have time sensitive projects like a graduation project. It does have great docs and an awesome community but I'd suggest you stick as close to what you know as you can.
  • Ionic/Angular uses Typescript (a type javascript wrapper) and Angular (JS framework) so you will have to learn a little bit but if you already know HTML, CSS and Javascript you won't have that much of a hard time. Also there's quite a lot in terms of documentation and tooling already tested around this combination.
  • Ionic/Angular has a really good CLI that helps you stick to the architecture they recommend so you wouldn't have to worry about it that much.
  • Ionic/Angular helps you test either locally in the web browser as well as your devices which is in the end what you want if you are looking for a multi-platform system. Flutter also does this but is not quite in a stable state (yet!).

Anyway, in the end, if you go for the multi-platform suggestion I think, because of time you would be better off with Ionic. If you decide that you don't need that as of right now (which is fine as well) you can start with just the Android app and plan on the different things you might eventually need like a website or other different stuff. Cheers!

See more
View all (5)
Decisions about Ionic and Xamarin
Pierre Canthelou
Lead Developper Frontend/Mobile at WinMinute | 5 upvotes 路 18.6K views

I've made 6 professional/business applications with React Native before choosing Flutter/Dart for the new version of WinMinuteConso (historical in Ionic...). Multi Platform is far more stable, Dart is far more powerful, the whole process is really better... It is just hard to find the proper software architecture...

See more
Thuan Nguyen
FE Lead at SOLID ENGINEER | 5 upvotes 路 255.6K views
  • Javascripts is the most populated language in the world.
  • Easy to learn & deployed production
  • Fast development
  • Strong community
  • Completed Documents
  • Native performance with lower RAM used.
  • Easy to handle native issues by using native code like Java / Objective C
  • Powered by Facebook.
See more
awesomebanana2018
Chose
Flutter
over
Ionic

While with Ionic it is possible to make mobile applications with only web technologies, Flutter is more performant and is easy to use if you are willing to learn Dart, which is a fun language. Plus, it has awesome documentation and, while its ecosystem isn't near as big as JavaScript's is, it has a good package manager called Pub and its packages are generally high quality.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Ionic
Pros of Xamarin
  • 246
    Allows for rapid prototyping
  • 226
    Hybrid mobile
  • 208
    It's angularjs
  • 184
    Free
  • 178
    It's javascript, html, and css
  • 108
    Ui and theming
  • 76
    Great designs
  • 74
    Mv* pattern
  • 70
    Reuse frontend devs on mobile
  • 64
    Extensibility
  • 31
    Great community
  • 28
    Open source
  • 22
    Responsive design
  • 20
    Good cli
  • 13
    Angularjs-based
  • 13
    Beautifully designed
  • 13
    So easy to use
  • 12
    Widgets
  • 11
    Allows for rapid prototyping, hybrid mobile
  • 11
    Typescript
  • 10
    Quick prototyping, amazing community
  • 10
    Easy setup
  • 8
    Angular2 support
  • 7
    Fast, easy, free
  • 7
    Because of the productivity and easy for development
  • 7
    So much thought behind what developers actually need
  • 7
    Base on angular
  • 6
    Super fast, their dev team is amazingly passionate
  • 6
    Easy to use
  • 6
    It's Angular
  • 4
    UI is awesome
  • 4
    Hot deploy
  • 3
    Material design support using theme
  • 3
    Amazing support
  • 3
    It's the future
  • 3
    Angular
  • 3
    Allow for rapid prototyping
  • 3
    Easy setup, development and testing
  • 3
    Ionic creator
  • 2
    User Friendly
  • 2
    It's angular js
  • 2
    Complete package
  • 2
    Simple & Fast
  • 2
    Fastest growing mobile app framework
  • 2
    Best Support and Community
  • 2
    Material Design By Default
  • 2
    Cross platform
  • 2
    Documentation
  • 2
    Because I can use my existing web devloper skills
  • 2
    Removes 300ms delay in mobile browsers
  • 1
    1
  • 1
    Native access
  • 1
    Typescript support
  • 1
    Ionic conect codeigniter
  • 1
    Fast Prototyping
  • 1
    All Trending Stack
  • 120
    Power of c# on mobile devices
  • 80
    Native performance
  • 77
    Native apps with native ui controls
  • 71
    No javascript - truely compiled code
  • 67
    Sharing more than 90% of code over all platforms
  • 45
    Ability to leverage visual studio
  • 44
    Many great c# libraries
  • 43
    Mvvm pattern
  • 36
    Amazing support
  • 34
    Powerful platform for .net developers
  • 19
    GUI Native look and Feel
  • 15
    Nuget package manager
  • 11
    Free
  • 9
    Enables code reuse on server
  • 9
    Backed by Microsoft
  • 8
    Faster Development
  • 7
    Easy Debug and Trace
  • 7
    Use of third-party .NET libraries
  • 7
    Best performance than other cross-platform
  • 7
    It's free since Apr 2016
  • 7
    Open Source
  • 6
    Xamarin.forms is the best, it's amazing
  • 6
    Mac IDE (Xamarin Studio)
  • 5
    Power of C#, no javascript, visual studio
  • 5
    C# mult paradigm language
  • 4
    That just work for every scenario
  • 4
    Microsoft backed
  • 4
    Microsoft stack
  • 4
    Great docs
  • 4
    Compatible to develop Hybrid apps
  • 3
    Well Designed
  • 3
    Small learning curve for Mobile developers
  • 2
    Ability to leverage legacy C and C++
  • 2
    Ionic

Sign up to add or upvote prosMake informed product decisions

Cons of Ionic
Cons of Xamarin
  • 20
    Not suitable for high performance or UI intensive apps
  • 15
    Not meant for game development
  • 2
    Not a native app
  • 8
    Build times
  • 4
    Visual Studio
  • 3
    Complexity
  • 3
    Price
  • 3
    Scalability
  • 2
    Nuget
  • 2
    Build Tools
  • 2
    Maturity
  • 2
    Support
  • 0
    Maturidade
  • 0
    Performance

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Ionic?

Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.

What is Xamarin?

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.

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

What companies use Ionic?
What companies use Xamarin?
See which teams inside your own company are using Ionic or Xamarin.
Sign up for Private StackShareLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Ionic?
What tools integrate with Xamarin?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Ionic and Xamarin?
PhoneGap
PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status.
NativeScript
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.
React Native
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
Flutter
Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.
VoltBuilder
It is a SaaS to make Android and iOS native apps from Single Page Apps.is designed to be a modern implementation of PhoneGap Build.
See all alternatives
Reviews of Ionic and Xamarin
Review of
Xamarin

I'm working in Huge company and I'm in charge to choose the cross-platform environment to develop Mobile application for all our services. I choose Xamarin but because the error i get everytime in Visual Studio, I want to leave it and recommand another solution. In fact that's why I'm here.

Weird, Install VS2017 with Xamarin on a new PC Create a new app GOT ERRORS.....!!!!!

Thank you for considering this

Review of
Ionic

great framework,lots of resources,great community,easy to create UI

How developers use Ionic and Xamarin
Foundbite uses
Xamarin

Xamarin enables us to develop for 3 platforms (iOS, Android and Windows Phone) with one core codebase coded in C#. Xamarin has allowed us to release an app on all three platforms and develop them simultaneously - not bad for a team of 2!

Pascal Malbranche uses
Ionic

We use Ionic as it is an awesome framework to build mobile hybrid apps with nativ access. Also Ionic has a nice community!

Ana Phi Sancho uses
Xamarin

Self taught : acquired knowledge or skill on one's own initiative. Platform: OSX 10.8 or later. Mac computer user.

Christian Bryant uses
Ionic

Cross-Platform goodness. I am a noob here...learning how to implement Ionic is on the top of my ToDo's

Robert Brown uses
Xamarin

Build & ship OS X & iOS apps from Visual Studio on Windows. Requires paid team license.

papaver uses
Ionic

used on a recent project, an internal custom app developed for both ios and android.

Grupo Gamma Peninsular, SA de CV uses
Ionic

Desarrollo de aplicaciones multi-plataforma con HTML5, JavaScript y CSS3

Daniel Kovacs uses
Xamarin

Mobile app development with PCL and Xamarin.iOS and Xamarin.Android.

AmericanBibleSociety uses
Ionic

We have plans to employ this frontend framework in future apps.

Olo uses
Xamarin

Cross platform, white labelled native mobile apps