I am just starting out writing a mobile app for iOS and Android. I am looking at various technologies and trying to make a sound decision on what to go with. I've been toying around with Xamarin for a few days with a nice little prototype running.
I feel pretty comfortable with this framework but I do have some reservations about it.
The primary reason for choosing Xamarin would be the possibility of writing a single codebase and deploying to multiple apps. I am now starting to doubt that this is even the case, as I look over documentation that is specific to either iOS or Android. Is this a selling point of the Xamarin framework? If so, are there any architectural best practices to observe so that some of the discrepancies between iOS and Android can be resolved elegantly?
As a C# devleoper I understand that another selling point for Xamarin is that I can simply use a language that I am comfortable with. But to be honest, the further abstraction from the native languages does not sit well with me. I am very comfortable learning a new language and framework, especially free ones! Besides, every day for the last week that I have been toying with Xamarin I have found many stability issues especially to do with their Visual Studio integration. It's worrying me to think that I will deploy production packages in this state.
In any case, I'm interested to hear thoughts on my concern about multiple codebases, which is really what I am trying to avoid.