Mobile Configuration and Feature Flag Documentation
Current Mobile App Configuration and Flags
Current as of 2026-04-16
This document catalogs the configurations and feature flags currently supported by the Open edX mobile apps (Android and iOS).
This document is organized into two sections: Configurations and Feature Flags
Quick Legend
[Shared] Supported by both Android and iOS
[Android] Supported by Android
[iOS] Supported by iOS
Required Configuration
This section lists the settings that should be validated first for the apps to launch and reach core authenticated flows.
Primary source files for this section:
iOS:
Core/Core/Configuration/Config/Config.swiftAndroid:
core/src/main/java/org/openedx/core/config/Config.kt
Configurations
[Shared]
API_HOST_URL: Required - The app must know which Open edX instance to talk to.[Shared]
OAUTH_CLIENT_ID: Required - Mobile authentication depends on a valid OAuth client ID.[Shared]
TOKEN_TYPE: Required - The app must use the expected token mode for the deployment.[Shared]
APPLICATION_ID/ bundle identifier: Required - App identity must be configured correctly for packaging and callback handling.[Shared]
PLATFORM_NAME: Required - The apps use this as the platform display name in core UI.[Shared]
URI_SCHEME: Required - Callback and deep-link auth flows depend on a correct app URI scheme.[iOS]
SSO_URL: Deployment-dependent - Required if the iOS deployment uses the current SSO login flow.[iOS]
SSO_FINISHED_URL: Deployment-dependent - Required if the iOS deployment uses the current SSO login flow.[iOS]
SSO_BUTTON_TITLE: Deployment-dependent - Required if the iOS deployment exposes the current SSO login flow.
Optional Integration Configuration
Primary source files for this section include:
iOS:
AgreementConfig.swift,GoogleConfig.swift,AppleSignInConfig.swift,FacebookConfig.swift,MicrosoftConfig.swift,FirebaseConfig.swift,BranchConfig.swiftAndroid:
AgreementUrlsConfig.kt,GoogleConfig.kt,FacebookConfig.kt,MicrosoftConfig.kt,FirebaseConfig.kt,BranchConfig.kt
Configurations
[Shared]
AGREEMENT_URLS: Dict - Legal and policy links shown in the apps.PRIVACY_POLICY_URL: StringCOOKIE_POLICY_URL: StringDATA_SELL_CONSENT_URL: StringTOS_URL: StringEULA_URL: StringSUPPORTED_LANGUAGES: List - Supported locales for URL localization behavior.
[Shared]
GOOGLE: Dict - Google sign-in configuration.ENABLED: BooleanCLIENT_ID: String[iOS]
GOOGLE_PLUS_KEY: String
[iOS]
APPLE_SIGNIN: Dict - Apple Sign-In configuration for iOS.ENABLED: Boolean
[Shared]
FACEBOOK: Dict - Facebook sign-in configuration.ENABLED: BooleanFACEBOOK_APP_ID: StringCLIENT_TOKEN: String
[Shared]
MICROSOFT: Dict - Microsoft sign-in configuration.ENABLED: BooleanCLIENT_ID: String[Android]
PACKAGE_SIGNATURE: String
[Shared]
FIREBASE: Dict - Firebase project settings used for analytics/messaging integration.ENABLED: BooleanCLOUD_MESSAGING_ENABLED: BooleanPROJECT_ID: StringAPI_KEY: String[Android]
PROJECT_NUMBER: String[Android]
APPLICATION_ID: String[iOS]
ANALYTICS_SOURCE: String[iOS]
BUNDLE_ID: String[iOS]
CLIENT_ID: String[iOS]
DATABASE_URL: String[iOS]
GCM_SENDER_ID: String[iOS]
GOOGLE_APP_ID: String[iOS]
REVERSED_CLIENT_ID: String[iOS]
STORAGE_BUCKET: String
[Shared]
BRANCH: Dict - Branch deep-link configuration.ENABLED: BooleanKEY: StringURI_SCHEME: String[Android]
HOST: String[Android]
ALTERNATE_HOST: String[iOS]
DEEPLINK_PREFIX: String
Optional Behavior Configuration
Primary source files for this section include:
iOS:
DiscoveryConfig.swift,DashboardConfig.swift,UIComponentsConfig.swift,ThemeConfig.swiftAndroid:
DiscoveryConfig.kt,ProgramConfig.kt,DashboardConfig.kt,UIConfig.kt
Configurations
[Shared]
DISCOVERY: Dict - Configure course discovery behavior.TYPE: String -nativeorwebview.WEBVIEW.BASE_URL: String - Base URL for discovery webview.WEBVIEW.COURSE_DETAIL_TEMPLATE: String - Web URL template for course detail pages.WEBVIEW.PROGRAM_DETAIL_TEMPLATE: String - Web URL template for program detail pages.
[Shared]
PROGRAM: Dict - Configure enrolled-program experience.TYPE: String -nativeorwebview.WEBVIEW.BASE_URL: String - Base URL for program pages.WEBVIEW.PROGRAM_DETAIL_TEMPLATE: String - Web URL template for individual program detail pages.
[Shared]
DASHBOARD: Dict - Controls dashboard layout.TYPE: String -listorgallery.
[Shared]
UI_COMPONENTS: Dict - Toggle UI capabilities in course flows.COURSE_UNIT_PROGRESS_ENABLED: Boolean - Show progress within course units.COURSE_DROPDOWN_NAVIGATION_ENABLED: Boolean - Enable dropdown-based course navigation.[Android]
COURSE_DOWNLOAD_QUEUE_SCREEN: Boolean - Enable Android download queue screen.[iOS]
LOGIN_REGISTRATION_ENABLED: Boolean - Enable combined login/registration presentation behavior in iOS auth UI.[iOS]
SAML_SSO_LOGIN_ENABLED: Boolean - Enable SAML SSO login UI in iOS.[iOS]
SAML_SSO_DEFAULT_LOGIN_BUTTON: Boolean - Use SAML SSO as the default login button presentation in iOS.
[Shared]
FEEDBACK_EMAIL_ADDRESS: String - Contact value used by in-app feedback flows.[Shared]
FAQ_URL: String - Help/FAQ destination shown in the apps.[Android]
PLATFORM_FULL_NAME: String - Expanded platform name used by Android build/config theming.[Android]
THEME_DIRECTORY: String - Selects the Android theme directory during build/config generation.[iOS]
APP_STORE_ID: String - App Store identifier used for iOS store links.[iOS]
THEME: Dict - iOS theming options.ROUNDED_CORNERS_STYLE: BooleanBUTTON_CORNERS_RADIUS: Int/Double
Feature Flags
Primary source files for this section include:
iOS:
FeaturesConfig.swift,ExperimentalFeaturesConfig.swiftAndroid:
Config.kt,ExperimentalFeaturesConfig.kt
Flags
[Shared]
PRE_LOGIN_EXPERIENCE_ENABLED: Boolean - Enable pre-login discovery / launcher experience.[Shared]
SOCIAL_AUTH_ENABLED: Boolean - Enable social auth buttons.[Shared]
WHATS_NEW_ENABLED: Boolean - Show the What's New flow on app updates.[Android]
REGISTRATION_ENABLED: Boolean - Enable user registration from Android app flows.[Android]
BROWSER_LOGIN: Boolean - Redirect login to browser-based OAuth flow on Android.[Android]
BROWSER_REGISTRATION: Boolean - Redirect registration to browser flow on Android.[iOS]
APP_LEVEL_DATES_ENABLED: Boolean - Enable app-level dates feature in iOS.[iOS]
EXPERIMENTAL_FEATURES.APP_LEVEL_DOWNLOADS.ENABLED: Boolean - Enable app-level downloads feature on iOS.[Android]
EXPERIMENTAL_FEATURES.APP_LEVEL_DOWNLOADS.ENABLED: Boolean - Enable app-level downloads feature on Android.[Android]
EXPERIMENTAL_FEATURES.APP_LEVEL_DATES.ENABLED: Boolean - Enable app-level dates feature on Android.