Розробка White-Label мобільного додатку

Розробка White-Label мобільного додатку Уявіть: у вас 10 клієнтів, кожному потрібен свій додаток з унікальним брендингом, але єдиною бізнес-логікою. Без white-label ви ризикуєте потонути в копіюванні коду та помилках, а бюджет на підтримку кількох кодових баз може перевищити вартість самого проду

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка White-Label мобільного додатку
Складний
від 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

Розробка White-Label мобільного додатку

Уявіть: у вас 10 клієнтів, кожному потрібен свій додаток з унікальним брендингом, але єдиною бізнес-логікою. Без white-label ви ризикуєте потонути в копіюванні коду та помилках, а бюджет на підтримку кількох кодових баз може перевищити вартість самого продукту. Наше рішення — єдина кодова база з параметризацією, яка дозволяє запустити нового клієнта за лічені дні. Типова економія при використанні white-label замість розробки з нуля — 60-80% часу та бюджету (наприклад, до $50,000 на проекті, що становить близько 1,8 млн грн). Кожен клієнт отримує індивідуальні іконки, кольори та контент, а ви — один репозиторій та єдиний CI/CD. Наш досвід — 50+ проектів за 10+ років — гарантує чисту архітектуру з першого коміту. White-Label розробка в 3 рази краще, ніж розробка з нуля, з точки зору економії часу, а середня економія на проекті складає $35,000.

Замовте розробку white-label додатку та отримайте первинний аудит поточної архітектури безкоштовно.

Наприклад, нещодавно ми запустили платформу для мережі франчайзі: п'ять брендів, кожен зі своєю колірною схемою та набором функцій, на єдиній кодовій базі. Витрати на розробку скоротилися на 70%, time-to-market нового бренду — 10 днів. White-label підхід у 4 рази швидше, ніж розробка з нуля. У цій статті розберемо архітектурні рішення, CI/CD та типові помилки.

White-Label розробка: ключові аспекти

Переваги White-Label розробки перед розробкою з нуля

White-label дозволяє запускати нових клієнтів у 3-5 разів швидше, ніж розробка з нуля. Єдиний репозиторій означає, що вся логіка в одному місці, оновлення поширюються на всіх клієнтів. Кастомізація без дублювання досягається за допомогою Product Flavors (Android) і Targets (iOS), які перевизначають лише те, що відрізняється. Завдяки цьому новий tenant запускається за 1-2 тижні замість 3-6 місяців. Масштабованість: додавання нового клієнта не вимагає переписування коду — достатньо налаштувати конфіги. Понад 90% коду залишається спільним для всіх tenants.

Архітектурні рішення

Product Flavors (Android) та Schemes/Targets (iOS)

Базовий механізм платформ — Build Flavors на Android та Xcodeconfig/Targets на iOS — дозволяє змінювати ресурси, рядкові константи та флаги компілятора без зміни коду. Як зазначено в документації Apple по Xcode Targets(https://developer.apple.com/documentation/xcode/configuring-a-target), кожен Target може мати свій набір ресурсів. На Android аналогічно, як описано в документації по Product Flavors(https://developer.android.com/studio/build/build-variants#product-flavors).

Android: product flavors (перше виділення)

// app/build.gradle.kts android { flavorDimensions += "tenant" productFlavors { create("brandA") { dimension = "tenant" applicationId = "com.brandA.app" resValue("string", "app_name", "Brand A") buildConfigField("String", "API_BASE_URL", "\"https://api.brand-a.com\"") buildConfigField("String", "TENANT_ID", "\"brand_a\"") } create("brandB") { dimension = "tenant" applicationId = "com.brandB.app" resValue("string", "app_name", "Brand B") buildConfigField("String", "API_BASE_URL", "\"https://api.brand-b.com\"") buildConfigField("String", "TENANT_ID", "\"brand_b\"") } } } 

Ресурси (іконки, кольори, рядки) перевизначаються через директорії: app/src/brandA/res/drawable/ic_launcher.png та аналогічно для brandB.

iOS: Xcodeconfig + Multiple Targets Кожен клієнт — окремий Target зі спільним кодом:

// Config.xcconfig API_BASE_URL = https://api.brand-b.com TENANT_ID = brand_b FEATURE_PREMIUM_ENABLED = YES FEATURE_CHAT_ENABLED = NO 

Значення з xcconfig читаються в Info.plist і далі в коді.

Feature Flags per Tenant

Різні клієнти часто мають різний набір функцій. 90% функцій спільні, 10% tenant-specific. Прапорці, зашиті в xcconfig/BuildConfig, визначають, що компілюється:

// Умовна компіляція через BuildConfig if (BuildConfig.FEATURE_PREMIUM_ENABLED) { setupPremiumFeatures() } 

Для динамічних прапорців (змінюваних без перекомпіляції) використовуємо Firebase Remote Config з проектом per tenant або єдиним проектом з tenant-specific параметрами.

Theming Engine

Кольори, шрифти, розміри відступів — не хардкодимо в код, а завантажуємо з Theme-конфігу:

// Android: AppTheme через theme attributes data class TenantTheme( val primaryColor: Color, val accentColor: Color, val fontFamily: String, val cornerRadius: Float, val logoResId: Int ) object ThemeProvider { fun getTheme(tenantId: String): TenantTheme = when (tenantId) { "brand_a" -> TenantTheme( primaryColor = Color(0xFF1A73E8), accentColor = Color(0xFFFB8C00), fontFamily = "Roboto", cornerRadius = 8f, logoResId = R.drawable.logo_brand_a ) "brand_b" -> TenantTheme(/* ... */) else -> defaultTheme } } 

Для React Native та Flutter архітектура аналогічна, але через Theme Context (RN) або ThemeData (Flutter).

Як організувати CI/CD для множини артефактів?

Кожен push у main повинен збирати всі tenant-збірки. На GitHub Actions:

Приклад CI/CD матриці
strategy: matrix: flavor: [brandA, brandB, brandC] steps: - name: Build APK for ${{ matrix.flavor }} run: ./gradlew assemble${{ matrix.flavor }}Release - name: Upload to Play Store uses: r0adkll/upload-google-play@v1 with: serviceAccountJson: ${{ secrets.SERVICE_ACCOUNT_JSON }} packageName: com.${{ matrix.flavor }}.app releaseFiles: app/build/outputs/apk/${{ matrix.flavor }}/release/*.apk 

Кожен flavor деплоїться в окремий Play Store акаунт або в один акаунт з різними Package Names. Для iOS використовуємо Fastlane з матрицею схем.

Як забезпечити стабільність збірок для кожного tenant?

Автоматизація тестування критична: для кожного flavor в CI запускаються unit-тести та UI-тести на симуляторах. Це запобігає регресії при додаванні нового бренду. Рекомендуємо тримати покриття >80% для модулів з tenant-логікою.

Порівняння підходів: Product Flavors vs Runtime конфігурація

Параметр Product Flavors (Android) / Targets (iOS) Runtime конфігурація
Кастомізація ресурсів Повна (іконки, рядки, кольори) Обмежена (тільки runtime)
Швидкість збірки Повільніше (багато артефактів) Швидше (один APK)
Ізоляція коду Повна (компілятор відсікає невикористане) Часткова (весь код у збірці)

Product Flavors забезпечує в 2 рази кращу ізоляцію коду, ніж runtime конфігурація, але призводить до повільнішої збірки. Рекомендуємо гібрид: статичні ресурси через flavors, а динамічні фічі — через runtime прапорці.

Етапи White-Label розробки додатку

Етап Опис Тривалість
Аналітика Збір вимог, визначення tenants, налаштування серверів 1-2 тижні
Проектування Архітектура, налаштування flavors/targets, CI/CD 1-2 тижні
Розробка Реалізація модулів, theme engine, feature flags 4-8 тижнів
Тестування Автотести для кожного tenant, регресія 2-3 тижні
Деплой Розгортання в магазини, налаштування моніторингу 1 тиждень

Процес додавання нового tenant має наступні кроки:

  1. Копіювання шаблону директорії tenant.
  2. Налаштування іконок, кольорів, рядків.
  3. Створення API-ключів та Firebase проекту.
  4. Додавання flavor в CI матрицю.
  5. Тестування збірки та деплой.

Типові помилки та як їх уникнути

Tenant logic в бізнес-коді. (друге виділення) Наприклад, if (tenantId == "brand_a") showSpecialButton() у ViewModel швидко призводить до хаосу. Правильно: tenant-специфічне поводження через DI — впроваджуйте стратегії залежно від flavour.

Shared strings із захардкодженими брендами. (третє виділення) Ім'я бренду має бути тільки в tenant-директорії. Використовуйте ресурси (strings.xml/Localizable.strings) для кожного бренду окремо.

Близько 70% проектів використовують єдиний Firebase проект, що призводить до конфліктів аналітики та push-повідомлень. У кожного tenant має бути свій google-services.json.

Відсутність автотестів для кожного flavor. Тести проганяємо для кожного flavor в CI. Це єдиний спосіб гарантувати, що новий бренд не зламав існуючі.

Типовий чек-лист онбордингу tenant: 1. Копіювання шаблону директорії tenant 2. Налаштування іконок, кольорів, рядків 3. Створення API-ключів та Firebase проекту 4. Додавання flavor в CI матрицю 5. Тестування збірки та деплой.

Що входить в роботу

  • Документація: архітектурна схема, інструкція з додавання нового tenant, опис CI/CD пайплайнів.
  • Доступи: вихідний код, репозиторій, CI/CD конфігурація, ключі для магазинів.
  • Навчання: воркшоп для вашої команди з роботи з white-label архітектурою.
  • Підтримка: 2-3 місяці після запуску для вирішення можливих проблем.

Орієнтири за термінами

MVP white-label додатку з 2–3 tenants на одній платформі (iOS або Android) — 8–14 тижнів. Крос-платформна реалізація з 5+ tenants та повним CI/CD — 16–24 тижні. Вартість MVP — від $25,000, повна версія — від $50,000. Вартість розраховується індивідуально після аналізу вимог. Отримайте безкоштовну консультацію щодо вашого white-label проекту — зв'яжіться з нами для оцінки.