NFC and Host Card Emulation in .NET MAUI 10: Core NFC and Android HCE (2026)
Ship NFC reader mode on iOS and Android and Host Card Emulation on Android with .NET MAUI 10. Real entitlements, code, and pitfalls from production.
Mobile Tech Lead is written by .NET engineers who ship MAUI apps to the App Store and Google Play every sprint. We publish field notes from real codebases after the deadline lands, so the patterns here have survived TestFlight, Play Console review, and a few angry crash reports. No screenshots of the File → New Project dialog.
Every November the team faces the same question: do we jump to the new .NET MAUI release the week it ships, or wait for the first servicing patch? Our answer has gotten more nuanced since the .NET 8 cycle. We track the dotnet/maui release notes, the Mono runtime changes that land in the iOS workload, and the AndroidX dependency bumps that quietly break binding libraries. Then we map each known issue to a workaround before touching the global.json.
Our upgrade write-ups cover the unglamorous parts: regenerating Resizetizer assets without losing crisp app icons, migrating away from deprecated Handlers, and dealing with the Hot Reload regressions that always sneak into a .0 release. We also benchmark cold start before and after the move, because a faster runtime is wasted if your Shell flyout adds 300ms back.
Most MAUI performance advice on the open web stops at "use CollectionView instead of ListView." That is the easy 10%. The other 90% is profiling a real app with dotnet-trace, reading Instruments time profiles on a physical iPhone, and understanding why your XAML inflation cost doubled after adding a single ControlTemplate. We dig into layout passes, the cost of Bindings versus compiled bindings, and how AOT settings on iOS interact with trimming warnings you have been ignoring.
We also publish concrete numbers. When we recommend switching from a Grid-of-Grids to a custom ILayoutManager, we show the frame timing before and after on a mid-tier Pixel and a four-year-old iPhone, not just a flagship device that hides every sin.
Memory leaks are the silent killer of long-session mobile apps, and MAUI inherits a lot of the historical Xamarin.Forms patterns that leak by default. Event handlers on static services, Page subscriptions that outlive navigation, and platform Handlers that hold strong references back to managed objects are the usual suspects. We walk through reproducing each one with dotnet-gcdump, opening the snapshot in dotMemory or PerfView, and reading the GC roots to find the real culprit.
Our memory series also covers the diagnostics built into recent MAUI releases, including the HandlerDisconnectTracker patterns the team has been pushing, and how to write tests that fail when a page is not collected after navigation. Leaks should be regressions you catch in CI, not Sentry tickets you triage on a Sunday.
Browse the latest articles below for new write-ups every week, or jump into the upgrade and performance archives when you need them. If you would rather read in another language, we publish each article in ten, picked using the same BCP 47 tags your CultureInfo already speaks.
Ship NFC reader mode on iOS and Android and Host Card Emulation on Android with .NET MAUI 10. Real entitlements, code, and pitfalls from production.
Drive .NET MAUI 10 ApplicationDisplayVersion and ApplicationVersion from Git history, then inject them at build time so TestFlight and Play Console stop rejecting your uploads. Full GitHub Actions and Azure DevOps recipes inside.
Build custom haptic feedback in .NET MAUI 10 by calling iOS CoreHaptics and Android VibrationEffect directly. Full platform code, DI wiring, and the API pitfalls that break on iPad, low-power Android, and the iOS Simulator.
Ship iOS Quick Actions and Android app shortcuts from one .NET MAUI 10 codebase, with static, dynamic, and pinned shortcuts, routing, and localization.
FFImageLoading was archived in 2024 and every .NET MAUI 10 team I have worked with has had to pick a replacement. This is the practical breakdown of the alternatives, with the benchmarks and gotchas I hit shipping three production apps.
A working developer guide to CommunityToolkit MediaElement in .NET MAUI 10: install, XAML setup, HLS/DASH streaming, background audio, PiP, and fixes for the errors you will actually hit.
Compare TestFlight, Google Play Internal Testing, and Firebase App Distribution for .NET MAUI 10 apps. Fastlane commands, a GitHub Actions matrix, and a per-layer channel picker for engineering, QA, and pre-launch beta.
Add passkeys to .NET MAUI 10 using iOS AuthenticationServices and Android Credential Manager. Working C# handlers, association files, and a Fido2NetLib backend.
A practical .NET MAUI 10 OAuth walkthrough for Sign in with Apple, Google, and Microsoft, covering WebAuthenticator, MSAL.NET, PKCE, secure token storage, and the App Store review rules that block first submissions.
A hands-on guide to wiring App Attest and the Play Integrity API into a .NET MAUI 10 app. Includes server-side verification, nonces, request hashes, quota planning, and the production pitfalls I've hit shipping this in three apps.
A hands-on comparison of Mopups, The49.Maui.BottomSheet, and native sheet APIs for .NET MAUI 10 with runnable XAML, MVVM plumbing, detents, and the keyboard footguns I hit shipping each one in production.
A hands-on comparison of LaunchDarkly, ConfigCat, and Firebase Remote Config in .NET MAUI 10, with setup code, offline caching patterns, kill-switch design, and CI/CD wiring.
Choose your preferred language to explore our content