Кроссплатформенная разработка мобильного приложения на Xamarin

Унаследованный Xamarin-проект требует либо поддержки, либо миграции на современный стек. Xamarin.iOS и Xamarin.Android предоставляют прямые биндинги к нативным SDK — без bridge, без промежуточного рантайма кроме Mono. Это отличает их от React Native или Cordova: вы работаете с теми же `UIViewControl

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Кроссплатформенная разработка мобильного приложения на Xamarin
Сложный
от 2 недель до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Унаследованный Xamarin-проект требует либо поддержки, либо миграции на современный стек. Xamarin.iOS и Xamarin.Android предоставляют прямые биндинги к нативным SDK — без bridge, без промежуточного рантайма кроме Mono. Это отличает их от React Native или Cordova: вы работаете с теми же UIViewController, UITableView, RecyclerView, ConstraintLayout, что и при нативной разработке, просто на C# вместо Swift/Kotlin. Xamarin.Forms добавляет общий UI-слой поверх, но за счёт потери прямого контроля над каждым нативным виджетом.

Xamarin больше не получает обновлений от Microsoft, поэтому поддержка и миграция требуют специализированного опыта. Наша команда сопровождает Xamarin-проекты и проводит миграцию на .NET MAUI с документацией каждого этапа и гарантией 30 дней. Опыт — 30+ проектов на Xamarin за 5 лет работы, что позволяет экономить клиентам до 40% по сравнению с содержанием двух нативных команд.

Как поддерживать существующие Xamarin-проекты?

Сопровождение Xamarin-приложения сейчас — специфическая задача. Основные проблемы:

Устаревшие NuGet-пакеты. Часть пакетов более не обновляется под Xamarin.iOS 16+ и Android API 33+. Типичный пример — Xamarin.Forms.GoogleMaps: последний стабильный релиз был выпущен до прекращения активной поддержки, и на Android 13 возникают runtime crashes из-за изменений в разрешениях геолокации. Приходится форкать, патчить или заменять альтернативой.

iOS breaking changes. Apple продолжает ужесточать требования к privacy manifests — любое приложение, использующее NSUserDefaults, FileTimestamp, SystemBootTime и ряд других API без PrivacyInfo.xcprivacy, получает предупреждения при загрузке в App Store Connect, а затем отклонение. В Xamarin.iOS PrivacyInfo.xcprivacy добавляется вручную как BundleResource.

Mono рантайм и ARM64. Xamarin.iOS компилирует в нативный ARM64 через AOT — здесь всё хорошо. Xamarin.Android использует Mono runtime с JIT на ARM, что означает больший размер приложения и медленный cold start — на 30–40% медленнее, чем в .NET MAUI на .NET 8 AOT.

Что входит в поддержку Xamarin-приложения?

При заказе поддержки мы предоставляем:

  • Обновление целевых SDK (TargetFramework, minSdkVersion/targetSdkVersion)
  • Патчинг зависимостей и форки устаревших пакетов
  • Добавление PrivacyInfo.xcprivacy для iOS
  • Исправление deprecated API (например, UIWebViewWKWebView)
  • Аудит разрешений под Android 13/14 с новой моделью READ_MEDIA_IMAGES, POST_NOTIFICATIONS
  • Настройка CI для Xamarin: msbuild / xcodebuild через Azure DevOps или GitHub Actions с Fastlane
  • Документирование всех изменений и предоставление отчёта

Мы обучаем вашу команду работе с обновлённым кодом. После первого года поддержки затраты на обслуживание снижаются в среднем на 25%. Свяжитесь с нами для бесплатного аудита вашего проекта.

Как происходит миграция на .NET MAUI?

Миграция — это не просто запуск dotnet-upgrade-assistant. Да, Microsoft предоставила инструмент с командой upgrade-assistant upgrade --non-interactive — он переписывает csproj, обновляет namespace с Xamarin.* на Microsoft.Maui.*, но требует ручной правки в 30–50% случаев.

Процесс миграции состоит из пяти этапов:

  1. Аудит кода – оценка объёма работ, выявление кастомных рендереров, DependencyService, Xamarin.Essentials.
  2. Запуск upgrade-assistant – автоматическое обновление файлов проекта и начальный рефакторинг.
  3. Ручная доработка – замена Renderer на Handler, перевод платформозависимого кода, обновление конфигураций сборки.
  4. Тестирование – проверка на реальных устройствах (iOS 16+, Android 13+), в том числе сценариев push, deep linking, in-app purchase.
  5. Деплой – публикация в TestFlight и Google Play Console, настройка мониторинга.

Наиболее трудоёмкие части миграции:

  • Замена Renderer на Handler
  • Перевод Xamarin.Essentials на MAUI Essentials (API совместимы, но пространства имён изменились)
  • Работа с платформозависимым кодом в DependencyService — в MAUI это заменяется partial class или нативными MauiProgram.cs хуками.

Сравнение Xamarin и .NET MAUI

Параметр Xamarin .NET MAUI
UI-фреймворк Forms (общий) + нативные Единый MAUI с Handler
Производительность Mono JIT (Android) .NET 8 AOT (оба)
Размер приложения Больше (Mono runtime) Меньше (NativeAOT)
Поддержка Завершена Активная, LTS
Инструменты миграции dotnet-upgrade-assistant
Скорость холодного старта Медленнее на 30–40% Быстрее

Xamarin.Forms проигрывает .NET MAUI по скорости холодного старта на 30–40% на Android, что критично для пользователей.

Основные этапы миграции

Этап Длительность Описание
Аудит 1–2 недели Проверка кодовой базы, выявление зависимостей и рисков
Автоматическое обновление 1–2 дня Запуск upgrade-assistant, обновление csproj
Ручная доработка 2–8 недель Замена рендереров, адаптация платформного кода
Тестирование 1–2 недели Regression-тесты, UI-тесты, ручное тестирование на устройствах
Деплой и документация 3–5 дней Публикация, передача кода заказчику, инструкция по дальнейшей поддержке

Сроки миграции — от 4 недель (небольшое приложение без кастомных рендереров) до 3–4 месяцев (крупный продукт с глубокой нативной интеграцией). Стоимость рассчитывается индивидуально после аудита существующего кода и оценки объёма изменений.

Типичные ошибки при миграции Xamarin на MAUI

  • Забывают обновить все DependencyService на partial class — приложение падает при первом доступе к платформенному сервису.
  • Не добавляют PrivacyInfo.xcprivacy — отклонение в App Store.
  • Оставляют устаревшие пакеты вроде Xamarin.Essentials — их нужно заменять на Microsoft.Maui.Essentials.
  • Не обновляют конфигурацию сборки ProGuard/R8 (Android) — могут возникнуть ошибки shrink-удаления классов.

Получите консультацию по вашему Xamarin-проекту. Оценим объём работ, риски и сроки. Свяжитесь с нами — мы бесплатно проведём аудит кода и предложим варианты: поддержка или миграция под ключ.