Flutter or Maui - Which is better? .NET Maui or Google's Flutter?

preview_player
Показать описание

Welcome back to StartupHakk! Here at StartupHakk, we turn beginners into full-stack developers in just 3 months!
For the past few years, I have been developing both small and large Flutter applications. Flutter is an amazing framework that allows for the quick development of cross-platform apps. Initially, it was just another tool for me to experiment with, but now it’s my primary choice for new mobile projects without any hesitation.

So I love Flutter. I have used it for a lot of our applications.

As a .NET developer, I find it surprising that I never took the time to explore Xamarin for mobile development. However, .NET MAUI is slowly gaining traction, which is essentially a rebranded version of Xamarin. So I recently experimented with it and as a seasoned .NET dev, I instantly felt at home. It’s like riding a bicycle. C#, Visual Studio, MVVM, Nuget, all that works here as well. It’s cool to know that your existing knowledge can open doors to new platforms with a new framework.

The big question now is: Is .NET MAUI better than Flutter?

I’d like to give you my opinion on that. And please, tell me yours. But now, let’s go!

The good things about flutter:
✅ Huge amount of widgets built into the SDK to create user interfaces.

✅ You only need one programming language for UI and business logic, which is Dart. Some people say it’s not a good language, but it has received many updates in the past and is constantly evolving.

✅ Several major updates per year, clear roadmap, backed by Google.

✅ Targets iOS, Android, Windows, macOS, Linux, web, and embedded platforms.

✅ Hot Reload/Hot Restart feature works well.

✅ Rising marketshare, loved by developers.

✅ It feels like you get things done quickly.

✅ Huge package repository with many well-maintained entries.

What my kids would call "mid" about Flutter:
⚠️ Build time could be faster

⚠️ File size of apps could be smaller

⚠️ Bad app performance on web compared to iOS and Android

⚠️ Setting up can be difficult since additional tools are required for the platforms. However, the documentation is detailed and will guide you through the process.

⚠️ Frequent updates means chances for breaking changes are high.

⚠️ Platform features need to be implemented by oneself if they are not part of the framework or added via a 3rd party package.

⚠️ Many open issues on GitHub, but also bigger development team that puts in the effort needed.

Now the bad and ugly:
⛔ State management can be messy. There are so many options, frameworks, and levels of flexibility, but no state-of-the-art solution has been found yet.

🔔 Get a short summary of my Medium content on the 1st of every month in your inbox. Save time and pick what you like to read!

So here is what I think about .NET MAUI:
✅ C#, XAML, and Visual Studio are great. They may not be the absolute best or the fastest, but they have demonstrated their capabilities over the years.

✅ For experienced WPF or UWP developers, .NET MAUI will feel instantly familiar. They already know basic concepts like creating UIs or controls, how data-binding works, working with MVVM, and useful libraries.

✅ The Fluent design looks nicer than Material design or Apple design. Of course, you can implement any design system on any platform, but the .NET MAUI look and feel wins out of the box for me.

✅ You have access to a huge number of Nuget packages. Everything from .NET Standard 2.0 can be used in general.

✅ Sufficient amount of controls provided by default. Via Nuget you have access to many others like those of the .NET MAUI Community Toolkit.

✅ Good documentation about the framework.

✅ Tooling setup is super easy. Download Visual Studio, select the .NET MAUI workload, and wait for the installation to finish. That’s it.

What my kids would rate as a "5" for MAUI
⚠️ XAML Hot Reload is quite nice, but when you make specific changes, the app needs to be recompiled completely. Also, it doesn’t work when you edit C# code.

⚠️ If you are familiar with WPF or UWP, you will notice the similarities and the differences. And they will drive you crazy in the beginning.

And the back and ugly:
⛔ Build time is too high. Since the Hot Reload feature is not perfect, frequent building is required. It will become annoying over time, I promise.

⛔ There are lots of open bugs in the official repository. I already criticized this about a year ago, and although a lot has been happening, there seem to be even more annoying bugs arising, especially for Android at the moment.

⛔ No linux support. How can you claim to be cross-platform when Linux is missing? But yeah, there’s Tizen. And who doesn’t use that?

⛔ Beginners won’t choose it for quick prototyping when having little experience or when special controls are needed. You can get things done quicker with other frameworks.

#coding #codingbootcamp #softwaredeveloper #CodeYourFuture
Рекомендации по теме
Комментарии
Автор

I tried Flutter when it was the new kid on the block. It was so much better then other cross-platform stuff back then. But when MAUI started to gain traction, switch was a no-brainer for me. I feel like home as I begun my journey with MS from Visual Basic 6. As I'm not a big fan of XAML bindings, MAUI + Blazor (MudBlazor) is the perfect combo for me.

rafazak
Автор

I will learn both.. maui & flutter

mitotv
Автор

I have two vehicles from different brands but in the same segment. If I am going to compare them, I must do so by showing their performance on the road. Which one starts faster, which one brakes first, which one consumes more fuel, etc. I would not do so by talking about their performance, as it is an assessment without any supporting evidence.

Formulaz
Автор

.net Maui for me. Have really enjoyed the flexibility of building business applications.

philipjohndekock
Автор

MAUI is the future for Desktop+Mobile application dev

soumyadipmajumder
Автор

I’ve used both and would hands down choose Flutter every time.

DevLife
Автор

Out of all the different languages I've used, I've used c# the most (6 years). However, I'd pick flutter. I have built a few apps with flutter and I really like that everything is code instead of bringing together markup language and styling. I feel as though I can build any application in flutter because it gives you more control than any ui framework I've used (not including games).

I use MVVM with Provider for state management and Beamer for routing. State management has never been an issue for me.

PaulPetersVids
Автор

I've used both platforms, but my preference is .NET. For me, it just feels more inclusive.

paulleroy
Автор

Brilliant, to the point, your content caters for mature developers like myself, hard to find similar content.

mycloud
Автор

Super valid concerns. As an entrepreneur we need it to be good now. And if it isn't good now, the risk of building on it is very high that you will be accepting future technical debt.

STARTUPHAKK_sh
Автор

I don’t know why, but I am a beginner and I just want to try .NET Maui.

FreeBoyJB
Автор

Interesting location for shooting a youtube video! I've done a few experimental apps in flutter and I do really like it, but as a primary .NET developer I'm going to give MAUI a whirl for my next project. I like that it uses native components and that it has the power of an established .NET standard ecosystem.

rlangton
Автор

sooo, which one should i go to if i want to make systems for both desktop and mobile? i am thinking of working as a freelancer or something similar with my team friends. (like 1 to 3 friends max in the next 2 to 3 years)
my ideas currently need both desktop and mobile app.
i have learned the basics of flutter like widgets and such, with .NET currently because of my full time job, i am learning .NET API, console apps, and i quite like both frameworks. i don't have a preference that's why i am asking, because i am still very new to the industry and frameworks. your help will be apricated, thank you
( i also learned Laravel and used it for my final year project and i loved the coding experience)

Zheliya
Автор

Nice summary. I am getting into maui but I dont like xaml, am using Maui Reactor for an MVU approach like Flutter. Am pretty happy so far. But lets see how pushing to prod goes...

BrendanAlexander
Автор

I'll just avoid maui for the time being I think. Will check out avalonia ui instead. I just don't want to deal with something that doesn't support linux.

RenatoFontes
Автор

Thanks for sharing details. But I will prefer react. It has matured enough as compared to other js library or Framework

lalitkumarshahi
Автор

Maui because previous development exp was in Xamarin.

Foxfried
Автор

I loved c# and MAUI. But native it is better than any cross platform. So kotlin for Android and swift for iOS

greeksinmars
Автор

Flutter + Dart also equals constructor hell. This is very jaring at first. Another one is the layout system, definitely a learning curve there.

willfawthrop
Автор

It’s funny how „hot reload/refresh” is must now. For any native mobile developer it’s nice to have but I prefer to debug bigger changes instead of continuously seeing small changes. State can go out of sync with bigger change. As I remember from UWP days, I used to disable preview in VS because building layout was so intuitive.

darenciano