Deciding between mobile application frameworks that meet multi-platform functionality needs can be a daunting task for any individual or company. There are two distinct options to consider: Hybrid HTML and Cross-Platform Native. Though there are many frameworks for Hybrid HTML and Cross-Platform Native applications, this article will focus on two prominent frameworks, Ionic and Xamarin.
What are Hybrid HTML and Cross-Platform Native?
Cross-Platform Native frameworks use one programming language across multiple platforms to develop and compile straight into an intermediate language.
Based on these definitions, we can now begin to understand why Ionic, being Hybrid HTML, and Xamarin, being a Cross-Platform Native, perform, look and feel the way they do. Some questions to take into consideration while thinking about choosing between Ionic or Xamarin are:
How much time are you allotting to the development of this mobile application?
What is your budget like?
What kind of user experience are you seeking?
The aim of this article is to help you understand key differences between Ionic and Xamarin so that you can make an informed decision between them. Given my experience working with both, I will provide my conclusions and in-depth research. The four factors that we will consider are cost, quality, development and maintainability.
Cost Comparisons of Ionic and Xamarin
As Ionic is open source, its price tag of $0 is quite promising. Likewise, depending on whether or not you’re looking to scale your app in terms of push notifications and deploying to a growing number of devices, you could benefit from the power of Ionic Cloud Services. Ionic Cloud Services offer free push notifications and deployments to devices at a cap of 1,000,000 and 100,000 respectively. Afterwards you will start out with a $20 monthly fee on top of costs for additional push notifications and deployments. For many startups and companies those prices are a steal. Click here for cost details.
Xamarin, now owned by Microsoft, is free with Xamarin Studio (Mac) and Visual Studio Community Edition (Windows) and additional features are available with the paid version of Visual Studio. Depending on what you are trying to accomplish, this may or may not be justified. Something to consider will be the learning curve if your team does not have .NET developers or background. There is a considerable amount of free training which is being authored at a rapid pace. If you want something a little more structured and desire to be Xamarin Certified Mobile Developer then you will be interested in the Xamarin University program. It’s $83.25 per month and grants you access to both live and offline training materials.
Quality Comparisons of Ionic and Xamarin
Considering that the Ionic platform uses web technologies to produce a hybrid application, it will only offer an average user experience and pale in comparison to Xamarin apps. Xamarin will offer the closest experience to native applications and will be the tool of choice if you’re looking to compete with other applications on the market. Below are analytics that highlight the performances of Hybrid HTML mobile apps versus Cross-Platform Native apps:
Cross-Platform Native apps loaded 25% faster than Hybrid apps (even for Hybrid HTML apps that were actually smaller in size than their Cross-Platform Native app contenders)
Cross-Platform Native apps loaded large datasets 62% faster than Hybrid HTML apps
Cross-Platform Native apps use on average 50% less memory than Hybrid HTML apps
Cross-Platform Native apps use on average 76% less CPU than Hybrids HTML apps
Cross-Platform Native apps can perform 22x faster than Hybrid HTML apps for CPU-intensive tasks
Source: Kevin Ford, Mobile Practice Lead at Magenic@XamarinHQ will offer the closest experience to native applications and will be the tool of choice if you’re looking to compete with other applications on the market. Click To Tweet
Development Ease of Ionic and Xamarin
Developing for any application takes precious time. Ionic and Xamarin are no exception to this fundamental understanding, and both have their own strengths and weaknesses in terms of development.
While you can run Ionic within the Ripple Emulator with little to no recompilation for changes, you will still need to recompile if you wish to test specific Cordova APIs or native device capabilities. Xamarin will have to recompile regardless of what you wish to test and debug, with the exception of UI. Within Visual Studio you can also utilize the built-in previewer that allows you to preview the XAML pages you’ve created. Ionic may prove to be just as time consuming, considering the known issues with memory leaks. There will also undoubtedly be issues that arise because of Ionic’s loosely-typed variables, which will only exacerbate debugging and consume more time in order to seek the underlying issues. Xamarin, on the other hand, uses strongly-typed variables and can prove invariably useful by compiling and realizing any issue before debugging even begins.
Xamarin’s Designer is platform specific and not cross platform (there is currently no cross platform designer)
Xamarin does provide XAML in order to provide cross platform UI development and functionality, but is markup driven and not drag and drop
Ionic’s Creator is web-based and not a native application, so an internet connection is required
Ionic’s Creator requires that a user account be created in order to be utilized
Ionic Creator allows the first project to be free, however, it is public by default (payment is required for projects to be made private – click here for more details)
One crucial piece to consider for maintainability would be the fact that Xamarin has a track record for providing APIs that tap into the newly released device features, and notably, on, or fairly close to, the release date. You might have to either sit tight and wait for the Ionic community to come up with an API, or perhaps go the brave route and write one yourself, which will consume time and money. While you can utilize Bower and NPM package management to keep your Ionic project in order, it won’t feel nearly as clean and organized as what Visual Studio and NuGet does for Xamarin. Using Ionic for anything larger than a simple or single-developer mobile application may prove cumbersome considering the plugins and third-party libraries that could potentially clutter you project.
So, who wins?
In the end, your choice will boil down to you and/or your company’s requirements, goals, and available resources. We’ve understood that there are pros and cons with both Hybrid HTML and Cross-Platform Native, and have classified what those are in terms of cost, quality, development and maintainability. Hopefully this article will have helped shed light on which direction to choose, and clarify any misunderstandings or questions that were lingering.