Xamarin

Xamarin is a cross-platform development platform that allows developers to write mobile applications in C#, and run them on major mobile platforms (Android and iOS). In February 2016, Xamarin was acquired by Microsoft, which means that Xamarin is now integrated with Microsoft’s developer tools and services. Alongside this, Xamarin SDK also became open source.

Advantages

  • Xamarin eliminates the need of managing different teams for specific platforms
  • Shared app logic – the app logic is shared across multiple platforms. This makes Xamarin a must-use cross-platform development tool
  • API integration – binds the same APIs and UI controls that are used to build iOS, Android and Mac apps in their respective platform specific languages
  • Xamarin component store – developers have the possibility to choose from a host of free or paid components, including UI controls, third party web services and cross-platforms with just a few lines of code

Disadvantages

  • Limited Dynamic Language Support – Android callable wrappers are needed anytime the Android runtime needs to invoke managed code
  • Limited Java Generation Support – by default, Android callable wrappers will only contain declared constructors and methods which override a virtual Java method, or implement a Java interface method
  • Limited sharing of code outside of Xamarin – Xamarin doesn’t allow the creating of reusable components or modules outside of its own environment
  • Non portable .NET libraries – some companies that offer .NET libraries for interfacing with their APIs, do not offer yet PCL versions, or do not have PCL versions that support Xamarin iOS or Xamarin Android

Components

  • Cloud Services
  • Libraries
  • User Interface
  • Plugins
  • Themes

Development tools

  • Xamarin studio
  • Microsoft Visual Studio