I've tried a couple cross platform frameworks (mostly Xamarin and PhoneGap/Cordova) and am aware of some challenges there.
To me, Xamarin is like programming for each platform, just in C# and with another layer of bugs (and weirdness, I would say, and don't even mention Xamarin Forms). Of course, you get the possibility to share BL in a common layer, but pay for it in terms of instability and complexity to get stuff working native-like. Good for trivial GUI, BL-heavy apps I guess, but not for complex GUI, little shared BL apps.
PhoneGap/Cordova has some serious complications when it comes to predictable rendering due to the plethora of possible rendering engines you may encounter. Any non-trivial layout/styling can be completely messed up on different platforms, or even different versions of the same platform. Also it can be a challenge to achieve native performance and feel.
How would you say React Native compares?
It seems it could be more able to adapt to the platform compared to PhoneGap/Cordova, and easier (perhaps) to work with than Xamarin.
I'm considering using it in an upcoming project where both Android and iOS are required, and given my lack of iOS-experience, it seems like a good alternative.