.NET MAUI vs Flutter — Multi-platform frameworks showdown

.NET MAUI vs Flutter — Multi-platform frameworks showdown

July 22, 2022

Here it is — my post for MAUI July

MAUI

MAUI (Multi-platform App UI) is a framework from Microsoft.

Docs

Pros:

  • .NET — MAUI is built on to the .NET ecosystem. This means .NET developers will feel at home and be able to use their favorite Nuget packages

Cons:

  • Immature — Released in May 2022, MAUI hasn't had a chance to be put to the test

Flutter

Built, maintained and used by Google, Flutter boasts the ability to deploy to mobile, web, and desktop from a single codebase.

Docs

Pros:

  • Maturity — Flutter 1.0 was launched in December 2018 and has had time to build a community
  • More supported platforms — Runs on Linux 🐧

Cons:

  • Dart — To build Flutter apps, developers will need to learn a new language.

🤔 The key differences

These are the important considerations when deciding between MAUI and Flutter.

  • Web Deployment: Flutter apps can be deployed to the web. This isn't possible with MAUI but you can create a solution that shares Blazor UI code between a Blazor app and MAUI app.
    See Blazor Hybrid
  • Markup Language: Flutter doesn't have a markup language — All UI is defined in code (Dart). MAUI lets developers define UI in XAML.
    More info: Flutter FAQ
  • Native UI: Using Flutter without any extra configuration, your UI will look great on Android, but out of place on all other platforms. MAUI apps use native components and look at home on all supported platforms. It's possible to make Flutter apps look native on iOS using the Cupertino widgets, but this is extra work developers don't need to do with MAUI.

👎 Flutter app looks out of place on iOS

👍 iOS MAUI App uses native components

📸 Which is more popular?

Google Trends comparison of MAUI and Flutter

Flutter seems to be far more popular than MAUI. This is expected as MAUI has only been generally available since May.

Note: I used ‘.net maui' instead of ‘maui' to avoid confusion between Maui, the Island in Hawaii, and Maui, the Disney movie character. This could have impacted the results.


🧑‍💻 Development experience

MAUI

Docs

  • Installation: At the time of writing this, installing MAUI is only documented for Windows. Visual Studio 2022 makes installation very easy.
  • Hello World: You can create new apps using dotnet new maui or through VS 2022.
  • Debugging: You can debug or run your MAUI app using dotnet run, but the best dev experience will be using VS 2022.
  • IDE: VS 2022 is recommended, but I found JetBrains Rider supports MAUI pretty well.

Flutter

Docs

  • Installation: The steps to install Flutter were easy. The process is well documented for Windows, macOS, Linux, and even ChromeOS!
  • Hello World: Creating a new Flutter app is as easy as running flutter create new_app in a terminal.
  • Debugging: You can run your Flutter app on any target using the flutter run command.
  • IDE: The Flutter team recommends you use Android Studio or VS Code to build your app.

📖 Summary

MAUI and Flutter are both strong competitors in the cross-platform app space, but the best option heavily depends on the developer's experience and the application they are building. For example, if you are already a .NET developer, learning MAUI will be easier than Flutter. From personal experience, I found that writing UI code in Dart is easier than in XAML, but I would still choose MAUI because it is a part of the .NET ecosystem.

Let me know what you think of MAUI and Flutter. What do you prefer?