Feature Toggles Implementation for Mobile App Functionality Management

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 1 of 1 servicesAll 1735 services
Feature Toggles Implementation for Mobile App Functionality Management
Medium
~3-5 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
    1052
  • 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

Feature Toggles Implementation for Mobile App Functionality Management

Feature toggle—mechanism to enable/disable functionality without a new app release. Sounds simple until you think about client versions, flag caching, graceful degradation when server is unavailable, and accumulated dead flags after a year.

Why Flags Matter in Mobile Apps

Trunk-based development. Developer merges incomplete feature under a flag—CI/CD works normally, QA doesn't see raw code, production has it disabled. Long-lived feature branches with merge conflicts after three weeks—history.

Gradual rollout. New feature enables first for 1% of users → 10% → 50% → 100%. If Crashlytics shows crash spike—disable flag instantly, no release recall.

A/B tests. One button green, another blue. Flag with variants, analytics show which converts better.

Kill switch. Payment provider down—disable payment screen, show placeholder. No hotfix, no App Store review.

Implementation Options

Firebase Remote Config—de facto standard for most mobile apps. Free, SDK for iOS/Android/Flutter/React Native, personalization by user properties (country, app version, segment). Downside: doesn't suit enterprise with strict data storage requirements.

LaunchDarkly—enterprise solution with targeting rules, A/B tests, audit trails, SSO. Expensive, but justified with 50+ developers and hundreds of flags.

Custom service—when full control needed or can't send user data to third-party servers. Go/Node/Laravel backend, PostgreSQL for flags, Redis for cache, WebSocket or polling for real-time updates.

Unleash—open source LaunchDarkly alternative, self-hosted. SDK for all platforms, targeting, gradual rollout. Good balance between functionality and control.

Technical Client Implementation

Key rule: flags work offline. First run—default values from bundle, subsequent runs—cached from UserDefaults/SharedPreferences, background update from server.

iOS (Swift):

// FeatureFlagService with caching
actor FeatureFlagService {
    private var flags: [String: Bool] = [:]

    func isEnabled(_ flag: FeatureFlag) -> Bool {
        flags[flag.rawValue] ?? flag.defaultValue
    }

    func refresh() async {
        // Load from Remote Config or custom API
        let fetched = await remoteConfigService.fetch()
        flags = fetched
    }
}

// Usage in SwiftUI
if featureFlagService.isEnabled(.newCheckoutFlow) {
    NewCheckoutView()
} else {
    LegacyCheckoutView()
}

Android (Kotlin): similarly via StateFlow in ViewModel so UI reacts to flag changes in real-time without screen restart.

Flag Lifecycle Management

Main operational problem: flags accumulate. After a year: if (featureFlags.isEnabled("new_onboarding_v2_2023"))—dead flag nobody disables because unclear what risks it. Code unreadable, tests don't cover both branches.

Process: each flag created with planned deletion date (expires: 2024-06-01). After full rollout—task to remove flag and unneeded code branch. Tool: ArchUnit (Android) or static analysis (SwiftLint custom rule) to detect expired flags in CI.

Timeline: Firebase Remote Config integration + basic flags—2–3 days. Custom feature-flag service with targeting, rollout, dashboard—3–4 weeks.