Email: sales@altexsoft.com

Phone : +1 (877) 777-9097

Request for Proposal
black and white paint

The Good and The Bad of Xamarin Mobile Development

It’s impossible to ignore Xamarin when talking about the key approaches to mobile application development. Being a comparatively new tool, it is based on the Microsoft technology stack and already has a community of over 1.4 million developers.

Technically speaking, Xamarin uses C# and native libraries wrapped in the .Net layer for cross-platform app development. Such applications are often compared to native for both iOS and Android mobile development platforms in terms of performance and user experience.

xamarin platform

However, it is no panacea. There is still a heated discussion going on about Xamarin vs native app development. Yet, any technology has its own benefits and drawbacks. To make an informed decision about your technology choice, let’s weigh all the pros and cons of Xamarin app development.

Pros of Using Xamarin for Development

There are good reasons why Xamarin is used by numerous companies, including Trello, Slack and GitHub.

⊕ One Technology Stack to Code for All Platforms

Xamarin uses C# complemented with .Net framework to create apps for any mobile platform. Thus, you can reuse up to 96 percent of the source code speeding up the engineering cycle. Xamarin also does not require switching between the development environments as it works with both Xamarin IDE (for Mac) or Visual Studio (for Windows). Although many developers argued about the quality of support provided by both IDEs, Xamarin Visual Studio integration has been largely improved since the company’s acquisition by Microsoft. The cross-platform development tools are provided as a built-in part of the IDE at no additional cost.

⊕ Performance Close to Native

Unlike traditional hybrid solutions, based on the web technologies, a cross-platform app built with Xamarin, can still be classified as native. The performance metrics are comparable to those of Java for Android (as explained here) and Objective-C or Swift for native iOS app development. Moreover, the efficiency is constantly being improved to fully match the standards of native development. Xamarin platform offers a complete solution for testing and tracking the app’s performance. Its’ Xamarin Test Cloud paired with Xamarin Test Recorder tool allow you to run automated UI tests and identify performance issues before the release. However, this service is provided at an additional fee.

⊕ Native User Experiences

Xamarin allows you to create flawless experiences using platform-specific UI elements. Simple cross-platform apps for iOS, Android or Windows are built using Xamarin.Forms tool, which converts app UI components into the platform-specific interface elements at runtime. As the use of Xamarin.Forms significantly increases the speed of app development, it is a great option for business-oriented projects. Yet, there might be a slight decline in performance due to the extra abstraction layer. For custom app UI and higher performance you can still use Xamarin.iOS and Xamarin.Android separately to ensure excellent results.

⊕ Full Hardware Support

With Xamarin, your solution gets native-level app functionality. It eliminates all hardware compatibility issues, using plugins and specific APIs, to work with common devices functionality across the platforms. Along with the access to platform-specific APIs, Xamarin supports linking with native libraries. This allows for better customization and native-level functionality with little overhead.

Xamarin Cons to Consider

However, there are still some drawbacks that can cast a shadow upon Xamarin.

Θ Expensive Xamarin License

Business subscription comes at the annual fee of $999 per developer, per device platform, which might seem a little too high if you plan to create only one small app. For example, it will cost you almost $10,000 annually to run a team of five engineers, each building apps for iOS and Android.  However, if you are going to build other cross-platform mobile solutions in the future or provide Xamarin app development services, Xamarin license would be a good investment compared to the development cost of native apps.

UPDATE: Since its acquisition by Microsoft, Xamarin has significantly changed its pricing policy. It is currently being provided at no cost for all Visual Studio users and will soon be completely open-sourced. Thus, this disadvantage is no longer valid.

Θ Slightly Delayed Support for the Latest Platform Updates

This depends completely on the Xamarin developer team. It’s impossible for third-party tools to provide the immediate support for the latest iOS and Android releases: it takes some time to implement the changes and/or introduce new plugins, etc. Although Xamarin claims to provide same-day support, there still might be some delays.

Θ Limited Access to Open Source Libraries

Native development makes extensive use of open source technologies. With Xamarin, you have to use only the components provided by the platform and some .Net open source resources, facing both developers and consumers. While the choice is not quite as rich as it is for Android and iOS mobile app development, the Xamarin Components provide thousands of custom UI controls, various charts, graphs, themes, and other powerful features that can be added to an app in just a few clicks. This includes built-in payment processing (such as Stripe), Beacons and wearables integration, out of the box push notification services, cloud storage solutions, multimedia streaming capabilities and much more.

Θ Xamarin Ecosystem Problems

Obviously, Xamarin community is significantly smaller than those of iOS or Android. Thus, finding an experienced Xamarin developer could be a challenge. Although the platform is growing its following fueled by the support from Microsoft. Based on the info from different sources, Xamarin community makes 10 percent of the global mobile development society. Despite the fact that the number of Xamarin engineers does not compare to iOS or Android native communities, the platform provides extensive support to its developers. Namely, there is a dedicated educational platform, Xamarin University, that provides resources and practical training for those who are new to this technology. Using this support, the learning curve for an experienced C#/.Net engineer is minimal.

Considering Other Options: Xamarin vs Native iOS/Android vs Hybrid Development

Recently, many developers tend to agree that Xamarin can be considered “native” development tool. Indeed, there is an opinion that “anything that can be done in an iOS application using Objective-C or Swift, and anything that can be done in an Android app using Java, can be done in C# using Xamarin.”

Yet, there are many pitfalls in native vs Xamarin debate. Let’s see how the Xamarin compares to the native development tools and hybrid development platforms (Ionic, PhoneGap/Cordova).

xamarin vs native vs hybrid comparison

Although hybrid mobile development tools are evolving quickly, they still lack the performance and native capabilities that Xamarin offers at roughly the same cost. When considering the two approaches, the most popular dilemma is Xamarin vs Ionic or Xamarin vs React native. However, the latter tends to lose due to a number of restrictions in the underlying technologies (web stack).

Yet, there is a JavaScript-based mobile development tool that outperforms hybrid solutions, at least in terms of UI. It’s NativeScript. This cross-platform open source framework, backed by Telerik, allows you to implement native UI and connect to native APIs for better mobile experience while using a single code base. Its main difference is that it uses XML markup, which compiles into Android and iOS native equivalents, instead of HTML webview.

This approach fills the gap between native and hybrid development, similar to the way Xamarin does. The main difference between the two tools lies in the programming languages they use. So Xamarin vs NativeScript comparison should be a subject of a more detailed research.

At the same time, Xamarin vs native Android/iOS development debate seems to be even more complicated: Both options prove to deliver value in terms of product quality and performance, the choice typically depends on the type of application you want to build.

Piece of Advice

When comparing the pros and cons, the listed drawbacks are usually considered to be a collateral damage. Most business owners choose Xamarin mobile app development platform as it decreases the time to market and engineering cost, by sharing the code and using a single technology stack. Yet the purpose of the app and its target audience might be an even more important factor to consider.

Based on our team’s experience, the best use-case for Xamarin is enterprise mobile solutions. With standard UI which covers 90 percent of the projects, all the core product logic can be easily shared across the platforms. Hence, platform customization will only take 5-10 percent of the engineering effort.

In case of consumer-facing apps with heavy UI, the amount of shared code decreases drastically. Thus, Xamarin cross-platform development loses its major benefit and might equal in time and cost to native solutions.

However, if you are looking for a Xamarin alternative to build a cross-platform mobile app, you might be disappointed. While the most widely used cross-platform mobile development tools are PhoneGap/Apache Cordova, Ionic Framework, Appcelerator/Titanium, they rely primarily on web technologies, such as HTM5 or JavaScript. That is why none of these tools can have the same level of performance and native functionality that Xamarin offers.

To read more about mobile app development tools and technologies, download our recent whitepaper “Pros & Cons of Native vs Cross-Platform Mobile Development with Xamarin“ here.

 

This article is a part of our “The Good and the Bad” series. If you are interested in web development, take a look at our blog post on the pros and cons of full stack JavaScript.

6 Comments

Comments

Leave a Reply


Sort by:   newest | oldest | most voted
Guest
3 days 6 hours ago

For the mobile development xamarin is the key and used a lot now days. So for us the pros are very much effective and very well described here.

Guest
Jan
12 days 19 hours ago

The Xamarin part is only theory. From my experience, Xamarin is only good if you prefer c# over java/swift/objc. The time saved on the single code base (and much more) will be spent on fighting Xamarin tools/frameworks and fixing bugs/creating workarounds that do not exist in the native development. I will write my experience to the points in the table. TECH STACK Xamarin tech stack is what you can make work from the .NET and nuget packages. Some of them works some not, definitely not the whole .NET and it also depends on the platform you develop for. CODE SHARING… Read more »

AltexSoft
Member
AltexSoft
12 days 7 hours ago

Thanks for your insight, Jan. We appreciate you complementing our post with the details of your experience with Xamarin. Many of your points, such as time spent debugging, the convenience of using Google/Apple tutorials and observation on low performance are definitely very valuable when it comes to native vs cross-platform discourse.

wpDiscuz