I've looked at all 3 and I (still) use Xamarin.
Of the 3 Xamarin is the closest to the respective native platforms and it supports more platforms than the others.
Xamarin allows me to still be a native developer using the same native API's and UI (storyboards and android xml layouts, without having to learn a new user interface framework. C#, the top 5 languages in terms of popularity is very productive. Together with .NET you have a powerful combination, espeically if you're crafting your own backends too using .NET core which is also cross-platform. Now you can share common classes (esp json POCOs) between App and Backend code.
Xamarin allows be to keep abreast of whats new in the respective native frameworks.
I think Flutter is promising, but dart is a very niche language, and its too early to bet on it being a winner.
I'm Xamarin developer too. However, Visual Studio for Mac is absolutely mess. I can't believe Microsoft can't make a reliable IDE, it's very unstable and buggy. However, you can use Android Studio, Jetbrains IDEs or Visual Studio Code in order to create your apps on Flutter. Flutter has hot-reload feature, Material and Cupertino components, Skia engine is better than Mono Runtime; It's faster than Xamarin. Xamarin has 8 years working and Flutter is changing the game with 2 years only. Incredible.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.