Разработка мультитенантного мобильного приложения

Разработка мультитенантного мобильного приложения Мы разрабатываем мультитенантные мобильные приложения, где одна кодовая база обслуживает несколько клиентов (тенантов) с уникальным брендингом, данными и функционалом. За 10+ лет мы накопили опыт реализации таких архитектур для финтеха, ритейла и

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

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

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

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

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

Разработка мультитенантного мобильного приложения

Мы разрабатываем мультитенантные мобильные приложения, где одна кодовая база обслуживает несколько клиентов (тенантов) с уникальным брендингом, данными и функционалом. За 10+ лет мы накопили опыт реализации таких архитектур для финтеха, ритейла и корпоративных платформ. Главная задача — обеспечить полную изоляцию данных и конфигураций, а также гибкость при добавлении новых тенантов. В этой статье разберём основные подходы и их влияние на производительность, безопасность и время вывода на рынок.

Два принципиально разных подхода

Один бинарник, переключение в рантайме. Приложение загружает конфигурацию тенанта при запуске — цвета, логотип, feature flags, API endpoint, тексты. Пользователь видит «Банк А» или «Банк Б» в зависимости от того, через какую ссылку установил приложение или какой домен ввёл. Технически: deep link или QR-код с tenant ID → TenantRepository загружает JSON-конфиг с CDN → ThemeProvider применяет токены → FeatureFlagService включает/выключает экраны. Один APK/IPA в сторе. Минус: брендинг в App Store (скриншоты, иконка) — универсальный, не тенант-специфичный. Google Play это принимает; App Store — нет для B2C, но допустимо для корпоративного MDM.

Отдельные бинарники через автоматизацию сборки. Для каждого тенанта собирается отдельный APK/IPA с уникальным applicationId/bundleIdentifier, иконкой, названием и конфигом. Fastlane Lanes + BuildFlavors (Android) + Xcode Schemes/Targets (iOS). Тенант добавляется через новый flavor в build.gradle.kts и новый Xcode target — без изменения кода. CI собирает все варианты параллельно.

Какой выбрать — зависит от требований к App Store presence. Если каждому тенанту нужно своё приложение в сторе — второй подход неизбежен.

Сравнение подходов:

Критерий Один бинарник Отдельные сборки
Приемка в App Store Ограниченно (B2B/MDM) Полная
Сложность разработки Ниже Выше
Время добавления тенанта Дни (настройка конфига) Дни + автоматизация
Гибкость брендинга Средняя Полная

Почему изоляция данных — критический аспект?

Изоляция данных — критический аспект. Утечка данных одного тенанта к другому — катастрофа. На уровне мобильного приложения:

tenant_id сохраняется в Keychain (iOS) / EncryptedSharedPreferences (Android) при первом входе. Все API-запросы включают tenant-специфичный заголовок или subdomain (tenant-a.api.example.com). Локальная БД — либо отдельная SQLite-база на тенанта, либо префиксирование таблиц.

При смене тенанта (если поддерживается) — полный сброс локального кэша, очистка Keychain-записей, повторная аутентификация. Нельзя допустить ситуацию, когда UserRepository вернёт данные от предыдущего тенанта из кеша.

Мы гарантируем изоляцию на уровне кода и инфраструктуры — каждый тенант использует отдельные credentials и keychain entries.

Feature flags и конфигурация

Конфиг тенанта — больше чем тема. Типичная структура:

{ "tenant_id": "bank-a", "theme": { "primary": "#1A73E8", "logo_url": "..." }, "features": { "transfers_enabled": true, "crypto_tab": false, "biometric_required": true }, "api_base_url": "https://bank-a.api.example.com", "support_phone": "+7-800-...", "terms_url": "https://bank-a.example.com/terms" } 

Feature flags управляют видимостью целых разделов навигации и поведением бизнес-логики. FeatureFlagService — single source of truth, все компоненты обращаются только к нему. Флаги кешируются локально с TTL, обновляются в фоне при запуске.

Как feature flags ускоряют адаптацию приложения под клиента?

С помощью feature flags можно включить или отключить функцию для конкретного тенанта без выпуска нового билда. Это сокращает время релиза с недель до минут. Например, если один клиент просит скрыть криптовалютный раздел, достаточно изменить флаг в конфиге — остальные тенанты не затронуты.

Тема (theming). В Flutter — ThemeData с кастомными ColorScheme и TextTheme, MaterialApp(theme: TenantTheme.fromConfig(config)). В React Native — Context с токенами через StyleSheet или styled-components. Динамические шрифты — через @font-face (RN) или FontLoader (Flutter). Иконки — SVG с перекрашиванием через colorFilter или спрайт-пак на тенанта.

Аутентификация и авторизация

Каждый тенант может иметь свой Identity Provider: один использует собственный SSO (OAuth 2.0 + PKCE), другой — корпоративный SAML через мобильный прокси, третий — простую email/password аутентификацию. AuthStrategy — интерфейс с реализациями под каждый тип. AppAuth (iOS/Android) для OAuth PKCE — стандарт, рекомендуемый RFC 8252 для мобильных клиентов.

Как реализовать аутентификацию для разных Identity Providers?

Мы используем абстрактную фабрику AuthStrategyFactory, которая на основе tenant ID возвращает нужную реализацию. Это позволяет подключать новый IdP без изменения основного кода. Тестирование каждой стратегии изолировано — утечка токенов между тенантами исключена.

Кейс. White-label финтех-платформа: 12 тенантов — банки и МФО. Один бинарник в Google Play, отдельные IPA через Apple Business Manager для корпоративных клиентов. Конфиг тенанта загружается с CDN (CloudFront) при первом запуске и кешируется в EncryptedSharedPreferences/Keychain с 24h TTL. Feature flags управляют 23 функциями. Каждый тенант имеет изолированную базу данных на бэкенде, мобильный клиент использует tenant-subdomain для всех запросов. Среднее время добавления нового тенанта после настройки инфраструктуры — 4 часа (создание конфига + Fastlane lane + CI pipeline). Благодаря такому подходу платформа сократила время вывода нового клиента на рынок на 40% по сравнению с монолитным приложением.

Что входит в работу

При заказе разработки мультитенантного мобильного приложения вы получаете:

  • Архитектурный документ с выбором стратегии (один бинарник / отдельные сборки).
  • Настроенную CI/CD-инфраструктуру (Fastlane, GitHub Actions, CodeMagic).
  • CDN для конфигов и обновлений feature flags.
  • Интеграцию с tenant-specific Identity Provider.
  • Код с тестами изоляции данных.
  • Инструкцию по добавлению нового тенанта (playbook).
  • Пост-релизную поддержку на 1 месяц.

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

Масштаб Ориентировочные сроки
Мультитенант с брендингом, один бинарник 10–16 недель
Отдельные сборки на тенанта (flavor pipeline) +3–5 недель к базовой разработке
Сложный feature flag + auth strategy 5–9 месяцев (полный продукт)

Стоимость рассчитывается индивидуально. Ключевой вопрос при оценке — количество тенантов, различия в их бизнес-логике и требования к App Store присутствию.

Свяжитесь с нами для консультации по архитектуре вашего мультитенантного приложения. Закажите разработку — получите надёжное решение с гарантией изоляции и масштабирования.