Having an existing XAML/.Net code-base, it was natural to use Xamarin.Forms, so the UI development for the Android app would not be starting entirely from scratch. And Xamarin.Forms certainly achieves the basics: getting a usable UI onto the screen. But it's not perfect - various things actually work quite differently in Xamarin, and Visual Studio performance and stability were a disappointment too. Conversely, some things (such porting graphics from Win2D to SkiaSharp) went remarkably smoothly. Sharing the core application code (Model, ViewModel, whatever) also worked just fine, with only a few nasty suprises. Overall, I think Xamarin.Forms was probably the least bad option available to me, given the various corners I had painted myself into, because of design choices I made over the years. Also, I made life difficult for myself by stubbornly insisting on keeping some aspects of the Windows UX, which really don't fit the Android way of doing things. If I was starting a project from scratch, and aiming to achieve a 'real native app' look on Android, I think that on balance I wouldn't choose Xamarin.Forms; you have to do so much platform-specific stuff anyway, that you might as well just code the UI natively for each platform. You need to debug and test separately on each platform anyway.
YOU MAY ALSO LIKE:
.NET Xamarin.Forms development for Android - an Indie developer's perspective
An aged geek, and tech enthusiast ever since I wrote my first line of code at the age of 12, on an Apple II. (there - now you can work out just how aged I am). These days, my day job is IT Strategy and Architecture, working in the banking sector. But in evenings and weekends, I keep hands-on with coding, as an Indie app developer on various projects. I suspect it will never make me rich, but it does provide drinking money, and pays for assorted technology toys that would otherwise be hard to justify.