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

11 min read

ALL

How to

Share

.NET MAUI is an advanced cross-platform technology that enables business owners to expand their reach within the .NET ecosystem. As the evolutionary next step of Xamarin.Forms, it offers even more possibilities for creating multifunctional and multiplatform solutions that can address a wide range of business needs. 

If you have chosen MAUI for your project or are in the process of evaluating cross-platform technology alternatives, this article will help you understand what to expect from MAUI app development, what challenges may come your way, and how to handle them.

When to Choose MAUI for Cross-Platform App Development?

.NET MAUI makes it possible to develop applications for a variety of platforms such as iOS, Android, macOS, Windows, and Linux using C# and XAML. Unlike its predecessor Xamarin.Forms, MAUI 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.

Top 4 Cases MAUI is Best Used For

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.

Fast Prototyping

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 significantly save time and deliver solutions faster. .NET MAUI provides a rich set of controls and layouts that can be used to design modern and responsive UI. 

Cross-Platform Mobile Applications

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.

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 compared to other technologies. 

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

Offline Apps and Databases

Perhaps one of the most important advantages of MAUI compared to other cross-platform frameworks is its ability 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 options for local data storage include SQLite, which is 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.

When MAUI is Not the Best Solution

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

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. But 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.

Applications that Require Highly Customizable UI

First of all, you should understand that 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 end up in significant effort for any cross-platform framework. But 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 .Net MAUI? 

If you already have a Xamarin application, you probably face a dilemma about whether you should upgrade to MAUI or not. According to Microsoft, they will stop supporting Xamarin in May 2024. 

So, migrate or not migrate? Our answer is that 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 the issue of scaling and MAUI will be 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

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.

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.

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 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 its own features that, on the one hand, slightly limit the possibilities of UI customization, but on the other hand, 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 such as complex lists and animations. The use of available .NET libraries also significantly expands the range of possible design cases. 

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 skilled developers able to find alternative libraries or build custom solutions to ensure compatibility across all selected platforms.

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. 

Personally, I can’t note in my practice any special difficulties with MAUI application development. These 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 will help you.

MobiDev Case Study: Building Cross-Platform Personal Finance App with .NET MAUI

The task of the project was to build a personal finance management application compatible with both iOS and Android platforms. Since the server part of the product was written using .NET and the client plans to expand the product to a desktop version in the future, we chose MAUI to remain consistent and to be able to reuse certain logic. Also, in this case, product support can be provided by a single engineer.

Key tech challenges:

  • Support for light and dark app theme
  • Provide clear visualization of the client’s financial data
  • Create subscription module

1. 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 developers 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

2. Provide 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 the engineers to visualize data according to native mobile standards and ensure the high performance of the system with support for these elements.

MAUI finance app visualization

3. Create a subscription module

One of the key features of the project was the inclusion of a feature that enables 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.

Future plans

As already mentioned, the client plans to create a desktop version of the application, and we will be able to achieve this using the same technology stack. Also, MAUI has built-in capabilities to create portrait and landscape display elements by making minor adjustments to an existing layout. This feature helps accelerate the development process and minimize its expenses.

Why Hire .NET MAUI Developers at MobiDev

The MobiDev .NET development team consists of highly skilled engineers with experience in developing complex enterprise-grade applications. Whether you plan to build a new product or have a project underway, our experts can join your team at any stage of development. 

Combining proven .NET technologies with innovative ones, we can help you in creating 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 project and find out how our cross-platform app development services can help you succeed. 

Contents
Open Contents
Contents

GET IN TOUCH

Whether you want to develop a new product or update an existing one, we're eager to assist. Call us or fill in the form via CONTACT US.

+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