Karol Oponowicz
Feb. 22, 2019, 6:27 p.m. | Mobile Development

Pros and Cons of Xamarin vs. Native Mobile Development

When you are planning a product development process that includes mobile applications, there's a wealth of information online about which platform is the best to use. It takes a lot of searching through the technical info and jargon to get to the bottom of it.

This is a problem that many startup founders and business decision makers face: they want to understand which mobile app development tools are the best and why first and foremost, without getting bogged down in the technicalities.

This is where we come in, with our simple guide as to the pros and cons of Xamarin compared with Native Mobile Development.

What is Xamarin?

Xamarin is a Microsoft owned tool that is used for mobile app development across different platforms. It is relatively new, but it allows mobile app engineers to share around 90% of the code across the leading platforms. You can have a web application that works in a browser on any device, an iOS and Android native apps all using the same code.

No wonder more than 1.4 million developers that use Xamarin tool, although it is a relatively new platform.

Ever since the mobile market's inception, the two standard languages for developing iOS and Android apps have been Kotlin and Objective-C. Xamarin works as a hybrid framework, which tries to unify the other technologies, improving the feature set and speed of applications. Miguel De Icaza founded Xamarin in 2011 but then purchased in 2016 by Microsoft. They have since made it into an open-source project to drive its adoption by developers. And it is gaining in its popularity although opinion on it is distinctly pretty-evenly divided according to the 2018 Sack Overflow Developer Survey. So, let’s have a look at its benefits and limitations.

Xamarin Pros

  • Xamarin uses a framework that means that its logic can be written in many computing languages. The most popular of these is C#. Given the fact that many people are skilled in C# already, there is are few language barriers for developers. This means that you can employ developer from a much wider-ranging field than if you used other platforms.
  • It saves time. Given the fact that Xamarin’s data access, network communication, and business logic is shared across different platforms, the time it takes to develop the apps are almost halved as the amount of work that can be duplicated to different platforms is large. It also means that maintaining apps is more comfortable too.
  • It's sponsored by a giant corporation. Microsoft owns Xamarin and since it's their strategic product they want the community of Xamarin users to grow. They provide much training and support for developers who want to use the framework for developing mobile apps. Microsoft is very much committed to Xamarin in the long term and is updating and increasing new features for each platform regularly.

The Cons of Xamarin

Every platform has its downsides. These can make or break decisions for some developers.

  • Despite most developers being confident in C#, there is still a bit of learning that needs to take place to get to grips with Xamarin. The developer should, therefore, have had native languages experience too so that they can understand the structuring of apps, which seems contradictory given that Xamarin’s purpose is to work against this. This, therefore, restricts the number of app developers that will be able to work on your projects.
  • Microsoft has tried its best. However, there is still a bit of a lag between the Xamarin update and the new versions of iOS and Android. Additionally, there is also limited access to all of the libraries that developers of the native platforms have access too. Popular, larger plugins have already been translated or have equivalents. But, if what you’re after is a bit more ground-breaking or niche, then you’ll probably have to think again.
  • Even though Xamarin prides itself on being cross-platform, there are still some drawbacks, mainly if you're looking for something unique in terms of visual impact as is often the way with apps at an enterprise level. As a result, you may still have to create separate layouts for each of the platforms. Again, this requires the developers to know native platforms too, which is what using Xamarin is trying to avoid. So, it’s not really as “cross-platform” as it sometimes claims.
  • Lastly, the Xamarin apps are larger, due to their underlying frameworks when you compare them to the native versions. Even a simple app can weigh more than 15Mb, and that’s before adding business logic or associated libraries. A significant barrier to those downloading apps is quite often their size, so a larger app may not end up being downloading all that often.

Xamarin has made progress with all of its downsides in what has been a short period since it was created. Indeed, Pinterest and Siemens are amongst its customers. It could still have its day and become the standard in the hybrid app market. But, you should most definitely consider its faults too and whether they would compromise your final product.

The difference between native and Xamarin

As we’ve mentioned it, let’s have a look at Native and how it differs from Xamarin. The thing with Native is that its performance is second to none. It has high capabilities in terms of hardware, and you can create unique content easily. The downside is that different coding is needed for each different platform (for example, Android or iOS), which adds time and therefore money too. Perhaps the easiest way to compare the two is a table:

Native

Xamarin

Technology/Language

Different Tech Sacks are needed for different platforms

Only one stack and the single codebase is required (.Net, C#, and native libraries)

Sharing of Code

No, code bases are all different

Around 90% between platforms

User Interface (UI)

Platform-specific user interface

Customization is possible on each separate platform

Performance

Excellent

Very Good

Time to Market

Slower due to customization of different platforms.

Fairly fast thanks to shared code and limited customization.

Of course, each app creation tool has its pros and cons, and it depends on what you want your app's capabilities to be. Technology companies are continually striving to improve their programming platforms, which can only be a good thing for those of us who are looking to create and develop mobile applications.

Xamarin certainly has its place in the market and is certainly holding its own amongst its competitors.

Looking for a company specializing in Xamarin?
Estimate your project
Show more