Building Cross-Platform Apps With .Net MAUI or Migrating from Xamarin
Image Source

.NET MAUI Mobile App Development: How to Build Cross-Platform Apps or Migrate from Xamarin

12 min read

Share

As a senior .NET engineer with 12+ years of experience in the software development area, I’m really excited about the opportunities the .NET framework provides to businesses. Having already created powerful tools for building web and desktop applications, in 2022, Microsoft took a new step to improve its cross-platform capabilities with .NET MAUI. 

If your company focuses on the Microsoft tech stack and you’re currently evaluating whether MAUI is a good fit for your cross-platform product, this guide will help you figure it out. Based on MobiDev’s expertise and my personal experience, we’ll talk about what to expect from MAUI app development, what challenges may come your way, and how to handle them right. 

IS .NET MAUI GOOD FOR YOUR CROSS-PLATFORM APP DEVELOPMENT?

MAUI is the evolutionary next step of Xamarin.Forms that offers even more possibilities for creating multifunctional and multiplatform solutions to address a wide range of business needs. .NET MAUI makes it possible to develop applications for iOS, Android, macOS, Windows, and Linux using C#. Unlike Xamarin.Forms, it supports creating a single project for different platforms. This significantly improves the development speed and removes developers’ concerns about compatibility issues. 

MAUI offers increased performance, new toolsets, and better integration with the latest mobile OS. Like any other cross-platform technology, it’s a great solution when you need to develop an application for different platforms but with the same business logic and requirements. 

At the same time, you need to understand that technology alone can’t guarantee your success. Its compliance with business requirements and the experience of engineers working with it are more important here. At MobiDev, our focus is not on technology, but on helping our customers achieve their business goals. This can range from meeting specific technical requirements with our skills and experience to offering the best technology solution based on your product vision.

TOP 4 CASES FOR .NET MAUI APP DEVELOPMENT

The choice of technology first of all depends on the business tasks you set. After all, the ideal solution is most often a compromise between the capabilities of technology and the business needs of a specific project. In our experience, the most popular use cases of MAUI for cross-platform app development are the following.

1. FAST PROTOTYPING WITH MAUI

Using .NET MAUI for prototyping is a great way to quickly develop and test your application’s user interface and functionality across multiple platforms. By creating a single project for all platforms, developers can save a significant amount of time and deliver solutions faster. Also, .NET MAUI provides a rich set of controls and layouts that can be used to design a modern and responsive UI. 

2. CROSS-PLATFORM MOBILE APPLICATIONS WITH MAUI

Compared to Xamarin, MAUI introduces some new features that simplify the process of developing applications running on Android and iOS simultaneously. For example, improved controls, more flexible architecture, more APIs for native device features, hot reload functionality, etc. 

The .NET stack also allows developers to use many existing powerful libraries and frameworks for cross-platform projects to cover a variety of business cases. Moreover, if your company already has software built on .NET you’ll have an opportunity to re-use common libraries and business logic and support your app with an in-house .NET team.

3. .NET MOBILE AND DESKTOP APP DEVELOPMENT

MAUI provides really great cross-platform support out of the box. If you need not only a mobile application but also a desktop solution for Windows or macOS, MAUI will allow you to achieve this with minimal effort.

For example, at MobiDev we worked on the development of a complex solution that included a mobile and desktop POS system. Additionally, .NET technologies helped the client ensure the same functionality across all platforms within the same tech stack and cut development costs. 

Developing .NET-based mobile and desktop POS system

VIEW SUCCESS STORY

4. OFFLINE APPS AND DATABASES

Perhaps one of the most important strengths of MAUI is its capability to work with databases. It provides powerful tools for data management similar to those used on the web. This is an ideal solution for applications that need to store a large amount of data offline, synchronize it with a server when there is an Internet connection, and then continue to function offline.

Popular local data storage options include SQLite, a lightweight file-based database, and the built-in Preferences API, which can be used to store key-value data.

Also, .NET MAUI supports caching, which allows the app to store frequently accessed data in memory or on the device, reducing the need to make network requests. You can use the HttpClient caching API to cache HTTP responses or implement your own caching mechanism using local data storage.

If you are not sure whether .NET MAUI is the best option for your product, you can always turn to our technology consulting services. MobiDev’s software architects and tech leaders will carefully analyze your requirements, propose the best solution, and create a clear product development strategy that will help you achieve your strategic goals.

NEED CONSULTATION WITH TECH EXPERTS?

Contact us

2 CASES WHEN MAUI IS NOT THE BEST SOLUTION

As with any technology, there are some cases where using MAUI causes some limitations and challenges you need to deal with. These include the following.

1. WEB DEVELOPMENT

MAUI supports Blazor, a Microsoft web framework that allows developers to reuse existing Blazor code and create hybrid apps with web and native components. However such integration is still in its early stages and needs improvement to become a common case. In the near future, MAUI is likely to provide a powerful way to build cross-platform applications that leverage the strengths of both web and native development. But as for now, such a solution will rather be experimental.

2. APPLICATIONS THAT REQUIRE HIGHLY CUSTOMIZABLE UI

Any cross-platform technology has limitations in UI compared to the native approach. The principles of material design are implemented in MAUI, but not fully supported. If existing components are not enough for your project, creating custom components requires increased labor costs and some additional effort from your developers. 

The good news is that MAUI is flexible enough to create new components if this component can be implemented at the MAUI level. For example, customizing a search box requires platform-level work that will result in significant effort for any cross-platform framework. However, creating a custom element like an animated timer or a customized progress bar will be easy and fast using a .NET tool like SkiaSharp.

In our experience, .NET cross-platform technologies are often the choice when the focus of the project is on functionality rather than native design capabilities. MAUI is great for applications with a complex flow and processing of a large amount of data.

SHOULD YOU MIGRATE XAMARIN.FORMS TO MAUI? 

If you already have an Xamarin-based application, you probably face a dilemma about whether you should upgrade to MAUI or not. According to Microsoft, the support for Xamarin stops in May 2024. At the same time, many developers are still having trouble working with MAUI and have concerns about whether it is production-ready for large-scale projects.

So, migrate or not migrate? I would say it really depends on your business goals. Here are our recommendations.

You don’t need to migrate:

  • If your application works without any issues. If it’s fine, there is no urgent need to convert your Xamarin app to MAUI. You can do this later when you are faced with scaling issues and MAUI is more stable.

You need to migrate:

  • If you plan to scale your app in the near future
  • If you want your app to support macOS or Windows. Xamarin has limited support for these platforms.
  • If you have a desktop app, MAUI will enable it to work better

Let’s briefly compare the capabilities of MAUI vs Xamarin.Forms.

# Criteria MAUI Xamarin.Forms
1 Release year 2022 2014
2 Primary platform support iOS 11 or higher, Android 5.0 (API 21) or higher, Windows 11 and Windows 10 version 1809 or higher, macOS 10.15 or higher iOS 9 or higher, Android 4.4 (API 19) or higher, Windows 10 Universal Windows Platform, build 10.0.16299.0 or greater
3 Access to native platform-specific features Direct access to native platform APIs Workarounds for accessing native resources
4 Performance Improved due to new optimized rendering engine Worse due to the use of wrappers for accessing platform-specific features
5 Customization Enhanced theming and customization options Custom theming and styling options are available
6 Single project for all platforms Yes No
7 Multi-targeting Yes No
8 Multi-window Yes No
9 Community Growing Established

If you want to improve and scale your product, one way or another, you will need to switch to a new technology supported by Microsoft. However, finding the right moment for this is the key to success. If you have a small, simple project, then you can migrate to MAUI right away. But if your project is larger and more complex, it’s a good idea to wait until the technology is more stable and you can safely switch to it. In any case, you can book a call with a MobiDev representative to get a consultation from me or my colleagues to help you find the best solution. 

Book a call with a MobiDev representative

Book a meeting

3 CHALLENGES OF MAUI APP DEVELOPMENT

Whether you decide to migrate your existing project or develop a cross-platform solution using MAUI from scratch, there are certain features of the technology that you should be prepared for when embarking on this path. Knowing these challenges, you can prevent possible complications.

1. UI CUSTOMIZATION 

As already mentioned, customizing the UI with MAUI requires some expertise and effort. By default, MAUI offers a specific set of UI tools and templates, and if you work within this environment and its rules, you will have no problem creating beautiful, lightweight applications. If you go beyond them, customization can take more effort than customizing elements using other frameworks. 

Like any technology, MAUI has features that, slightly limit the possibilities of UI customization, but still, they bring versatility and reduce the implementation effort. Keeping this in mind, expert designers and developers can help you avoid certain design solutions that are difficult to implement with MAUI, such as complex lists and animations. The use of available .NET libraries also significantly expands the range of possible design cases. 

2. COMPATIBILITY ISSUES

To create a modern, beautiful user interface, MAUI uses the latest versions of the platform’s SDK such as the AndroidX libraries and the newest Windows App SDK desktop framework WinUI3. For this reason, Android versions below 5.0 (API 21), Windows Presentation Foundation (WPF), and Universal Windows Platform (UWP) are not supported. If you need to cover the listed cases, you can still use Xamarin. 

Also, since MAUI is still a new technology, not all third-party libraries may be compatible. That’s where you need the assistance of seasoned .NET engineers able to find alternative libraries or build custom solutions to ensure compatibility across all selected platforms.

3. KNOWN BUGS

MAUI is a subject of debate because of some well-known issues developers face when using this framework. This includes tooling, performance, limited library support, etc. But it is worth understanding that this doesn’t mean that by choosing .NET MAUI for your project you will necessarily encounter all of this. Everything depends on the case and the experience of the developers working on the project. 

I can’t note in my practice any special difficulties with MAUI application development. There are just considerations that you should be prepared for. If your skills are insufficient to work with MAUI, it may be worth involving external developers who can help you.

MOBIDEV CASE STUDY: BUILDING CROSS-PLATFORM PERSONAL FINANCE APP WITH MAUI

Now that we are done with the MAUI overview, let’s get to our experience to see what MAUI mobile app development can look like in practice. 

This client came to us with the task of building a personal finance management application. The server part of the core product was written using .NET and the client was looking for developers who could take on tasks related to building a mobile application compatible with both iOS and Android platforms.

Features we delivered:

1. Clear visualization of the client’s financial data

The design of the application involved the use of graphs and charts for a convenient and clear visualization of the user’s financial data on income and expenses. We used a third-party library to implement this with material design. This allowed us to visualize data according to native mobile standards and ensure the high performance of the system with support for these elements.

2. Support for light and dark app theme

The application had to support light and dark modes depending on the user’s preferences. MAUI has made it easy for us to achieve this with a custom markup extension. All we had to do was specify those resources that should be adapted depending on the appearance mode configured on the user’s device.

MAUI financial app dark and light mode

Light and Dark App Theme on Android and iOS

3. Subscription module

One of the key features of the project was enabling users to manage their subscriptions and schedule regular payments. To implement this module, we chose a third-party library that easily fits into the project’s architecture.

Project results and plans

Relying on our expertise in MAUI app development, the client was able to keep consistency in their tech stack and reuse existing logic. Also, in this case, product support can be provided by a single engineer that helps to cut maintenance costs. 

The client plans to create a desktop version of the application in the near future, and we will be able to achieve this using the same technology stack. This will help accelerate the development process and optimize the budget. 

WHY HIRE MOBIDEV .NET ENGINEERS FOR MAUI APP DEVELOPMENT

Whether you need to migrate an existing application to MAUI, enhance your product functionality, or build an application from scratch, we have flexible cooperation options to meet your needs. This includes tech consulting, team augmentation services, or providing a dedicated development team that will take full responsibility for the successful delivery of your product. 

The MobiDev .NET development team consists of highly skilled engineers with experience in developing complex enterprise-grade applications. We focus on long-term cooperation that can bring the most value to our clients. Combining time-tested .NET technologies with emerging ones, we can help you create a solution that meets your current business goals and will allow you to scale in the future. 

Feel free to contact us to discuss your product development needs and find out how our cross-platform app development services can help you succeed. 

Contents
Open Contents
Contents

READY TO CONFIGURE YOUR .NET MAUI DEVELOPMENT TEAM?

Call or send us a message

+1 916 243 0946 (USA/Canada)

CONTACT US

YOU CAN ALSO READ

Blazor web app development

Blazing a Trail: Web App Development with Microsoft Bla…

React Native App Development Guide

React Native App Development Guide: Challenges and Best…

Flutter App Development Guide

Flutter App Development Guide: Challenges, Best Practic…

We will answer you within one business day