Remote Config
Update app settings remotely without a new release.
Android and iOS
Remote config works identically on Android and iOS. Both platforms fetch the remote config at app start and merge it into the local config.json. (For security, security.* values and remoteConfigUrl itself cannot be overridden remotely.)
At a Glance
Remote Config lets you change settings from the server without re-releasing the app. When the app starts, it fetches the latest values from the config server and overrides the local settings (config.json).
Remote settings take priority over local settings.
How to Configure
Add the remote config URL to assets/config.json.
{
"remoteConfigUrl": "https://your-server.com/api/app-config",
"modules": {
"accessibility": { "enabled": true }
}
}If remoteConfigUrl is empty or missing, the remote config feature is disabled and only the local config.json is used.
remoteConfigUrl must be an https:// endpoint. HTTP is not supported.
Server Response Format
The server must return JSON in the same structure as config.json. The returned values override the local settings.
{
"modules": {
"bottomTabs": {
"enabled": true,
"autoHide": false
},
"accessibility": {
"enabled": true,
"topDownPanel": false
}
},
"security": {
"screenshotProtectionEnabled": false
},
"socialLogin": {
"kakao": true,
"naver": true
}
}Keys omitted from the remote config will keep their local config.json values.
Remotely Changeable Settings
| Setting | Description |
|---|---|
modules.bottomTabs.enabled | Whether the bottom tab bar is enabled |
modules.sideDrawer.enabled | Whether the side drawer is enabled |
modules.topDownMenu.enabled | Whether the top menu is enabled |
modules.bottomSheet.enabled | Whether the bottom sheet is enabled |
modules.accessibility.enabled | Whether accessibility features are enabled |
security.screenshotProtectionEnabled | Whether screenshot protection is enabled |
security.backgroundProtectionEnabled | Whether background screen protection is enabled |
socialLogin.* | Whether each social login provider is enabled |
Some security-related settings (like rootDetectionEnabled) cannot be changed via remote config — the values set at build time are used instead.
Cache Policy
- Remote config is fetched asynchronously when the app starts.
- If there is a network error, the last cached remote config is used.
- If there is no cache, the local
config.jsonis used.