Xamarin became popular because it brought C# (a programming language) to Android, iOS and Windows Phone apps, allowing developers to use their existing coding knowledge for mobile app development.
It meant that if you used C#, you had a head start at building mobile apps, rather than having to learn completely new skills for mobile development, having previously only worked in web.
And here is where the main USP of Xamarin comes in:
Developers can share code between iOS, Android and Windows Phone while still producing native apps
Let's break those two things down.
Sharing code across platforms means that you could share some code between iOS, Android and Windows, rather than having to rewrite 100% new code if you wanted an app that worked on more than one operating system.
The most important thing about Xamarin, and that thing that differs from its closest alternatives, is that the final product is the same as if we would use the native language.
So for example, a photography app being used on an iPhone should ideally be using code meant for an iPhone, not something written for Android. In this instance, Xamarin offers the opportunity to share some of the general logic behind the photography app, without recycling the unsuitable Android code, which would need to be rewritten.
So Xamarin doesn't require you to write generic code that detracts from a specific device, it instead shares the code where possible, but not always.
Crucially, you retain access to all the native features. Anything you can do while creating an iOS app with Swift (the development language used for Apple) you can also do in Xamarin.
The big surprise
Earlier this year Xamarin was bought by Microsoft for a reported $400million. After the acquisition was announced, there was more news at the Build 2016 keynote (a developer conference): Xamarin would be integrated into Visual Studio.
This was extremely exciting news for developers. It meant you no longer needed to pay for accounts to use Xamarin (which was per platform you were developing for). As long as you already used Visual Studio, Xamarin was included (some versions of Xamarin can be used without needing Visual Studio, too). So those without any funds could still use it, and companies were able to save on outgoings.
Is Xamarin an easier choice for development?
Xamarin isn't necessarily any easier or better, but it offers benefits for cross-platform development. This has the potential to save on coding time, enabling developers to pass cost savings to clients.
My developer wants to use Xamarin for my app, am I OK to approve this?
Xamarin has proved a successful piece of software due the benefits outlined above and is certainly a reputable choice.
Ask your developer why they have chosen it for your specific app, and they should be able to explain without technical jargon, to give you peace of mind.
Are there alternatives to Xamarin?
Every app spec is different, and it's too simplistic to say that all cross-platform apps should be made using Xamarin. Alternatives include PhoneGap and Ionic, though neither of these offers the same features as Xamarin.
Xamarin is not necessarily any 'better' than anything else. As Xamarin developers ourselves, we don't automatically use it. It depends on the circumstances. In particular, if you are developing only an iOS app, or only an Android app, the cross-platform aspect of Xamarin may not be relevant.
Also, if a developer is experienced in both iOS and Android development, they may be able to code those two separately in just as quick or quicker time that it would take to do the same in Xamarin.