App configuration & testing
The effects of adding or changing features in your app is uncertain at best. Will users like it? What will the effect be on performance once the feature is actually in production? Are there specific devices that will cause unforeseen errors and crashes? Your app store rating (and the success of your app) hinge on questions like these, and it's for this reason that testing and controlling the introduction of new feature should be an essential part of your development process.
The API BaaS App Configuration feature makes this easy by allowing you to control the rollout and testing of features in your app. This includes the ability to enable and disable features in production, beta test new features with a specific subset of users, and A/B test changes against a randomized percentage of your total user base.
App Configuration requires the Apigee SDK and is currently supported for the following platforms:
Get the Apigee SDK
App-specific configuration is used to push configuration settings to all instances of your app. Most commonly, you would use this type of configuration when launching a new feature by first deploying your application code with the new feature hidden, then using app-specific configuration in API BaaS to activate the new feature in-app. This allows you to quickly rollback the feature in the event any unexpected issues occur. For example, after enabling the feature, you might roll it back if you suddenly see a spike in errors and crashes in your API BaaS App Monitoring data.
Settings for app-specific configuration are defined in the 'Default Configs' section of the 'Configure' menu of the API BaaS admin portal.
Learn more about:App-specific configuration
Not sure if a new feature you're developing will be stable in production or if your users will like it? With App Configuration beta testing you can enable the feature for a select beta test group of your users. This gives you a controlled test group whose App Monitoring metrics can give you a preview into how the feature might perform or be received by your total user base.
Settings for beta testing configuration are defined in the 'Beta testing configs' section of the 'Configure' menu of the API BaaS admin portal.
Learn more about:Beta test configuration
In app development, small variations can have a huge impact on the success of a new feature. For this reason, it is often advisable to A/B test alternative versions of new features to see which performs best when presented to users in production. This is easy with App Configuration, which allows you to select a random percentage of your users to enable a feature for. The resulting usage and performance metrics for the test group can then be viewed in App Monitoring.
Settings for A/B testing configuration are defined in the 'A/B Configs' section of the 'Configure' menu of the API BaaS admin portal.
Learn more about:A/B test configuration
App Configuration works by pushing a JSON-formatted Apigee configuration object directly to your app at runtime when the Apigee SDK is initialized. The configuration object contains key-value pairs that specify what features should be enabled/disabled by your application code, as well as configuration settings that specify what data should be captured and sent to App Monitoring.
To enable App Configuration, do the following:
- Include multiple configurations in your application code that reflect the feature(s) you wish to enable/disable
- Write your application code to check for the values sent in the Apigee configuration object, and expose the corresponding feature to the user
- Include and initialize the Apigee SDK in your application code
- Set and enable App Configuration settings in the API BaaS admin portal
When your app is launched on a user's device, the following occurs:
- The API BaaS SDK is initialized
- The SDK retrieves the configuration object from the Apigee server
- Your application code parses the key-value pairs in the object
- Your application code exposes the feature that corresponds to the values in the Apigee configuration object
It is important to note that the configuration object only contains the 'directive' that informs your application code which feature to act on, and whether to enable/disable it. The actual feature code that does this must be included in your application. The API BaaS App Configuration feature does not push code to your app.
App Configuration is most useful when it is used in conjunction with the API BaaS App Monitoring feature. App Monitoring provides you a near real-time view of important error, crash, usage, and network performance metrics from user devices. This is extremely valuable when used in conjunction with App Configuration, as it allows you to use these metrics to monitor the rollout of new features and compare test groups.
For example, using the A/B test feature you could compare usage metrics for two alternative UI layouts to determine which is most effective, or using the app-specific configuration feature you could easily rollback a new feature if it causes a spike in error and crash reports once it is put into production.
Learn more about:App Monitoring