Updated Jun 23, 2026

.NET MAUI From Zero

.NET MAUI (Multi-platform App UI) is how C# developers build native apps for Android, iOS, macOS, and Windows from one codebase. It's the evolution of Xamarin.Forms, rebuilt on .NET: you write your UI and logic once, and MAUI renders it with each platform's native controls. If you already know C#, MAUI is your route into mobile and desktop without learning Swift, Kotlin, and a separate Windows stack.

The mental model is two layers tied by a pattern. The UI is a tree of controls, usually described in XAML (a declarative markup) with a C# code-behind — a page holds layouts, layouts hold controls. The logic lives in a ViewModel, and the two are joined by data binding (the MVVM pattern): the View binds to properties and commands on the ViewModel, so UI and logic stay decoupled and testable. Hold "XAML describes the UI, a ViewModel holds the state and behavior, and binding wires them together," and MAUI's moving parts fall into place.

📝 This teaches the framework — it assumes you know C#: classes, properties, events, async/await, and interfaces (C# From Zero). MVVM and binding echo other component UIs (Blazor is the web sibling), and it consumes ASP.NET Core APIs. MAUI builds native apps, so examples are shown as XAML/C# rather than run on the page.

How to read this

Read in order — it builds one small app (a cross-platform notes app: a list, a detail/edit page, save and delete) from a single page to a navigable, MVVM-structured, API-aware app. Phases carry difficulty badges.

The phases

Part 1 — The UI (🟢 Basic → 🟡)

  1. What MAUI Is & Your First App 🟢 — one codebase, native targets, XAML + code-behind, and a running app.
  2. XAML & Layouts 🟡 — pages, StackLayout/Grid, and arranging controls.
  3. Controls & Data Binding 🟡 — common controls, {Binding}, and BindingContext.

Part 2 — Real structure (🟡 → 🔴) 4. The MVVM Pattern 🔴 — ViewModels, INotifyPropertyChanged, commands, and the CommunityToolkit.Mvvm. 5. Navigation with Shell 🟡 — pages, routes, and moving between screens. 6. Data & Calling APIs 🔴 — HttpClient, JSON, and local storage (Preferences/SQLite).

Part 3 — Ship it (🟡 → 🟢) 7. Platform Features & Deployment 🟡 — sensors/permissions, per-platform code, and building for the stores. 8. Where to Go Next 🟢 — MAUI vs Flutter/React Native, Blazor Hybrid, and what to build.

The throughline: XAML describes the UI, a ViewModel holds state and behavior, and data binding wires them — one codebase, native everywhere. Hold that and MAUI is approachable.


Phase 1: What MAUI Is & Your First App →