Xamarin comes as a better solution for mobile cross platform development, not just because the code sharing, but it delivers high performance compiled code with full access to all the native API, allowing creation of native apps with device-specific experiences. Anything one can do in Objective-C or Java, can be done in C# with Xamarin
However, using only Xamarin.iOS and/or Xamarin.Android, the most that can be shared is business logic and application code, while UI still needs to be written separately for each platform. But with Xamarin.Forms, the UI code can be shared as well across all three major platforms, making the cross development process more productive. Also, Xamarin.Forms supports XAML for UI definition, data binding and commands as first class features – making MVVM an adequate programming model.
Come for a session of fun building a cross mobile app with your favorite tools and language (Visual Studio and C#), with 100% shared code between all 3 platforms!