Top 10 Things I Love About .NET MAUI
(And a Few Things I Don’t)

Banner for .NET MAUI on eFitLog blog

When I first built eFitLog, it was a humble C# console app running on SQL Server. Later, I moved to SQLite and simplified things, but the app was still PC-only. Taking it mobile meant one of two paths: learning Kotlin for Android and SwiftUI for iOS, or finding a smarter way.

That’s when I found .NET MAUI — and it felt like someone just handed me the keys to a sports car I already knew how to drive.

1. Design & layouts I’m proud of

eFitLog is different from the other workout logs I’ve tried. Many feel like doing taxes in April. eFitLog isn’t like that — it uses clean hierarchy, big tap targets, and a flow that feels natural in the gym. XAML made it approachable: tweak a view once and the changes land on Android and iOS together.

It’s not just pretty; it’s smooth and fast — that same “sports car, 400-horsepower, under the hood” feel across the UI. Credit to the designer — the visuals elevate everything.

2. Responsiveness

In the gym, I don’t want to wait three seconds for a screen to load when I’m logging a set. MAUI makes eFitLog fast — as in “blink and it’s done” fast.

It feels like nothing is happening behind the scenes, but the app is logging data, updating totals, and calculating stats instantly. Big-block engine vibes: smooth and powerful, barely noticeable while it’s working.

3. True cross-platform

What I love most? eFitLog looks and works exactly the same on Android and iOS. The same workout log, milestone popups, and stat charts — no compromises.

With MAUI, I’m not juggling two separate projects or trying to make two designs “look kind of similar.” It’s the same app running on both platforms, written once in C#.

4. IDE comfort

I’ve been in Visual Studio for years, so being able to build Android and iOS apps without leaving it was huge.

Whether I’m debugging on an Android emulator, pushing to my iPhone over the network, or just tweaking spacing, I do it all in the same IDE I use for everything else. No context switching, no “new environment” learning curve — just momentum.

5. Ecosystem and packages

When I needed charts for the Progress Center, I didn’t have to hunt through sketchy repos. I grabbed Syncfusion’s chart controls from NuGet, wired them up, and had professional graphs in less than a day.

C#’s long history means there’s almost always a package or snippet for what I want — local notifications, SQLite helpers, even Lottie animations for milestone celebrations.

6. Adaptability

The core logic from my console version — workout tracking, stat calculations, milestone checks — dropped into MAUI with minimal changes.

Instead of rewriting everything, I focused on mobile-friendly features like scheduling workouts in a calendar and tapping into device notifications. MAUI didn’t just let me adapt my app — it adapted with me.

7. Community help

The MAUI learning curve has its bumps, but the foundation in C# makes a big difference. C# has been around for decades, it’s tried and tested, and that history means you’re never on your own when learning or troubleshooting.

Between Microsoft’s official documentation, training, and the sheer number of active C# communities, help is always close by. Whether I’ve needed clarity on a MAUI control or a quick code example, there’s always been a reliable resource to keep eFitLog moving forward.

8. Extensibility

Want to animate a milestone badge? Done. Add a stats chart? Easy. Trigger a confetti animation on a PR lift? Absolutely.

MAUI lets me tie into device features without abandoning my C# codebase. I’ve added local notifications, theming, animations, and even a paywall for subscriptions without breaking the rest of the app.

9. (Almost) Write Once, Run Everywhere

Yes, I already said cross-platform, but this is worth its own spot. When I add a feature like “next milestone preview” to eFitLog, I write it once, and it works on both Android and iOS.

No separate timelines, no “we’ll add that to iOS next month” delays. One code change, two platforms updated.

10. The “just works” factor

At the end of the day, I took something I already knew — C#, SQLite, Visual Studio — and built a fully functional, polished mobile app for two platforms.

I didn’t have to learn two new programming languages, juggle two separate projects, or compromise on features. MAUI made mobile development not just possible for me, but fun.

A Few Things I Don’t

Hot Reload — Great for minor UI tweaks, not so much for real code changes. Too unreliable to be useful.

Platform-specific quirks — Every now and then, something works perfectly on Android but misbehaves on iOS (and vice versa).

iOS provisioning — Certificates, profiles, entitlements… still as painful as ever (but oh so sweet when success happens).

If I had to sum it up — .NET MAUI didn’t just open the door to mobile development — it kicked the door in, handed me my existing C# code, and said, “Let’s go build something awesome.”

← Back to Blog