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 from our years of enterprise mobility consulting, 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:
Source: Kevin Ford, Mobile Practice Lead at Magenic
[bctt tweet=”@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.” username=”smartbridgellc”]
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.
Ionic and Xamarin offer their own specific drag and drop tools for creating UI, such as Ionic’s Creator and Xamarin’s Designer for iOS and Android. However, there are somethings to note: