White-Label, SDK & Modular Mobile App Development

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
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 3 of 3 servicesAll 1735 services
Complex
from 2 weeks to 3 months
Simple
from 1 business day to 3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1050
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

White-Label Mobile Applications: SDK, Modular Architecture and Multi-Tenancy

White-label — not just "rebrand the application". This is an architectural decision needed from start. Trying to make white-label from monolithic application retroactively — one of most expensive refactorings in mobile development.

What Means "Proper" Modular Architecture for White-Label

Key principle: no business logic module should know about specific client. Configuration, colors, texts, feature flags — everything comes from outside via dependency injection, not hardcoded.

On iOS proper structure: Swift Packages for each domain (AuthKit, PaymentsKit, ProfileKit), separate AppKit for entry point, and BrandKit — package with specific client theme. Main application — thin wrapper assembling them together.

// Wrong
class PaymentViewController: UIViewController {
    let primaryColor = UIColor(hex: "#FF5722") // hardcoded client A
}

// Correct
class PaymentViewController: UIViewController {
    let theme: AppTheme // injected on build
}

On Android equivalent — Gradle multi-module with productFlavors. Each flavor builds application for specific client: substitutes google-services.json, theme, resources. One repository, multiple artifacts.

Theming: Beyond Colors and Fonts

Surface-level white-label — change colors and logo. Takes a day. Real customization — when client can disable module, change onboarding screen order, use their payment provider.

In React Native for deep theming: ThemeProvider (React Context) at top level, design tokens (colors.primary, spacing.md) via theme object, components get values only through tokens. For Flutter: ThemeData + ThemeExtension for custom tokens beyond Material Design.

Runtime theming (loading theme from server) — separate complexity level. On iOS requires UIAppearance proxy + manual update for existing views; SwiftUI with Environment and @EnvironmentObject for theme simplifies significantly.

Multi-Tenant: One Backend, Different Applications

If multiple white-label applications use common backend, tenant identification needed at API level. Option 1: X-Tenant-ID header in each request. Option 2: separate subdomains (clienta.api.example.com). Option 3: tenant from JWT token after authentication.

At mobile app level: tenant ID either hardcoded in build configuration (via xcconfig / gradle.properties), or determined dynamically (by bundle ID or via Remote Config). Dynamic determination needed if one binary serves multiple clients — rare but real case for enterprise.

SDK: When White-Label is a Library

If product embeds in third-party applications — this is SDK, not white-label app. Requirements fundamentally different.

iOS SDK via Swift Package Manager: Package.swift describes product, target, dependencies. Published via git tag. Critical: don't pull transitive dependencies unnecessarily — each SDK dependency potentially conflicts with host app dependencies.

Android SDK via Maven (Artifactory or GitHub Packages): AAR artifact with POM metadata. api() vs implementation() in gradle — only what client needs, expose in api(). Everything internal — implementation().

SDK versioning via Semantic Versioning — mandatory. Breaking changes in minor version — death for B2B product.

Multi-Brand Build Automation

For 5+ white-label clients manual building is irrational. Fastlane with lanes per client and shared methods — basic option. More mature: parameterized CI pipeline where pass CLIENT_ID and get built IPA/APK/AAB for specific brand.

Codemagic supports environment variables per workflow — convenient for multi-brand builds without complex Fastfile.

Timeline: refactoring monolith to multi-tenant architecture — 2-3 months. New white-label application with proper architecture from scratch — 3-4 months. Developing mobile SDK — from 6 weeks for simple, from 3 months for full-featured.