

Why you should consider Flutter or React Native over .NET MAUI or .NET for Mobile
Xamarin has been one of the key cross-platform frameworks for mobile apps in the past 10 years. Over 15,000 organizations worldwide have built and used Xamarin applications.
However, Microsoft has decided to discontinue support for Xamarin from May 1, 2024, and replace it with .NET MAUI and .NET for Mobile. The impact will be noticeable starting from April 1, 2024, as distribution of updates for iOS will cease from that date.
Migrating Xamarin to .NET MAUI or .NET for Mobile?
The decision to migrate existing Xamarin apps to .NET MAUI or .NET for Mobile is less straightforward than it may seem. Our experience at ACA Mobile teaches us that a rewrite to another platform is often a better choice. In this blog, we present arguments in favor of this advice.
Why .NET MAUI and .NET Mobile are not a good alternative to Xamarin
- The roadmap for .NET MAUI and .NET for mobile (https://github.com/dotnet/maui/wiki/Roadmap) provides little clarity and certainty in the long term. Microsoft's decision to retire Visual Studio for Mac, an essential tool for iOS and Mac development, reinforces these concerns and sends mixed signals about their commitment to cross-platform mobile development. Furthermore, Microsoft itself uses React Native for critical mobile applications such as Microsoft Teams and Outlook. Therefore, Microsoft lacks a strategic focus on .NET MAUI and .NET for Mobile.
- Our experience with migrations to .NET MAUI and .NET for Mobile reveals that there are still many issues in these frameworks. Further stabilization and development are needed to bring them up to the level of the competition. However, we observe only a very limited number of developers actively engaging with the framework. On frameworks like Flutter and React Native, we see 3 to 4 times more activity.
- The LTS (Long-Term Support) releases of .NET MAUI do not meet the standards we are accustomed to from mature frameworks. Although the release cycle of .NET MAUI follows the standards of .NET, the support period is shorter. This results in the need to constantly update .NET MAUI to newer versions.
- There is a significant decline in the number of developers actively using Xamarin, .NET for mobile, and .NET MAUI. This trend indicates diminishing confidence in the community, which could potentially lead to reduced support and innovation in the long term.
The challenges of migrating from Xamarin to .NET MAUI or .NET Mobile
Contrary to expectations, migrating from Xamarin to .NET MAUI or .NET for Mobile is not a standardized process. Documentation is very limited, and issues must primarily be discovered and resolved through trial and error. This leads to regressions, where certain functionalities are no longer supported, code obfuscation ceases to work, tooling is unavailable, and existing packages are no longer compatible. Additionally, bugs in the .NET framework itself are frequently uncovered.
Furthermore, the app is not technically better after migration; all technical debt is retained and may even get worse by bug resolution.
The cost of migration, including all bug fixing, can therefore become significant. For some of our larger projects, this entails a process involving multiple developers over several months.
Finally, the question arises whether this migration justifies a long-term investment, considering our doubts about the future of .NET MAUI and .NET for Mobile.
The alternative: rewriting the Xamarin app in React Native or Flutter
From our experience, we are convinced that rewriting the Xamarin app using React Native or Flutter provides more value for your money than migrating to .NET MAUI or .NET for Mobile.
Firstly, both frameworks offer a mature foundation with a long-term vision and support, making the rewritten application easy to maintain, scalable, and future-ready. More details about each of these frameworks can be found at the end of this article.
The rewrite also offers the perfect opportunity to adapt the app to changing or new business needs. It is not just a technical project but also delivers tangible business value.
Moreover, the cost difference between migration and rewriting is smaller than one might think:
- We rebuild only the app itself, allowing integrations with backend systems to be retained, resulting in significant savings. Even if a Backend-For-Frontend has been used, it can still be preserved.
- We base the rebuild on the design of the old app, eliminating the need for new analysis work.
- By starting with a new architecture, we can address all existing technical debt at once. This means that maintenance and future expansions become significantly simpler and therefore cheaper.
In summary, we see that rewriting the Xamarin app in React Native or Flutter does not necessarily have to be fundamentally more expensive than a migration to .NET MAUI or .NET Mobile with bug fixing. Especially when considering the improved maintenance costs, the extended lifespan of the app, and the added business value.
The Benefits of Flutter
Are you considering migrating from Xamarin to Flutter? A wise choice, as Flutter offers several strategic advantages:
- Future-Proof Technology: Flutter enjoys strong support from Google, serving as the primary contributor with a highly active development community (1313 contributors, of which 72 have made more than 50 commits). Google applies the framework in their own application development, including applications like Google Classroom, YouTube Create, Google Ads, and recently in their AI application Gemini for generating customized UIs during runtime. This provides companies with the reassurance that Flutter is a technology stack maintained in the long term.
- Popularity: Since its launch in 2018, Flutter has steadily gained market share in cross-platform development. In 2020, 1% of apps in the App Store and 3% in Google Play were written in Flutter. In just three years, this has risen to 9% and 19%. In contrast, Xamarin's share has remained at 4%.
- Unified User Experience: Flutter utilizes its own rendering engine, managing the UI entirely from Flutter itself. This ensures a consistent user experience between iOS and Android, even across different operating system versions. Older OS versions can also benefit from new features, providing a uniform experience.
- Access to the Latest Features: While not everything is available out-of-the-box due to Flutter's unique rendering engine, new features are rapidly supported through updates to the Flutter Framework. It is always possible to write native components and make them available within our Flutter code, ensuring essential features are immediately accessible.
The Benefits of React Native
Migrating from Xamarin to React Native is also a smart choice due to the numerous strategic advantages that React Native offers:
- Future-Proof Technology: React Native was originally developed by Meta to position itself as a mobile-first company in the market. There is a highly active development community contributing to its future (2604 contributors, with 89 having made more than 50 commits). Meta uses React Native for its own applications, such as Facebook, Facebook Ads Manager, Oculus, and Messenger Desktop. Microsoft also invests a significant amount of energy and time in React Native, using it for the development of applications like Microsoft Office, Microsoft Store on Xbox, and Power Apps. This instills confidence in the stability of the framework.
- Popularity: Since its launch in 2015, React Native has experienced a rapid rise in popularity. It has maintained a stable market share in mobile application development for several years. In 2020, 8% of apps in the App Store and 10% in the Google Play Store were developed with React Native. In just three years, these percentages have increased to 13% and 18%, respectively.
- Use of JavaScript/TypeScript: Thanks to the use of highly popular programming languages, React Native is very accessible for developers. This results in an abundance of available developers who can easily maintain the application since they are familiar with the language used.
- Access to the Latest Features: As React Native maps to the OS components, applications developed with it can directly and effortlessly leverage new features upon their introduction. For example, out-of-the-box support for a 120 Hz refresh rate is provided. Additionally, it is also possible to write and integrate native components for use within React Native.
Conclusion
In light of the discontinuation of Xamarin and the complex challenges associated with migrating to .NET MAUI or .NET for Mobile, rewriting Xamarin apps in React Native or Flutter emerges as a strategic and cost-effective alternative. Both frameworks provide reliable solutions with long-term support, ensuring easy maintenance and scalability.
ACA Group is ready to assist your business in making informed decisions. Let's shape the future of your applications together!
Do you want to ensure the long-term success of your Xamarin mobile applications
What others have also read


At ACA, Ship-IT Days are no-nonsense innovation days.
Read more

In the complex world of modern software development, companies are faced with the challenge of seamlessly integrating diverse applications developed and managed by different teams. An invaluable asset in overcoming this challenge is the Service Mesh. In this blog article, we delve into Istio Service Mesh and explore why investing in a Service Mesh like Istio is a smart move." What is Service Mesh? A service mesh is a software layer responsible for all communication between applications, referred to as services in this context. It introduces new functionalities to manage the interaction between services, such as monitoring, logging, tracing, and traffic control. A service mesh operates independently of the code of each individual service, enabling it to operate across network boundaries and collaborate with various management systems. Thanks to a service mesh, developers can focus on building application features without worrying about the complexity of the underlying communication infrastructure. Istio Service Mesh in Practice Consider managing a large cluster that runs multiple applications developed and maintained by different teams, each with diverse dependencies like ElasticSearch or Kafka. Over time, this results in a complex ecosystem of applications and containers, overseen by various teams. The environment becomes so intricate that administrators find it increasingly difficult to maintain a clear overview. This leads to a series of pertinent questions: What is the architecture like? Which applications interact with each other? How is the traffic managed? Moreover, there are specific challenges that must be addressed for each individual application: Handling login processes Implementing robust security measures Managing network traffic directed towards the application ... A Service Mesh, such as Istio, offers a solution to these challenges. Istio acts as a proxy between the various applications (services) in the cluster, with each request passing through a component of Istio. How Does Istio Service Mesh Work? Istio introduces a sidecar proxy for each service in the microservices ecosystem. This sidecar proxy manages all incoming and outgoing traffic for the service. Additionally, Istio adds components that handle the incoming and outgoing traffic of the cluster. Istio's control plane enables you to define policies for traffic management, security, and monitoring, which are then applied to the added components. For a deeper understanding of Istio Service Mesh functionality, our blog article, "Installing Istio Service Mesh: A Comprehensive Step-by-Step Guide" , provides a detailed, step-by-step explanation of the installation and utilization of Istio. Why Istio Service Mesh? Traffic Management: Istio enables detailed traffic management, allowing developers to easily route, distribute, and control traffic between different versions of their services. Security: Istio provides a robust security layer with features such as traffic encryption using its own certificates, Role-Based Access Control (RBAC), and capabilities for implementing authentication and authorization policies. Observability: Through built-in instrumentation, Istio offers deep observability with tools for monitoring, logging, and distributed tracing. This allows IT teams to analyze the performance of services and quickly detect issues. Simplified Communication: Istio removes the complexity of service communication from application developers, allowing them to focus on building application features. Is Istio Suitable for Your Setup? While the benefits are clear, it is essential to consider whether the additional complexity of Istio aligns with your specific setup. Firstly, a sidecar container is required for each deployed service, potentially leading to undesired memory and CPU overhead. Additionally, your team may lack the specialized knowledge required for Istio. If you are considering the adoption of Istio Service Mesh, seek guidance from specialists with expertise. Feel free to ask our experts for assistance. More Information about Istio Istio Service Mesh is a technological game-changer for IT professionals aiming for advanced control, security, and observability in their microservices architecture. Istio simplifies and secures communication between services, allowing IT teams to focus on building reliable and scalable applications. Need quick answers to all your questions about Istio Service Mesh? Contact our experts
Read more

Let’s begin this blog post by remembering embarrassing memories from our past. Remember when you called your teacher “mom” in kindergarten? Or that huge zit on your forehead on your first day of high school? Let’s have a look at a picture from a couple of years ago. Those clothes… those hideous clothes. Why did you think you’d rock those super tight pants forever? Well.. you’ve changed and so did those fashion trends. Trends also seem to change quite rapidly in other kinds of design. In this blogpost, I’ll walk you through 3 tips to modernize your handout design and improve an old print design to fit in the modern world. I’m using a recent redesign of a handout made for our mobile team as an example. 1. Go digital The biggest change in this redesign is that we’re actually stepping away from print and moving towards digital media, such as a PDF file. A couple of advantages go hand in hand here. You no longer have to worry about how you’re going to jam all your information on two A4 pages, since you aren’t limited to a certain page size . This gives you more freedom with both your structure and information placement. As you can see in our example (click the picture on the right), this results in a lighter design that’s much more enjoyable to read because of extra whitespace between sections. Another big improvement is the ability to make use of links . You don’t have to write a full URL anymore, because you can just click on a shorter one or even add a button like you’re designing a webpage. Try adding links to logos or pictures. By doing this, you’re changing a completely static object into a link to even more information. Your handout is no longer limited to just the information on your two pages. Be careful you don’t forget to add links to anything that seems ‘clickable’ though. If your user tries to click on something that should’ve been a redirect to for example your website and it doesn’t work, you don’t make a good impression. 2. Add more whitespace! First things first, whitespace doesn’t need to be ‘white’ space. Whitespace refers to empty breathing room in your design , not a white colour between design elements. Imagine getting a page to read and everything is cropped in the first half of the page. I’d rather gouge my eyes out than try to read that. Space out your information and use that empty space to improve the reader’s experience and even guide them to parts you want them to read. In other words, empty space makes your content more readable. When your focus is to inform your reader, readability is top priority . In our old design, we used an abstract background. Pictures or patterns can be used as whitespace but aren’t ideal if you’re going for a professional and clean look. We simply changed to a white background instead. This way, we structured our design in a couple of ‘information containers’. The whitespace makes sure each of those containers gets the focus it deserves. So don’t just read whitespace and see it as unused space. Think of whitespace as a guide for your reader . 3. Don't overdo it You want to tell your audience something, so get to the point . Don’t try to over-explain and don’t use words you even barely know to sound smart. The same goes for showing pictures and using design elements. Nobody wants to scroll through 10 pictures which all show the same thing to find information they need. Say what you need to say and show what you need to show. Also, try using a number instead of an icon when speaking about a certain percentage for example. People love numbers (just look at all those infographics floating around on the internet as proof). Try to have a nice balance between icons and percentages when designing something. Of course, there’s nothing wrong with using icons as a visual too. They can break your wall of text, make it more enjoyable to reed and keep the reader interested. Last but not least, your design isn’t a child’s coloring book. Don’t use all of the crayons available! We went way overboard in our previous design. Now we’re only using red as our main color because it’s also the main color of ACA’s corporate identity. If you really want to use more color in your new design, be consistent . Don’t give your first title a blue color while giving your other titles a purple color. It’s pretty basic really, but often overlooked. 🚀 Takeaway Print design isn’t exclusively for just print anymore in today’s digital world. If you want to update your previous print designs so they fit in our online lives as well, here are some things you should take into account: Forget strict page size limits. Include clickable links in your design. You can even add buttons like on a website. Use as much whitespace as you need to help your reader ‘breathe’ for a second and rest their eyes. Be brief! Include visuals, but stay consistent in your color palette.
Read moreWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

.png)
