Xamarin is Dead
by Nathan Theophanes   2 min read

On May 1, Microsoft ended support for the Xamarin platform they purchased in 2016 that allowed developers to use C# to create Android / iOS apps. If your company still has a mobile app built with Xamarin, you have a few options.

Transitioning to MAUI

Microsoft's recommended upgrade path is to switch from Xamarin to their "Multi-platform App UI" (MAUI) framework. It's similar to Xamarin, in that it uses C# and flavors of XAML for layout. However, the display logic and structures take a different approach; Xamarin.Forms goes away and is replaced by a Handler/View mechanism with MAUI controls. Layouts are changed - even the layouts with the same name have subtly different behaviors. There are other details that may matter to your particular application. For example, if you're hosting a browser control in Xamarin, there is less access to interact with Javascript in the MAUI version. Overall, it means you're going to be rewriting a moderate amount of your user interface, at the least.

Transitioning to Flutter

Another option you should consider is migrating to a different cross-platform technology. The current market leader is Flutter which uses a different approach for UI. Instead of trying to wrap native interactive elements, they have written their own. This gives your app exactly the same look and feel on multiple platforms, with strong support for customizations and animation. Flutter was designed for mobile devices first, and is strongest on Android/iOS (though it does a decent job these days on web and native Windows). On the other hand, .NET MAUI is a unification attempt by Microsoft to cover Windows / web / mobile. Flutter hit v1.0 in 2018, while MAUI was first released in Nov 2022. That 4 extra years has allowed Flutter a significant advantage in terms of library maturity and tweaks for issues discovered in real world usage. Flutter apps are built using Dart, an object-oriented language very similar to C#. Our staff have found the transition from C# to Dart to be pretty trivial.

Flutter isn't perfect - their state management approach is low-level and unopinionated, which has led to over a dozen libraries to fill the gap. Their layout system emphasizes runtime speed over developer ease of use, which can be frustrating. However, overall we find Flutter to be the best option in 2024 for cross-platform mobile development. It beats .NET MAUI, React Native, and embedded-browser-based solutions like Cordova (formerly PhoneGap) and Titanium.

Getting More Information

If you are considering mobile technologies and want some more detailed advice, let us know - we're happy to discuss what we've experienced.