Xamarin provides a developer with tools that can help them in building cross-platform mobile applications.
The applications can have all the native features and also share the common codebase at the same time. As per Xamarin stats, more than 15000 companies rely on their tools and the list includes many big names out there.
Xamarin tools are available to download with Visual Studio and you can directly create Android, iOS and Windows apps from Visual Studio itself.
Founded in 2011, Acquired by Microsoft.
Written in Objective-C or Java.
- 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.
- 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.
- 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.
- 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.
- Open Source Technology with Strong Corporate Support :After the company was acquired by Microsoft in February 2016, Xamarin licensing policies underwent radical changes. Xamarin SDK, including runtime, libraries, and command line tools, has become open source and available for all under the MIT license as a part of Visual Studio.
- Simplified Maintenance: Due to its cross-platform application, Xamarin makes maintenance and updates easier. You can simply deploy the changes or updates to the source file and they will be applied to both iOS and Android apps.
- Building apps for Macs with Xamarin.Mac Tool :Xamarin.Mac allows for developing fully native Mac apps using C# and .NET. It integrates with the same libraries that are used for developing in Objective-C with Xcode.
- Xamarin.Forms is extensible and lets you incorporate platform-specific features using effects, custom renderers, the Dependency Service, the Messaging Center, and more.
- Xamarin.iOS allows us to develop IOS applications using the same UI controls that are available for other platform apps, except with the flexibility and elegance of a modern language (C#).
- Use for testing of Xamarin code on a various virtual mobile platform.
- Xamarin Test Cloud is used to test the application on the various virtual platform, a cloud-based solution that provides tools which support automated UI Acceptance Testing of mobile applications across hundreds of different devices. it’s cloud-based, the maintenance and procurement efforts are removed from the test consumer.
- In a complex and rapidly evolving mobile device market, using Xamarin for mobile development makes it possible to create, test and monitor apps that can work on shared code and a reusable architecture.
- Android: This guide describes how to implement Material Design by updating existing Xamarin.Forms Android apps.
iOS:Some iOS styling can be performed via Info.plist and the UI Appearance API. This guide includes examples of how to include iOS 9 features into the iOS app of a Xamarin.Forms solution, including Core Spotlight search.
GTK:Xamarin.Forms now has preview support for GTK# apps.
Mac:Xamarin.Forms now has preview support for macOS apps.
Native Forms: Native Forms allow Xamarin.Forms Content Page-derived pages to be consumed by native Xamarin.iOS, Xamarin.Android, and Universal Windows Platform (UWP) projects.
Plugins: There are a wide variety of open-source plug-ins available on Github, Nuget, and the Xamarin Component Store to help extend Xamarin.Forms apps.
Tizen: Tizen .NET enables you to build .NET applications with Xamarin.Forms and the Tizen .NET framework.
Windows: Xamarin.Forms has support for the Universal Windows Platform (UWP) on Windows 10. This article describes how to add a UWP project to an existing Xamarin.Forms solution.