Life beyond Xamarin - the future of mobile development
Posted May 30, 2024 | 9 min. (1855 words)In the latest Founder & Friends episode, Raygun CEO John-Daniel Trask (JD) sat down with Matthew Richardson, the Director at Velocity Engineering Systems, to discuss the future of cross-platform mobile development.
This article summarizes their key insights for software developers considering a move away from Xamarin.
The discussion covers four main alternatives:
We’ll explore the pros and cons of each option, focusing on:
- Ease of transition from Xamarin
- Performance considerations
- Impact on user experience
- Long-term viability
The evolution of cross-platform mobile development
Mobile development is evolving quickly, with new technologies constantly emerging. In their discussion, JD and Matthew delve into this shift, tracing the journey from the early days of Xamarin to the latest with .NET MAUI while also exploring other tools and alternatives that have come up. This article breaks down their insights, focusing on the evolution of cross-platform mobile tech, .NET MAUI, and the importance of crash reporting.
From Xamarin to .NET MAUI - a decade of evolution
JD and Matthew kick off the conversation by reminiscing about the early days of mobile development and the evolution from Xamarin to .NET MAUI. Reflecting on the industry’s growth, Matthew shares, “It’s amazing to see how much things have progressed, especially since the release of the first iPhone.” He recalls the early days of Xamarin, emphasizing, “We were dealing with platform-specific quirks that often felt like we were constantly playing catch-up. Moving to .NET MAUI, we’re now equipped with a more powerful, flexible platform that simplifies so many of those challenges.”
As the conversation progresses, Matthew notes, “The shift to .NET MAUI is more than just an upgrade; it’s a reimagining of how we build cross-platform apps. It brings together the best of Xamarin with modern enhancements that open up new possibilities for developers.”
Xamarin’s journey from MonoTouch to MAUI
Matthew recalls his early experiences with Xamarin, then known as MonoTouch, a framework that allowed developers to write iOS applications in C#. “One of the first mobile apps I worked on was back in the days of Novell with MonoTouch,” says Matthew. This early version of Xamarin wrapped the iOS SDK, allowing developers to use C# instead of Objective-C, which was revolutionary at the time.
As Xamarin evolved, it expanded to support Android, helping bridge the gap between different mobile platforms. However, as Matthew points out, there were significant challenges in those early days, particularly with Android. “There was a lot of churn in the Android SDK, which made it difficult to maintain parity with iOS,” Matthew explains. This constant change in the Android ecosystem meant developers often had to navigate unstable APIs and inconsistent tools.
Matthew also shares how Xamarin played a crucial role in establishing Microsoft as a serious player in mobile development. “Despite these challenges, Xamarin proved that Microsoft could be a serious player in the mobile space,” he notes, reflecting on how the framework laid the groundwork for what would eventually become .NET MAUI.
The transition to .NET MAUI
The transition from Xamarin to .NET MAUI marks a significant shift in Microsoft’s approach to cross-platform development. JD notes that the change from Xamarin to .NET MAUI wasn’t just a simple upgrade but a rethinking of the entire ecosystem. “Xamarin and .NET MAUI represent more than just frameworks; they are ecosystems”, JD emphasizes. This ecosystem includes everything from the UI framework to the compilation tools, all built on top of .NET 8, which brings substantial performance improvements and modern language features.
For developers, the move to .NET MAUI offers several advantages, especially in performance and tooling. Matthew highlights how MAUI’s integration with .NET 8 allows developers to target newer frameworks and take advantage of enhancements previously unavailable in Xamarin. “With .NET MAUI, you’re no longer constrained by the limitations of .NET Standard”, he says, pointing out that this flexibility is one of the compelling reasons to upgrade from a legacy Xamarin app to .NET MAUI.
Xamarin alternatives
While .NET MAUI offers a robust solution for cross-platform development, it’s not the only option available. JD and Matthew discuss several alternatives, each with its strengths and use cases.
Avalonia - a WPF-inspired cross-platform framework
Avalonia is an open-source framework inspired by the Windows Presentation Foundation (WPF). It offers pixel-perfect rendering across platforms, making it ideal for applications that require a consistent visual experience. Matthew highlights that Avalonia draws significant inspiration from WPF, with which many .NET developers are already familiar. Matthew explains, “Avalonia is more like Google Flutter in that it focuses on rendering a unified UI, completely platform-agnostic”.
JD notes that Avalonia’s ability to run on .NET 8 makes it a compelling choice for developers looking to build cross-platform applications without sacrificing performance. “I was really impressed with how straightforward it was to get started with Avalonia, especially given its roots in WPF”, highlighting its potential for developers who are already comfortable with Microsoft’s UI stacks.
Uno Platform - balancing native and cross-platform development
Uno Platform offers a different approach by balancing native controls with cross-platform development. Matthew explains, “Uno Platform is designed to render near pixel-perfect UIs while still utilizing native controls where possible”. This makes Uno Platform a strong choice for applications that need to blend native performance with cross-platform flexibility.
Various companies, including a notable case with Toyota, have successfully adopted the Uno Platform. Matthew shares that “Toyota International used Xamarin Forms for an internal app in their manufacturing plant, which they later migrated to .NET 8 and Uno Platform”. This example illustrates how Uno Platform can be a viable alternative for developers looking to modernize their existing Xamarin applications.
To learn more about Uno Platform, check out our Founder & Friends episode with Uno Platform co-founders and cross-platform experts Francois Tanguay and Sasha Krsmanovic. In the episode, the Uno Platform co-founders discuss how their platform simplifies cross-platform app development with a single codebase that runs on multiple devices. They emphasize performance optimization and WebAssembly support, making it a solid choice for building versatile, high-performance apps.
Flutter - Google’s cross-platform solution
Flutter, developed by Google, has quickly gained traction as a high-performance framework for building cross-platform apps. Like Avalonia, Flutter focuses on rendering a consistent UI across platforms, but it comes with a robust ecosystem and strong community support. Matthew mentions that while he has yet to work extensively with Flutter, it’s clear that the framework has become a popular choice for developers who need to target multiple platforms, including the web.
JD reflects on how the rise of frameworks like Flutter underscores the importance of choosing the right tool for the job. “There are so many options out there now, and it really comes down to what best fits your project and your team’s skill set”.
The role of crash reporting in cross-platform development
As developers work through the challenges of cross-platform mobile development, it’s crucial to ensure that their apps perform well on all platforms. Crash reporting tools, like Raygun, are essential for identifying and fixing issues across different environments, helping maintain app stability and a smooth user experience.
JD shares a story about a customer experiencing issues with their Android devices, which turned out to be caused by modified firmware on low-cost devices sold in Southeast Asia. “We had to bring in several deep Android experts to help us diagnose the issue, which turned out to be related to these hacked firmware versions”, JD recalls. This experience highlights the importance of robust crash reporting tools to identify and resolve issues that might take time to be apparent.
Matthew agrees, emphasizing that crash reporting is not just about fixing bugs but also about understanding how users interact with your app. “Crash reporting tools give you insights into issues that might otherwise go unnoticed, especially in a cross-platform environment where subtle differences can lead to unexpected crashes”.
The future of mobile development, AI and beyond
As the conversation shifts towards the future, JD and Matthew discuss the impact of AI on mobile development. While AI has been a hot topic recently, Matthew stresses the importance of separating the hype from real-world applications. “For many people, AI seems like this looming thing that might take their jobs, but in reality, it’s about how we can leverage it to enhance our products and businesses”.
JD adds that Raygun has already started incorporating AI into its crash reporting tools, helping developers understand the root causes of issues more effectively. “We’ve added AI Error Resolution capabilities that can suggest potential fixes for errors, which is especially useful for non-developers who might not have the technical skills to diagnose issues themselves”, JD explains.
Looking ahead, both JD and Matthew agree that the lines between mobile and desktop development are becoming increasingly blurred. With technologies like .NET MAUI, Avalonia, and Uno Platform, developers have more tools than ever to create applications that work seamlessly across different platforms. JD advises, “The key is to stay informed and choose the right technology for your project”.
Navigating the transition from Xamarin to .NET MAUI
As developers consider migrating from Xamarin to .NET MAUI, Matthew offers practical advice based on his experience. He suggests that developers start by taking advantage of the modern language features available in Xamarin, such as C# 9, to make the transition smoother. “Getting your codebase up-to-date with the latest language features will make it much easier to migrate to .NET MAUI”, he says.
Additionally, Matthew recommends writing a compatibility layer to handle the differences between Xamarin and MAUI. This approach can help developers keep their codebases in sync during the transition, reducing the risk of breaking changes.
JD echoes this advice, noting that while migrations can be challenging, the benefits of moving to a modern framework like .NET MAUI are worth the effort. “The work that the Microsoft team has put into performance and tooling in .NET MAUI is impressive, and it’s something that developers should take advantage of”, he says.
The right choice
The conversation between JD and Matthew highlights the exciting developments in cross-platform mobile development and the importance of choosing the right tools for the job. Whether you’re transitioning from Xamarin to .NET MAUI, exploring alternatives like Avalonia or Uno Platform, or leveraging crash reporting tools to ensure a smooth user experience, the key is to stay informed and adaptable.
As the lines between mobile and desktop development continue to blur, developers have more options than ever to create powerful, cross-platform applications. By embracing new technologies and staying up to date with the latest trends, developers can ensure that their apps are functional and future-proof. As JD puts it, “It’s all about making the right choices for your team and your project and keeping an eye on the ever-evolving landscape of mobile development.”
For more in-depth coverage of this topic, check out the full episode of Founder & Friends on YouTube and leave your feedback in the YouTube comments.
If you’ve enjoyed this article, you might also like: