Well, it's not quite dead but possibly moribund.
In May 2020, Microsoft announced that Xamarin.Forms, a major component of its mobile app development framework, would be deprecated in November 2021 in favour of a new .Net based product called MAUI - Multiform App User Interface.
“I wanted to like xamarin so much.. so soo much, but its just so bad
Xamarin is the absolutely worst. I hate it so much I’m about to drop the highest paying job I’ll ever have because I’m so frustrated with everything that Xamarin is (or isn’t).
— Xamarin developers
The move is part of a general evolutionary step across the entire Xamarin environment. Xamarin has been around since 2011, with somewhat of a troubled and confused development history. Theoretically, it seemed to have so much going for it, but in the real world, Xamarin has proved to be bug ridden, badly implemented and bloated.
The move to replace Xamarin Forms with MAUI seems to be a move on Microsoft’s part to compete with newer, friendlier and easier to use modern development frameworks.
What is Xamarin Forms? Xamarin has two ways of letting developers write cross platform apps (there’s a warning bell for a start.) Forms allows developers to produce a cross platform app using a number of shared GUI components - which you can’t do, using Xamarin.Native. Incidentally, Xamarin.Native is actually cross platform but you have to write your UI code twice - once for each platform.
(Talking of cross-platform, Microsoft themselves even suggest using React Native - a competitor for cross platform development, rather than Xamarin Native. Most Xamarin cross platform development is done using Xamarin Forms.)
Xamarin.Forms is basically suitable for simple apps only. Anything complicated probably means you’ll be working in Xamarin.Native… or rather, you won’t. If you see what we mean.
Sounds confusing? It apparently is.
Unsurprisingly, most Xamarin developers seem to hate using it.
Everything is Xamarin is unnecessarily difficult to use - even the text editor is “an abomination”, with developers resorting to using third party tools, such as Rider.
When a company can’t ship a software product with a usable text editor, as a developer you will inevitably ask yourself “when is something better coming along?”
From simply inputting code to running the compiler requires work arounds, bug fixes or frustration. (Oh yes, and here’s a show stopper - Xamarin and Rider cost money. Modern cross platform frameworks are free. So if you’re a developer, what are you going to choose to learn?)
Have a look at some developer criticism of Xamarin here. It doesn’t make for pleasant reading, you get the impression that developers utterly hate using Xamarin and see it as a frustrating, dead end solutiom.
Not a good day in the office if you’re a developer. The alarm bell comes when you realise that developers have a choice in what solutions they learn, and this is one of the major driving forces behind the success or failure of a development framework.
Of course, if you’re a CTO or IT Director, you may avoid the nasty work of coding using an unnecessarily frustrating and contrary framework, but what happens when your Xamarin developers discover something much easier and more comfortable to use?
And that’s what’s happening.
One word? “Worrying”.
When a nine year old development framework starts going into a death spiral against modern competitor software, you begin to wonder if it can be pulled back from the brink.
Software is evolutionary in nature, like dinosaurs, more capable animals come long to replace the older, slower ones. After many years in development, it becomes impossible to fundamentally change large software suites due to the amount of inbuilt technical debt in them: at the same time, any change has to take backwards compatibility into account.
It might be that Microsoft’s MAUI redesign may reinvigorate Xamarin.Forms. It’s scheduled to be released in November 2021, and Forms support will continue for 12 months thereafter. (Some companies may want to stick with Xamarin due to the amount of investment, but- quite frankly - it’s a gamble.)
Whether this is a positive change or yet more papering over the cracks remains to be seen. The question raised is how well Xamarin has been thought out as a solution by Microsoft and whether it’s become a ball of wool which is too complicated to unravel.
By the same token, there are thousands of apps out there, developed over Xamarin’s 9 year lifecycle, with fewer developers showing an interest in maintaining them, as they grow ever older and more in need of an update.
It may be too late for Xamarin to catch up with React Native and Flutter - the newcomers have arrived on the scene having learnt all the lessons about how not to do things, and they have no technical impediments to hold them back.
“Xamarin is not dead but it is moribund”
At the start of the article, the conclusion was “not dead but moribund”.
The reason why Xamarin is “not dead” is perhaps solely due to the number of apps out there currently using it.
Software lifecycle will, frankly, extend Xamarin’s life by perhaps a year or two, which may be good news for companies who’ve invested time and money into Xamarin based app development.
However. Xamarin is really just limping along................
If the trend towards the adoption of new, cross platform frameworks continue (and of course it logically will) then companies are going to caught in a situation where they have an old app which is becoming increasingly slower and more bug ridden (as all apps do) with fewer Xamarin developers on the market to support or maintain it.
Inevitably with everything, but especially technology, new and more efficient solutions come along.
It’s estimated that, without maintenance, an app has a one to three year lifecycle before refactoring or revision becomes necessary - there are already a large number of very old Xamarin apps out there, and the next few years will probably mean that Xamarin app owners are going to have to consider what the next step in their app development is.
Frankly put, the choices seem to be - stick with Xamarin and take a gamble - or look at a rewrite using a more modern, future-proof framework.
Talking of which, if you want to know more about modern frameworks such as Google Flutter, just hit the button below!