Xamarin is dead. Long live... MAUI ?
Some time ago, Microsoft released their plans to sunset the Xamarin SDKs, in favour of embedding those capabilities directly into the .NET SDK and their new MAUI framework. The date when the Xamarin SDK will officially be discontinued is coming awfully close, and we've had some worried calls from companies as to what this means for their existing application. In this article, we will review what’s on the table and how it will impact businesses currently invested in Xamarin. Let’s get to it!
Does Xamarin cease to exist?
No. It has simply ‘evolved’ from being a framework built on top of .NET, to being an integral part of the .NET tech stack. The name ‘Xamarin’ will disappear but the framework continues in the .NET stack. This means Microsoft guarantees first-line support for deploying applications to all kinds of systems, ranging from backend systems to IoT applications.
More specifically, the Xamarin.Android SDK is now changed to .NET for Android, and equally, the Xamarin.iOS SDK is now continued in .NET for iOS.
What is MAUI?
MAUI - short for Multi-platform App UI - is the successor of Xamarin.Forms. Where Xamarin.Forms 5 will be the last major version, the work is continued in MAUI.
The biggest change here is that MAUI is directly embedded in .NET, whereas Xamarin.Forms was just a library built upon the Xamarin SDKs. Not only this, but also some of the most used plug-ins used by virtually every Xamarin application (Xamarin.Essentials) is also included in the .NET stack, offering a lot of technical capabilities straight out of the box, without having to rely on the grace of the community to keep maintaining these critical functionalities.
Will my Xamarin app keep on working?
Yes, even when the Xamarin support deadline has passed, your deployed app will continue to work. However, it is important to note that Xamarin will no longer get any updates past this point. While this is not an issue for the very short-term, it will become problematic later when Android & iOS release new versions. Any new functionality added in the new versions won’t be available in Xamarin anymore.
Moreover, each year, the Play Store updates their requirements of which Android version an uploaded app should target. Giving their consistent history of updating the requirement each year in August (just before or when a new Android version is released), we can expect we can still deploy Xamarin app updates till August 2025 at the latest.
The same goes for iOS, where the requirements are also bumped each year. The last required bump was in March 2023, so we can likely expect a new bump very shortly, and another next year, which means we can still deploy updates to the App Store till March 2025 at the latest.
What's our opinion on MAUI?
In the past, we have deployed several projects with both Xamarin and Xamarin.Forms. Coming from a mostly native background, we felt pretty quickly that Xamarin Forms wasn’t delivering what our customers expected from their mobile apps, as the framework is built mostly to favour functionality over delight, and decided we would deploy better applications if we kept to Xamarin native.
Over time, we noticed Microsoft’s support for Xamarin declining, specifically when a new Android or iOS version was released. The time it took to release a new stable version of Xamarin where the new version was supported, kept getting longer and longer. Moreover, some first-line libraries (maintained by the Xamarin team) just did not get the attention and timely updates anymore, so much so that it became a blocking issue.
Not only those libraries, but also the community started declining: with the increasing maturity of React Native and Flutter emerging, many Xamarin developers flocked to those frameworks, leaving their libraries unmaintained. In our opinion, the community behind a framework is the greatest strength any framework can have; without that, it will never reach the same quality as other frameworks.
All these factors led us to the conclusion that Xamarin was not the right tool anymore to build qualitative applications, and that it was more beneficial for our clients to shift our focus towards Flutter and React Native, as our tech radar points out.
Our verdict
While there have been updates to Xamarin since we made this decision, the bigger issues are still present, and some even more so. Xamarin’s (and in extension MAUI’s) community has kept getting smaller. Whether we base this claim on Github stars, Stackoverflow questions, or Reddit community size, all numbers point to the same conclusion: MAUI’s community is but a fraction in size compared to either React Native or Flutter.
And while later updates improved the tooling, Microsoft is now deprecating VS for Mac, and pushing developers to use the .NET extension in VS Code. However, the support for MAUI in that extension is still in preview, so it feels unprofessional to push an unfinished product.
What is even more striking, is that Microsoft teams are favoring other frameworks above their own framework. Ironically, they write large parts of of their successful business streams in React Native.
To not have even their in-house teams use MAUI, tells us a lot about the confidence in which Microsoft is pushing their tool. One could argue the major reason MAUI exists, is to provide continuity in .NET’s ability to deploy to any platform, rather than being a specific focus from Microsoft to being a leader in the mobile landscape.
In short, due to the lacking first-hand support, unsatisfactory tooling and a declining community, we believe the change from Xamarin to MAUI was too little, too late. The mobile community has moved on, and the improvements the Microsoft introduced in MAUI are not enough to get the framework back on the radar.
Stuck to Xamarin? What are your possibilities?
Unless your app doesn't need to live long, you will have gathered that staying with the Xamarin SDKs is not a futureproof option. So there are 2 ways we can consider.
1) Use .NET
The most logical choice seems to be to upgrade your codebase to use the new(er) .NET versions that include Android & iOS. The tech stack is the same, so if the development team is invested into .NET and Microsoft’s tech stack, this would be the most logical choice.
2) Switch frameworks
Alternatively, you might decide that this is the time to jump ship and choose another framework. While there are a number of cross-platform frameworks out there, the most popular ones are React Native & Flutter. And while a rewrite always holds risks, sometimes it is the better solution. Just recently, we successfully rebuilt a Xamarin project for one of our clients to Flutter.
Our advice
There is no single answer for everyone. While a lot of factors point other frameworks like React Native & Flutter to be the better choice, in some cases using MAUI might still make sense. With a lot of in-house .NET developers, and favouring functionality over delight, you might benefit the most by remaining in the same tech stack and upgrading to MAUI. In other cases, maybe it is time to call it a day and bet on a different horse.
Whatever your position, you can count on our experts to help you make that decision, and support you whatever the outcome.