
.NET MAUI vs Flutter — Multi-platform frameworks showdown
July 22, 2022
Here it is — my post for .NET MAUI July
.NET MAUI
.NET MAUI (Multi-platform App UI) is a framework from Microsoft.
✅ 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.
✅ 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
- 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
- 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?