Xamarin App Support and Migration to .NET MAUI

A legacy Xamarin project either needs support or a transition to a modern stack. <cite>Microsoft documentation confirms</cite> Xamarin.iOS and Xamarin.Android provide direct bindings to native SDKs — no bridge, no intermediate runtime except Mono. This sets them apart from React Native or Cordova: y

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Xamarin App Support and Migration to .NET MAUI
Complex
from 2 weeks to 3 months

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

A legacy Xamarin project either needs support or a transition to a modern stack. Microsoft documentation confirms Xamarin.iOS and Xamarin.Android provide direct bindings to native SDKs — no bridge, no intermediate runtime except Mono. This sets them apart from React Native or Cordova: you work with the same UIViewController, UITableView, RecyclerView, ConstraintLayout as in native development, just in C# instead of Swift/Kotlin. Xamarin.Forms adds a shared UI layer on top, but at the cost of losing direct control over each native widget.

Xamarin no longer receives updates from Microsoft, so support and migration require specialized experience. Our team maintains Xamarin-based applications and performs porting to .NET MAUI with documentation of each step and a 30-day warranty. Experience — over 30 projects on Xamarin over 5 years, saving clients up to 40% compared to maintaining two native teams. Typical migration costs start from $5,000 for small apps, with annual savings of up to $20,000 by consolidating to a single MAUI codebase. Our support packages start at $2,500 per year for small apps with up to 5 dependencies.

Supporting existing Xamarin projects

Maintaining a legacy Xamarin app today is a specific task. Key issues:

Outdated NuGet packages. Some packages are no longer updated for Xamarin.iOS 16+ and Android API 33+. A typical example is Xamarin.Forms.GoogleMaps: the last stable release was issued before active support ended, and on Android 13 runtime crashes occur due to changes in geolocation permissions. We must fork, patch, or replace with alternatives.

iOS breaking changes.** Apple continues to tighten requirements for privacy manifests — any app using NSUserDefaults, FileTimestamp, SystemBootTime and other APIs without PrivacyInfo.xcprivacy gets warnings when uploading to App Store Connect, then rejection. In Xamarin.iOS, PrivacyInfo.xcprivacy is added manually as a BundleResource.

Mono runtime and ARM64. Xamarin.iOS compiles to native ARM64 via AOT — no issues there. Xamarin.Android uses a Mono runtime with JIT on ARM, which means larger app size and slow cold start — .NET MAUI on .NET 8 AOT is 1.5x faster in cold start speed.

What's included in Xamarin app support?

When ordering support, we provide:

  • Updating target SDKs (TargetFramework, minSdkVersion/targetSdkVersion)
  • Patching dependencies and forking outdated packages
  • Adding PrivacyInfo.xcprivacy for iOS
  • Fixing deprecated APIs (e.g., UIWebViewWKWebView)
  • Auditing permissions for Android 13/14 with the new model (READ_MEDIA_IMAGES, POST_NOTIFICATIONS)
  • Configuring CI for Xamarin: msbuild / xcodebuild via Azure DevOps or GitHub Actions with Fastlane
  • Documenting all changes and providing a report

We train your team to work with the updated code. After the first year of support, maintenance costs decrease by an average of 25%. Contact us for a free audit of your project.

Why migrate from Xamarin to .NET MAUI?

Migration is not just running dotnet-upgrade-assistant. Yes, Microsoft provided a tool with the command upgrade-assistant upgrade --non-interactive — it rewrites csproj, updates namespaces from Xamarin.* to Microsoft.Maui.*, but requires manual fixes in 30–50% of cases. The decision to migrate depends on the app's future: if you plan active development, .NET MAUI is the better choice.

The migration process consists of five stages:

  1. Code audit – assess the workload, identify custom renderers, DependencyService, Xamarin.Essentials.
  2. Run upgrade-assistant – automatic update of project files and initial refactoring.
  3. Manual refinement – replace Renderer with Handler, translate platform-specific code, update build configurations.
  4. Testing – test on real devices (iOS 16+, Android 13+), including scenarios for push, deep linking, in-app purchase.
  5. Deployment – publish to TestFlight and Google Play Console, set up monitoring.

The most work-intensive parts of porting:

  • Replacing Renderer with Handler
  • Translating Xamarin.Essentials to MAUI Essentials (APIs are compatible, but namespaces changed)
  • Working with platform-specific code in DependencyService — in MAUI this is replaced by partial class or native MauiProgram.cs hooks.

Comparison Xamarin vs .NET MAUI

Parameter Xamarin .NET MAUI
UI framework Forms (shared) + native Unified MAUI with Handler
Performance Mono JIT (Android) .NET 8 AOT (both)
App size Larger (Mono runtime) Smaller (NativeAOT) — up to 50% smaller
Support Ended Active, LTS
Migration tools dotnet-upgrade-assistant
Cold start speed Slower 1.5x faster

Xamarin.Forms is significantly outperformed by .NET MAUI — cold start is 30–40% slower on Android, which is critical for users.

What are the main migration stages?

Stage Duration Description
Audit 1–2 weeks Check codebase, identify dependencies and risks
Automatic update 1–2 days Run upgrade-assistant, update csproj
Manual refinement 2–8 weeks Replace renderers, adapt platform code
Testing 1–2 weeks Regression tests, UI tests, manual testing on devices
Deployment and documentation 3–5 days Publish, hand over code, guide for further support
Example: Migration cost for a medium app

A medium app with 10 screens and 3 custom renderers: audit $2,000, automatic update $500, manual refinement $6,000, testing $2,000, deployment $1,000 — total $11,500. Typical savings from consolidating two native teams: $20,000/year.

Transition timelines range from 4 weeks (small app without custom renderers) to 3–4 months (large product with deep native integration). Cost is calculated individually after auditing the existing code and assessing the volume of changes.

Typical mistakes when migrating Xamarin to MAUI

  • Forgetting to update all DependencyService to partial class — app crashes on first access to platform service.
  • Not adding PrivacyInfo.xcprivacy — rejection in App Store.
  • Leaving outdated packages like Xamarin.Essentials — they need to be replaced with Microsoft.Maui.Essentials.
  • Not updating ProGuard/R8 build configuration (Android) — may cause shrink-removal errors.

Get a consultation on your Xamarin project. We will assess the scope, risks, and timelines. Contact us — we will conduct a free code audit and offer options: support or turnkey migration.