Xamarin is a cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET).
Xamarin allows to create native applications on iOS, Android and Windows Phone platforms. Its upside lies in the reuse of code, reducing the time to market.
Xamarin also provides its own development environment, Xamarin Studio.
With Xamarin, it’s important to grasp that applications are run natively. Every iOS or Android APIs are available from C# code. It’s true for push notifications, contacts integration, Bluetooth & etc.
With a C#-shared code base, developers can use Xamarin tools to write native Android, iOS, and Windows apps with native user interfaces and share code across multiple platforms.
The unique ability to create native iOS, Android, Mac and Windows apps in C# makes Xamarin a top contender in cross-platform development. If you’re an experienced .NET/C# developer, then you would definitely love to work with Xamarin in my opinion. Though it’s fully .NET, it’s great at creating true iOS and Android apps at the same time.
Some of the benefits of Xamarin for cross-platform mobile app development:
Powerful IDE –You can integrate it with modern integrated development environments (IDEs) –for example, Xamarin Studio and Microsoft Visual Studio.
High Quality Compiled Code – The code you will compile with Xamarin is both dynamic and high-performing. The best part is that the compiled code can access all native APIs fully, meaning you can create apps that deliver device-specific experiences across different mobile platforms.
Option to Keep Native UI – I know some developers would love this part. Xamarin gives you free to keep the native UIs across iOS, Android and Windows. This means you that you can preserve the application’s native performance and save time while sharing the code base and application logic, and extending the API coverage.
Can be integrated with different mobile SDKs – You can seamlessly integrate Xamarin with the SDK of individual mobile operating systems. This means, you can use the same code again and again, while still availing the native controls of different mobile devices.
Supports multiple devices – Xamarin supports different types of devices like mobile phones, tablets and wearable devices (e.g., Google Glass devices). You can create innovative apps by combining Xamarin Studio, and Android SDK and GDK.
Facilitates testing –Developers normally spend a lot of time in optimizing look, feel and performance of the app. To avoid it, you can use Xamarin Test Suite that will automatically test the mobile app on 1K real devices in the cloud.
Allows performance monitoring – You can use Xamarin Insight to keep track of exceptions and crashes, and improve the application’s performance.
Thanks to Xamarin, the .NET developers used to Visual Studio C# can create iOS (iPhone, iPad, Watch) or Android (Smartphone, tablet, wear) applications, and of course share code with the Microsoft ecosystem (Phone, Tablet). Therefore, you can choose Xamarin for a cross-platform development if your teams are already familiar with .NET. However, they won’t improvise themselves Android or iOS developers, and a considerable learning effort is still necessary to grasp each platform’s specificities.