I have built multiple iOS and Android apps with Xamarin and found the experience to be great. I love C# so being able to use that was a plus and there are some cases where Xamarin made the APIs of the native platform a bit cleaner by implementing some abstractions. All the native plumbing was still there but implementing a tableview in Xamarin on iOS was quite a bit shorter in code than in ObjC.
It really is a phenomenal piece of engineering.
Biggest drawback, hard to find examples of things in C# so you have to be able to read documentation and code samples in ObjC or Java and mentally map them to C#.
That's why I suggest you learn 'native' on both first before moving to Xamarin; it's very easy for me to map those code examples. Actually especially when Xamarin used more idiomatic .NET for a particular case; it is more natural to me so it's actually the first thing I try when I see an example.
It really is a phenomenal piece of engineering.
Biggest drawback, hard to find examples of things in C# so you have to be able to read documentation and code samples in ObjC or Java and mentally map them to C#.