Xamarin makes it possible to do native iOS, Android and Windows development in C#, with either Visual Studio or Xamarin Studio.
The easiest way to use Xamarin for a Visual Studio user is to integrate with Visual Studio, Microsoft's IDE for the .NET Framework, extending Visual Studio for iOS and Android development. By using Xamarin it means that C# code can be reused across all platforms making a standard code base. Re-use with a single library allows quicker and more rugged developments.
Taking part in a Xamarin development at Trimble for the new GNSS Status Application we were able to create Android, iPhone, and Window XAML / Windows CE applications utilizing the C# library code that Trimble had already created for other applications.
GNSS status was created on top of these C# libraries using a standard MVVM Cross pattern detailed here.
By using the MVVMCross libraries that utilize the MVVM Model, model code was shared but with separate views for each OS allowing each OS to have its own feel as required for that platform. That is, the Android application feel is that of Android, iPhone being that of Apple guidelines, and Microsoft application having the feel of a Microsoft App.
GNSS Status is internationalised using Vernacular. Vernacular is able to process strings directly from code to create internationalized files in the form of .Pot. These files are then submitted for translation and returned in a standard .Po form to feed back to Vernacular then output as resource files used for each platform.
Views of the Trimble GNSS Status applications: