I have been developing a Coding Game App for both iOS and Android using Xamarin Forms for a few months now. Several aspects of Forms are really good, the separation of project code, being able to switch easily between target OS and having decent emulators for both environments.
The problem is the limitations of the UI make it extremely difficult to to get the end result I want in both environments. There are also some annoying bugs in the code that are difficult to work around. A couple that I have come across
Text Editing Controls
Very limited set of text Editing controls. To achieve what I needed I had to resolve to using an HTML display control and encapsulating all my output in HTML tags.
Forms does have support for Error Message pop-ups and such like, but nothing beyond displaying a text string, with a possible ‘OK’ button. Anything else needs to be implemented as a new page that you navigate to. Which is sort of OK, but can make the program structure seem un-natural
Z-Depth and Visibilty
There is no Z-Depth attributes on ‘components’ (or views, as there are called in Forms), which means you have to implemement it by layering the components. Which works, most of the time, but occassionally I have encounterred focus issues where controls have been visible, but could not be activated.
REST support seemed to be very good, and then I encounterred, what I beleive to be a Deadlock situation with the HttpClient class, but only on Android. I would say it was intermittent, but that is inaccurate. Once a build demonstrated the issue it would always hity the problem. Basically, the first call to HttpClient would hang – never return, and you had to wait for the thread to be cancelled. Once it was cancelled then subsequent calls worked fine.
As I said, never encounterred the problem on iOS, and with Android you could have some builds that displayed the issue on the Emulator, but not on a p;hysical device, or the other way round. But if a build did display the issue on the emulator/device, then it would consistently display the issue on every startup.
Support for Xamarin Forms is going away, with MAUI now the Multi-Platform Application UI development environment of choice from Microsoft. So I tinnk its about time I migrated over to MAUI.
Lets see what joys that brings.