Migrating Xamarin Apps
Published on July 19, 2023
Xamarin is an open-source development framework owned by Microsoft that allows developers to use a single codebase for creating mobile apps.
This development approach is referred to as cross-platform or hybrid app development, and it is often used when companies need to deploy quickly and efficiently across multiple operating systems.
With Microsoft’s announcement that it will end support of Xamarin in May 2024, where should companies migrate their Xamarin apps? And what does “end of support” really mean?
Our team at JMG has re-platformed several Xamarin apps over the years, so here’s our feedback and suggestions on the next steps for companies with apps built on Xamarin.
What does Microsoft’s end of support of Xamarin mean?
Will apps built on Xamarin immediately stop working on the last day of support? No.
Xamarin-built apps will continue to function as normal for a period of time, but without updates, Xamarin apps will be at a standstill as technologies around them progress.
This means they won’t be able to take advantage of upgraded features that come with the release of new mobile devices and operating systems.
It also means they will start to become buggy and less secure as:
- Third-party dependencies eventually break.
- Security patches are no longer issued.
- New operating systems are released.
What options do apps built on Xamarin have for replatforming?
If a mobile app remains an integral part of your company, you’ll want to either migrate or rebuild on another platform.
Migrating from Xamarin to .NET MAUI
If you want to stay in the Microsoft ecosystem, already have digital products in the .NET stack, and are happy with your current app implementation, migrating from Xamarin to .NET MAUI is a good option.
.NET MAUI is a cross-platform solution like Xamarin where you write and deploy code once for multiple operating systems, and if your team has a lot of experience with Xamarin Forms, this is a natural fit.
Like all newer technology, it may be difficult to find someone with experience in it, especially since the one codebase requires you to write in more than one language (XML, C#).
And with a smaller developer community, .NET MAUI will have less documentation and limited third-party libraries than native development and other longer-established cross-platform tools.
Replatforming Xamarin apps on Flutter
If you want to stay in the open-source mobile development ecosystem, but want a framework with a little more legs under it, we recommend rebuilding your Xamarin app on Flutter, an open-source software development kit created by Google.
With Flutter, you only need to know one programming language (DART), unlike .NET MAUI with its two languages.
It has a highly customizable User Interface, which is useful for apps with creative designs, and leads to faster upfront development and lower upfront cost for development.
We say “upfront” twice in that last line for a reason, and we’ll get to why in the next section.
Hybrid apps built on Flutter face the same inherent risks as those built on Xamarin, like:
- The possibility of Google no longer supporting it
- A smaller developer community than native development (but more encompassing than .NET MAUI)
- Less documentation and limited third-party libraries compared to native development
- Lack of a native feel
Cross-platform development is a good approach for simple applications that will remain simple even as the company around them grows. If your app is anticipated to grow exponentially in users, features, and performance, the next development approach should be a strong consideration.
Rebuilding Xamarin apps natively
As we mentioned in the beginning, we’ve taken Xamarin apps for several companies and rebuilt them natively. This was long before Microsoft announced any plans to end its support of Xamarin. These companies’ apps were hitting the limitations of a cross-platform solution, causing them to be buggy and have a poor user experience.
By building apps written in code specific to each OS, our clients experienced both the immediate and long-term advantages of building natively:
- Instant updates when platforms release new features and OSes
- Greater speed and overall performance
- Fewer bugs during the development process
- Advanced customization with full access to device hardware, like GPS, camera, microphone, and push notifications
- Increased security and reliability
- Intuitive look and feel for a flawless user experience
- Continued functionality when connectivity is limited
As alluded to earlier, apps built natively have higher upfront development costs, but as long as they aren’t left idle and are maintained and supported, this upfront investment saves time and money in the long run by doing it well the first time.
Just ask any of our clients who went this route:
- Redesigned fintech apps significantly lowered support tickets and created a better user experience for MarketBeat subscribers. Read their story: https://jmg.mn/projects/market-beat
- Native iOS and Android apps allowed Profile to sell more services, adding an estimated $3 million to their bottom line. Read their story: https://jmg.mn/projects/profile-by-sanford-health
- New native apps delivered a high-quality user experience for Green Mill, one of the Midwest's largest pizza chains. Read their story: https://jmg.mn/projects/green-mill
Not sure what to do with your company’s Xamarin apps? Schedule a time to chat, and we’ll review your goals and lay out some options.
While we primarily do native app development at JMG, we only recommend this approach when it’s the best fit. If we think a cross-platform app can get the job done, we aren’t afraid to say so, and we’ll point you in the direction of someone who can help.