I'll throw in my 2 cents about Xamarin: I'm amazed at how well it really works. I'm involved in a project right now developing a mobile app for Android that uses a USB-connected sensor to do color analysis. It's all been done in C#, and it's so nice to know that when we want an iOS version of this, we just have to do the storyboarding. Once that part's done, the app will already be fully-tested and ready to go.
FYI, I highly recommend Stuart Lodge's MvvmCross for this: https://github.com/MvvmCross/MvvmCross
http://mvvmcross.wordpress.com/