Start Debugging

The MAUI & Xamarin tracker

One bookmark for .NET MAUI and the Xamarin posts that still pay rent.

This pillar collects every post on the site about .NET MAUI and Xamarin.Forms — the MAUI 11 release cycle, the CoreCLR runtime switch, Microsoft Store packaging, the iOS/Android build errors that swallow afternoons, and the Xamarin.Forms posts that still get traffic.

What to read first

For the current release cycle, MAUI mobile is CoreCLR only in .NET 11 Preview 6 is the change to plan for: the Mono escape hatch Preview 4’s CoreCLR-by-default switch left open is gone, and migrating an Android app from Mono to CoreCLR covers the API 24 floor and the MSBuild properties that now break your build. dotnet watch reaching MAUI on Android and iOS is still the biggest day-to-day loop win. Once shipped, tracing Android ANRs back to async void handlers turns Play Console’s native stack into C#.

Migrating off Xamarin.Forms? Start with Migrate from Xamarin.Forms 5.0 to .NET MAUI 11: the full checklist, then migrating a ListView to CollectionView for the trickiest control swap; pair it with packaging for the Microsoft Store when you’re ready to ship. On Android, targeting API level 36 is now required for Play updates, and watch out for the 16 KB page size rejection and the “doesn’t support required ABI” install failure. Greenfield? MAUI vs Avalonia vs Uno Platform settles that fork.

What’s on this page

The list below auto-collects posts tagged with any of: maui, dotnet-maui, xamarin, xamarin-forms. Newest first.

The companion .NET 11 tracker collects the broader release; many MAUI posts overlap.

Index (51 posts)

2026 / 09

  • How to find the async void handlers causing ANRs in a .NET MAUI Android app

    Play Console tells you your ANR rate is over 0.47% and hands you a native stack full of libcoreclr.so frames. Here is how to get from that useless trace to the exact async void event handler that blocked the main thread, using a Looper printer, a SynchronizationContext wrapper that names the state machine, and dotnet-trace over dsrouter.

  • Migrate a .NET MAUI Android app to target Android API level 36

    Google Play required target API 36 from 2026-08-31, with extensions running to 2026-11-01. Here is the full .NET MAUI path from net9.0-android to API 36: the target framework bump, the hardcoded uses-sdk that silently pins you to the old level, edge-to-edge with no opt-out, predictive back, and the large-screen orientation rules.

  • Migrate a .NET MAUI Android app from Mono to CoreCLR in .NET 11

    A step-by-step migration off Mono onto CoreCLR for .NET MAUI on Android: the API 24 floor, the Mono-only MSBuild properties that now break your build, why your APK grew, how to profile the startup regression with dotnet-dsrouter and dotnet-trace, and what a rollback actually looks like now that the Mono path is gone.

2026 / 08

2026 / 07

  • How to use Shell route parameters and query properties for navigation in .NET MAUI 11

    A complete guide to passing data through Shell navigation in .NET MAUI 11: registering global routes, string query parameters, QueryPropertyAttribute vs IQueryAttributable, the URL-decoding asymmetry between the two, single-use ShellNavigationQueryParameters vs the IDictionary overload that leaks, passing data backwards with ..?key=value, and why QueryPropertyAttribute is not trim safe.

  • Migrate AdMob from Xamarin.Forms to .NET MAUI with Plugin.AdMob

    Port your ads layer from Xamarin.Forms to .NET MAUI: what to delete (MTAdmob, custom AdView renderers, Xamarin.GooglePlayServices.Ads bindings), what replaces it in Plugin.AdMob, and a line-by-line API mapping for banner, interstitial, rewarded, rewarded interstitial and app open — plus the singleton-to-DI shift and the UMP consent gap that stops ads serving in the EEA.

  • Monetizing a .NET MAUI app with AdMob (banner, interstitial, rewarded) in 2026

    A practical, end-to-end guide to monetizing a .NET MAUI app with Google AdMob using Plugin.AdMob. Install one NuGet, call UseAdMob(), and wire up banner, interstitial, and rewarded ads — with consent built in via UMP, test ad units, the exact service APIs, preloading patterns, and a production checklist. Tested on .NET 10 / MAUI.

  • How to show native video ads in your .NET MAUI app with Plugin.AdMob

    Plugin.AdMob now renders native video ads. Drop a MediaView into your NativeAdView template, request video with VideoOptions, and wire up the OnVideoStart/Play/Pause/End lifecycle events — including the custom-controls caveat that trips everyone up on AdMob inventory. Full walkthrough with a complete working example, tested on Android with the native video demo unit.

  • MAUI Mobile Is CoreCLR Only in .NET 11 Preview 6: The Mono Escape Hatch Is Gone

    .NET 11 Preview 6 removes the separate Mono path for MAUI on Android, iOS, and Mac Catalyst. CoreCLR is now the only mobile runtime, the UseMonoRuntime escape hatch is closed, and GA is set for November 2026.

  • SkiaSharp 4.0 Ships Stable: 24% Faster GPU Rendering and a Cleaned-Up API

    SkiaSharp 4.148.0 is the first stable v4 release. GPU-heavy UIs render up to 24% faster, CPU shaders run ~6x faster, and the legacy API surface is finally retired. Here is what upgrading actually costs you.

2026 / 05

2026 / 04

2025 / 04

2023 / 11

2020 / 11

2020 / 04

2019 / 09

2019 / 07

2019 / 01

2018 / 04

2018 / 01

2017 / 12

2015 / 09

2015 / 08

All pillars Home