4 ms·
My Opinion: If you have nothing too complex (like a "show information only" app consuming simple web apis), you could go for Avalonia UI, MAUI or Uno Platform
by sandreas 3y ago
My Opinion:
If you have nothing too complex (like a "show information only" app consuming simple web apis), you could go for Avalonia UI, MAUI or Uno Platform - because you already know C#, but if you want to build something serious, learn Flutter. Be aware that this is not as easy as it sounds - the core concepts are a bit different from C# and you can't apply your knowledge 1:1.
There is also Ionic / Capacitor (JavaScript), but the apps felt pretty slow and often crashed within my tests.
I'm totally into AvaloniaUI and maybe a bit biased, because I think this is the most promising approach in C# for now, but since this is more a community effort and not supported by microsoft, developer wise it is not the same experience as MAUI. And C# pretty painful, if you plan to use any Hardware Apis (Audio, Video, Camera, Gyroscope, etc.) with the most modern approaches. I haven't tested Uno Platform yet, but it feels like it's somewhere between Avalonia and MAUI...
## Flutter (recommended)
+ cross platform
+ well designed
+ fast
+ good libraries
- steep learning curve
## .NET MAUI
+ easy to learn
+ supported by microsoft (it's not gonna die too soon, although I would love to see go more effort in Avalonia UI)
- Not really cross platform (no linux)
- Weird build errors (microsofts build system is horrible)
- Documentation is not up to date
- Often missing native device / library support (camera, audio-player, Drag&Drop, OnMouseOver, Gestures etc.)
## Avalonia
+ easy to learn
+ promising community effort (quick response times, huge progress)
+ "fast and good" internal design (runs on raspberry framebuffer)
+ cross platform (win, lin, mac, ios, android, wasm)
- documentation (it was a really huge effort to find the best project setup - avalonia.xplat)
- support (small team, huge todo list)
- Often missing native device / library support (camera, audio-player, Drag&Drop, OnMouseOver, Gestures, SecureStorage, etc.)
- Weird build errors (microsofts build system is horrible)
## React native (not recommended)
+ easy to learn
- package hell
- cryptic reoccuring unsolvable issues
- tornato7 3y agoI tried Flutter for the first time for a hackathon and was able to make a pretty nice looking app with it, complete with a custom audio player UI talking to an API, in around 24 hours. Never tried Dart before that. My code wasn't pretty but I'd also say the learning curve is not too steep, especially because the hot reload is so good you can easily iterate and try things.
- sandreas 3y agoI had a completely different experience (maybe I'm a perfectionist or just NOT smart enough). Wrapping my head around futures and the slightly different async/await approach was hard. The component tree had some specific differences and of course I did not know which libraries to take... Well, maybe it is just my personal problem and should not prevent others from using it.
- tornato7 3y agoTo be fair, I made heavy use of GPT-4 helping me figure out Flutter, that makes a huge difference in using a language for the first time.