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