5 ms·
Just today I was really contemplating how miserable life with Xamarin is. In the morning, visual studio crashed first thing with a ‘non-fatal’ error. Then I w
by nxc18 8y ago
Just today I was really contemplating how miserable life with Xamarin is.
In the morning, visual studio crashed first thing with a ‘non-fatal’ error.
Then I was making a bug fix in a Xamarin.Forms app - changing a string in the UI. I deploy the app, but the change isn’t there. So I clean and rebuild. Then I redeploy. Change isn’t there. I uninstall the app from the simulator. I delete the output directory. I redeploy - still the change isn’t there. Xamarin was deploying cached packages and I had no idea. Imagine verifying a bug fix or change, which causes a crash, and not knowing because the updated package never gets deployed.
Every once in a while I accidentally double-click a xaml file - big mistake. I get to watch visual studio turn white and not respond for about 35 seconds - time to check email and try not to break something.
In the afternoon, I wanted to connect to my mac while doing work in the background - connecting to the Mac takes ages. Unfortunately that’s not an option - connecting to a server is a modal operation. I have no idea why and it frustrates the heck out of me. Even worse, they have flow problems. If you fail to connect to a Mac, you have to close and re-open the dialog before you can add a new one. You have to do this every single time Visual Studio crashes. Visual Studio crashes at least 5 times a day with even moderate use. Xamarin is a big culprit for the instability, but Visual Studio has its share of fuckups, including mainstream releases that will just stop you from running unit tests until they ship a patch. Or just break your build altogether.
Xamarin Forms is uniquely frustrating because it, for the last ~12 months of my active use, always had a bug in the latest version that affects my product. Every time I upgrade, one bug gets fixed, but another one is added. Their QA is nonexistent and it really shows. And it’s not little things- think controls just don’t render on some platforms, or toolbars are busted on iOS. The newest version has some long-awaited features, but I’m afraid to upgrade. Visual Studio is also really bad nowadays - I really, really, really avoid upgrading; it is usually painful and more than once I’ve had to totally uninstall and reinstall.
The build system is a nightmare. There’s a lot of complexity in Forms and a lot of room for things to go wrong. People come to me with build errors all the time, and the first thing I say is, did you hit the green button again? Because failing once doesn’t mean there’s a problem with your app. There’s all sorts of nonsense that happens with caching, msbuild instances interfere with each other - I’ve had to painfully run builds in serial because yes, running msbuild on two projects simultaneously will break both.
I’ve got a lot more complaints but I’m tired and want to keep it brief.
Xamarin.Forms is (and I recognize that much of the pain I described is really problems with other supporting tools) painful enough that I wonder if it’s worth the benefit of writing C#, and this is coming from a militant C# fanboy.
I was really hoping the Microsoft acquisition would lead to more robust QA efforts, but clearly not.
- maxxxxx 8y agoThat's in line with what I have heard. Xamarin is a source of never ending obscure problems. All projects I know have switched to native from Xamarin by now b
- bunkerbewohner 8y agoTo be fair the native iOS development with Xcode (10) isn't much better. My builds unpredictably fail for no reason at least once a day. Sometimes I have to build three times before all errors disappear, without touching any code or project files at all, mind you. But at least Xcode doesn't crash any more.
- ivm 8y agoNot Xamarin but Xamarin.Forms. Xamarin just works because it's basically C# bindings to native.
- maxxxxx 8y agoTrue. I should have been more specific about Forms. But in my company the mobile guys have even given up on Xamarin because it caused more headaches than solved things. First they tried Forms which didn't go well, then native UI with Xamarin backed, didn't go well either, and now they are fully native.
- jamesg 8y agoYou may want to try using JetBrains' Rider as your IDE. I've hit similar issues with XF in VS, but Rider has been a much better experience for me. For instance: it won't lose its shit if you double-click a XAML file :) Also has the benefit of being substantially the same on Windows and Mac, so you can use a Mac directly for Mac / iOS development and everything works pretty much the way it did on Windows. VS on Mac is unfortunately pretty dissimilar to VS on Windows.
- Elte 8y agoThis. I don't have experience with Forms, but Rider is a massive improvement over VS on both platforms for "native" Xamarin development. I actually quite liked VS for Windows when I started working with it a couple of years ago, but as of late it seems to have gotten only slower and buggier. Since we do only Android / iOS at my job I don't even bother with Windows anymore. I still "need" VS for Mac to (a) build iOS layouts in interface designer (which is hell, I regularly consider going code only for those) and (b) to deploy Android apps when debugging. Rider will do that, but it doesn't do the fast assembly deployment that VS does so it's very slow even if there are no changes. And thus I write code in Rider, and run through VS. VS for Mac doesn't include as much bloat as VS for Windows, which makes it "better" because it's relatively light and doesn't lock up too long when switching to it. As an editor it's just annoying though. Debugging in it is a necessary pain right now. If this sounds cumbersome... it is. I find it workable right now but I'm regularly annoyed. Build + deploys fail when I fire them off too soon after changing an .axml file. Builds fail as a rule, not an exception, when there are Xamarin or Android SDK updates. iOS is actually mostly fine, except for the hell that is the designer. All in all none of these things are show stoppers, but I don't think I could wholeheartedly recommend Xamarin for new apps.