Okay. But 'share code' sounds like code written with Xamarin can be simply recompiled for multiple platforms to produce complete running apps from a single code base. I'm guessing that's not the case
Actually in a fair number of situations that is exactly the case - including the GUI bits. For non-trivial business / news / info apps you can get well over 90% of your code straight compiled with no changes and often you can push that very close to 100%.
On the other hand, you still retain full access to the underlying OS API and of course for games or apps that want to perform UI tricks and interact with specific hardware features then you will simply isolate that bit of specific code for each device OS.
it is really good stuff.