Tony Edwards

Is MAUI Bad?

- 4 mins

No.

But if you spend more than a fleeting moment looking into MAUI online, particularly on Reddit, you’ll come across posts along the theme of “Is MAUI still terrible” or similar.

It’s a fair question. MAUI seemingly had a rough start in life. Built as a continuation of Xamarin, MAUI was adopted by Microsoft who have funded the work done on the framework in the time since. It’s grown beyond its Xamarin origins, to introduce desktop apps for Mac and Windows, with rumours of Linux on the horizon.

Even having Microsoft involved is enough to put some people off. I never used Xamarin when it was a thing, however, it seems that people saw it as a community-driven tool. This is likely true. The community around it was clearly the main reason for its success. However given one of Xamarin’s main sources of funding before the acquisition was venture capital, the kind of exit for the Xamarin stack was almost destined. Heck, it was probably the goal. Perhaps not publicly, or even from the core team or community, but those venture capitalists dipping into their pockets would have almost certainly had MS $ firmly in sight.

It does have its issues.

Frankly, the tooling isn’t the best when you’re not on the happy path. . . especially on Mac. The same can probably be said for anything meaningful that is MS dev-related on an Apple device, but I can’t talk to that. The error messages are often cryptic and seemingly not related to anything you’re doing. . . but you get used to those and ChatGPT is great at deciphering them. Sure, the bundle size is bigger than it needs to be. . . however many people will download the extra 100 MB over the competition in just a few seconds without even noticing. Unless you’re building web apps, the app size is always bigger than it has to be.

The community that got behind Xamarin has yet to do the same for MAUI, resulting in a dearth of help in places such as Stack Overflow, and elsewhere. Perhaps that’s partially due to the LLM revolution, but I’m dubious. LLMs aren’t the reason why Xamarin libraries and tooling have yet to be ported over en mass, although many still work with only a little extra work. Perhaps community maintainers aren’t so keen to spend their time working to make a Microsoft project more successful. There’s a different underlying vibe when comparing it to community-based projects.

None of these points represent things I don’t like. Instead, they’re observations. That said, there is one thing I particularly dislike about MAUI.

The people bitching about it.

Or, more accurately, bitching about the people working on the project and dissing their skills.

Moan about the tools, sure. They’re fair game. But I’ve seen personal and spiteful attacks made on the small team working hard to try and improve it. This is uncalled for, and not fair on them. You only need to look into their collective work to see that they produce good quality code, that tens of thousands of people use to earn a living. They deserve a break.

This kind of rhetoric is really off-putting to noobs to the stack. I certainly found it tainting my view of the eco-system, and making me doubt the choice of tooling. But with the switch from .NET 7 to .NET 8 brought huge improvements. Even as someone who had only been using Maui for a couple of months at that point, it was clear to see. Switching from Mac to Windows for the dev environment brought a similar improvement in developer experience.

It’s not perfect. I’d concede to that.

But is it good enough? For the most part. . . yes.

Good enough to build quality apps? Yes, for the majority of apps at least.

Good enough to be productive. If you’re building for multiple platforms. . . definitely.

Could it be better? Hell yes. But as an open-source tool, it’s up to the community using it to make it what we want it to be. Having the Microsoft name attached to it is an advantage over other options, not a hindrance. Even if it gets dropped in the future, it’ll still live on in some way.

Regardless. Any time spent building high-quality software in any context will improve your software development skillset.

So give it a chance. A fair one.

You might even enjoy working with it. I know I do.

This post strated life a comment on Reddit.

rss twitter github youtube instagram linkedin stackoverflow mastodon