I have spent just over 12 months now developing (or rather attempting to develop) a couple of apps using xamarin forms targetted at the iPhone and Android phones, and to be honest the emphasis is definitely on the attepting.
Don’t get me wrong I think Xamarin Foms is a brilliant development environment. The division between the App project and then one project for each deployment platform is just – well brilliant. it works so effectively. you have the full power of Visial Studio as an IDE at your finger tips – free, gratis, and for nothing. You have emulators, full debuging, web comms, sql databases, analysis tools and support forums. So what is the problem?
The main problem is that the execution modules are just too resource hungry. Too much memory, too much CPU, too many threads. The Apps are just not responsive enough, and so, as a user, I find myself hitting ‘buttons’ multiple times because it appears that the app has not responded – and that of course makes matters worse.
Plus, it is difficult to predict what functions are going to trigger performance issues. As a example, I wanted a pop-up to appear with buttons representing the 26 letters of the alphabet, and for the User to click one letter, at which point the pop-up would disappear.
I originally coded this as a hidden grid on the ContentView of the page whree it was required – making the pop-up visible as required. A functional solution, but not exactly following the UI statndards. Then I discovered the Pop-up implementation in Xamarin Toolkits, which, in theory was a much better implementation – use of Navigation to make the pop-up appear / disappear. And indeed this worked fine in the emulator. Loaded it onto an actual device and each time the screen was navigated to, the performance degraded, to a point where after four invocations everything siezed-up
When you add to this the inertia that Apple add to the development process, it actually becomes too resource intensive to develop using this platform. So I am taking a break. I am going to try Android development on Windows using the Android SDK and Kotlin – which I am informed is what Java would have been if ti had been developed today. (Well 5 years ago anyway). Will let you know how that goes.