I need to write an app for both iOS and Android (and possibly Windows and Mac OS X in the future) and was wondering how you guys go about code sharing between platforms? I was thinking about writing the core of the app in standard C++ (probably will make use of all the new features in C++11 and C++14) and then just adding a small amount of platform specific code for the user interface and go from there. Does that sound reasonable? Alternatively I was thinking of using Xamarin for the app and developing everything in C#. I've never used Xamarin before though so I'm not sure how good it is. Does anyone have any experience with it at all? Any hints at all from people who have done this cross platform coding before? I have an awful lot to learn in a small amount of time. The last time I did any iOS programming was when iOS was at version 3 or something so I need to get up to speed with the new features and the new Xcode and I've never done any Android programming before either so I need to refresh my Java skills and get to grips with the Android development platform.