Building with Feature Flags 4

Mobile applications live much longer in the field than most web deployments. A team can release version 12 today while thousands of users continue running versions 10 and 11 for weeks or months.

The installed application cannot be assumed to be current

control plane today
      │
      ├─ app v12
      ├─ app v11
      └─ app v10

A flag rule may therefore need to account for application version as well as user or account context.

Offline behavior is part of the product experience

Mobile clients lose connectivity. A feature SDK should have a defined strategy for cached configuration and defaults so the application remains coherent when it cannot refresh.

A user should not enter an airplane with one screen enabled and discover after connectivity drops that the rest of the workflow no longer agrees.

App store release and feature release are separate controls

Feature flags can let teams ship code in an application binary and activate it later, but they do not eliminate app store review or the need to support older binaries.

That makes compatibility rules important. A server side feature may be ready for 100 percent of users while only newer mobile versions contain the corresponding client capability.

Keep security on trusted systems

Like browser code, a mobile binary is controlled by the end user. Flags can shape the application experience, but authorization and sensitive business enforcement must remain on trusted backend systems.

Experiments need stable identity

A mobile experiment should define what identifies the participant: installation, anonymous user, account, device, or authenticated user. Changing that key midway can move a person between variations and weaken the analysis.

Plan for cleanup across versions

Removing a release flag from a website can be a single deployment. Removing it from mobile may require waiting until old application versions have aged out or designing the backend so those versions still receive compatible behavior.

That is why mobile flag lifecycle often lasts longer than web flag lifecycle even when both are part of the same feature.


Feature Flags series

← Feature Flags in Serverless Applications   Testing Applications That Use Feature Flags →