I started with .NET MAUI right at launch in 2022. I’m a .NET developer, not a mobile developer was mainly background is ASP.NET Core, C#, the usual web stack. MAUI’s pitch of “bring your existing .NET skills to mobile and desktop” is exactly what pulled me in. Getting from “I’m excited” to “I have an app running on a device” was its own journey. Here’s what that actually looked like.
1. Just running my first app was almost impossible
I want to be honest because a lot of early content glossed over this: getting a first app to build and run in 2022 was rough. I kept hitting build errors from missing platform tools — workloads that hadn’t installed cleanly, SDKs the tooling assumed were there but weren’t. There was no single obvious fix. It was trial, error, and re-running installs until something finally clicked.
If you’re picking up MAUI today, this part is dramatically better. Workload installation and the first-run experience have had real investment since then. But if your first attempt felt frustrating, that wasn’t you doing something wrong — that was the framework in its early days.
Advice for people starting now: Don’t judge MAUI by the old horror stories (including this one). Try a clean install with current tooling before deciding it’s still as painful.
2. Even basic styling wasn’t obvious at first
Something as simple as changing the app bar color took longer than I want to admit. Coming from web, I expected something closer to CSS-level simplicity. Early MAUI’s styling model wasn’t quite there yet for someone still learning the XAML way of thinking.
What eventually clicked — and what I’d tell any web developer picking this up — is that XAML reads a lot like HTML once it clicks. It’s declarative, readable almost like English, and the code-behind is just C#. Once I stopped trying to force a pure web mental model and let XAML be its own (but familiar) thing, styling stopped being a fight.
3. Understanding how pages connected was one of the good surprises
This is the part I didn’t expect to like as much as I did. Early MAUI made the page-to-page navigation model genuinely easy to follow. Coming from web routing, the way pages connected made intuitive sense pretty quickly. That was one of the first “okay, I get this” moments for me.
**
- Passing data between pages was my biggest wall**
This took the longest. I didn’t know MVVM going in, and figuring out how to pass data cleanly from one page to another was genuinely hard to wrap my head around.
My first real solutions were using MessagingCenter (the old Xamarin.Forms-style pub/sub) and just passing functions/callbacks around. Both worked, but neither was really the idiomatic MAUI way. Eventually I found CommunityToolkit.Mvvm, and while it also took time to click, it was the turning point. Once I understood the MVVM pattern properly — and later used QueryProperty / Shell navigation parameters — data flow between pages stopped being something I dreaded.
If you’re stuck here right now: you’re not missing something obvious. This is a real conceptual jump (especially if MVVM is new), not just a syntax thing. Give yourself permission to build a throwaway solution first (mine were MessagingCenter and function passing) and refactor into proper MVVM once the concept lands.
The biggest shift over these three years hasn’t been any single feature — it’s watching the rough edges smooth out release by release. A concrete example: I used to lean heavily on value converters in XAML just to transform data for display. Now, with Shell’s query parameters, I can pass and use data more directly without reaching for a converter as often. Small thing, but it’s a good marker of how much day-to-day friction has quietly disappeared.
If you’re a student or new .NET developer thinking about MAUI
I’m writing this as a final-year computer engineering student still building alongside coursework — not from some senior-dev ivory tower. If you already know C# and ASP.NET Core, that knowledge transfers more than you’d expect. The early days will still test your patience in places, but the framework in 2025/2026 is a genuinely different, much friendlier experience than the one I walked into in 2022.
If you’re earlier in this journey than me, I’d love to hear where you’re stuck — MVVM, navigation, styling, or something else entirely.
I’m documenting my ongoing work with .NET MAUI and Avalonia as I build more projects. If you’re working with either, I’d love to compare notes.
Top comments (0)