Take control over your mobile releases
How to deliver best-in-class mobile app experiences on your schedule, not the app store’s.
How LaunchDarkly can help
LaunchDarkly empowers mobile app teams to release features in real-time, making it possible to deliver on their schedule, roll back changes faster, and provide superior experiences across OS versions, devices, screen sizes, locations, and more.
Feature flags, also known as feature toggles, are used in software development to enable or disable a feature without modifying the source code or requiring a redeploy.
For mobile applications, this means developers can toggle features on or off without a redeploy to the app store. Simply wrap the code in a feature flag, deploy the new feature to the app store for approval, and then, once the new version is approved and users have installed it on their device, a developer can release (or roll back) features at will.
With feature flags, mobile development teams can decouple app store deployments from feature releases to users—thus enabling them to manage the full lifecycle of a feature.
1. Release on your own terms
App store approval windows prevent teams from delivering mobile app features at the pace or time they need. Furthermore, once app versions are approved by the app store and made available for installation, developers often notice an adoption lag before a critical mass of users install the new app version.
With LaunchDarkly, you can release new capabilities to your users on your schedule, without reliance on app store approval windows or end-users updating to the latest app version.
Deliver on your schedule
Gone are the days when mobile developers lacked control over the timing of their releases. Instead, with feature flags, mobile developers can decouple the process of deploying a feature to the app store from releasing that same feature to end-users. By wrapping code with feature flags, you can keep features that are not ready for end-users toggled “off”. That way, once the app is approved by the app store and made available to download or update, users will not see any features that are toggled “off”.
This means you can strategically choose when to release features based on things like:
- New app version adoption
Release features once 90% of your userbase is using the latest app version. - A larger marketing campaign
Coordinate marketing efforts and ensure the new marketing campaign is released on your mobile app at the same time it’s launched on your website. - User behavior or seasonality
Release features based on seasonal trends, holidays, and user behavior patterns to boost engagement.
By leveraging feature flags, mobile developers can also employ common development strategies such as:
- Progressive delivery
- Trunk-based development
- Feature branching
- Canary deployments
- Blue-green deployments
Test safely and efficiently
Testing new mobile features and app versions poses unique challenges relative to other software testing strategies—mainly due to the highly disparate mobile ecosystem and wide range of possible end-user configurations (i.e., different device models, form factors, operating systems, app versions, etc.). Mobile apps also often utilize device-specific capabilities that vary from model to model like microphones, location services, biometric authentication, and cameras that can make testing and simulating real-world scenarios in a pre-production environment challenging.
With LaunchDarkly, mobile developers can test features in a production environment without exposing them to end-users—thus reducing the need to test in a staging environment. Instead, it’s as simple as deploying new features to your app and only exposing them to a subset of internal users for testing. By testing in production, mobile developers can see how a feature performs in a real-world setting while limiting the impact on end-users and other app functionality. This also enables you to more comprehensively test new features, identify bugs, and fix them before a release.
Release progressively
Now that you’ve internally tested your latest features, use LaunchDarkly to perform gradual rollouts rather than pushing out every new feature to every device all at once. With feature flag targeting, mobile developers can share and test new features with beta customers in a production environment to collect feedback, all while hiding those new features from general end-users.
Additionally, mobile developers can conduct and automate targeted, percentage-based rollouts to reduce their blast radius and the risk of a “big-bang” launch. Instead, you can even leverage granular targeting to define highly-specific audiences for progressive rollouts. For example, you can choose to progressively release a new feature in 5% increments every hour to users only located in North America on an iPhone device with your latest app version. This rollout will continue automatically unless you manually stop it or the rollout reaches 100%. This type of rollout mitigates risk by enabling you to start small, monitor feature performance, and assess the overall impact a feature has on an app as traffic increases.
2. Mitigate bugs without code changes or app store approvals
We know mobile app users have a low tolerance for slow and buggy mobile apps. To maximize user adoption and minimize churn, your app must meet— or ideally, exceed—users’ expectations, no matter where they are.
Resolve errors in real-time
Bugs are inevitable. Thankfully, LaunchDarkly provides an immediate path to resolution through kill switches.
Without a kill switch, when something goes wrong in an app, there’s no quick or easy fix to minimize customer impact. Instead, mobile development teams must:
- Identify the buggy code
- Implement a fix
- Validate the fix and run the app’s full test suite to check for regressions
- Resubmit the fix to the app store
- Await app store approval—this can take hours to days
- Wait for users to update to the latest version to receive the fix
Mobile developers are all too familiar with the time, money, stress, and opportunity loss a bug in production can cost. As they work tirelessly to deploy a fix, their app misses out on potential revenue, frustrates customers, spikes support tickets, and more.
But, with a kill switch, you can simply toggle off the feature causing app degradation without redeploying code and waiting for app store change approvals. This minimizes customer-impacting bugs and unplanned downtime, and it provides a safety net for developers. Once the buggy feature is toggled off in real-time and no longer impacts users, mobile developers have the time they need to identify the bug, build a fix, and resubmit through the app store. What’s more, they don’t have to stress about losing revenue and users with each passing minute.
62% of people uninstall an app if they experience crashes, freezes, or other major errors
Deliver reliably at scale Ensure consistent experiences globally across millions of users and deliver real-time flag changes without sacrificing your app’s response time, battery life, or overall performance. LaunchDarkly’s architecture was built to ensure availability. Through our Flag Delivery Network, our self-healing SDKs leverage streaming technology to retrieve and cache feature flag values in memory for quicker evaluation. And while flag changes are delivered in realtime to your mobile app users that have your app foregrounded, once the app is backgrounded, LaunchDarkly will disconnect to save on device battery power. But not to fear—once your app is backgrounded on a user’s device, the flag values will persist so that when your app launches again, it will have retained the previous flag values until establishing a new connection.
Monitor feature performance
Track flag evaluations to make data-driven decisions with LaunchDarkly. Quickly visualize the amount of flag evaluations with flag insights and understand how changes to targeting rules or increased traffic impact overall feature consumption. It’s now easy to quickly validate what percentage of mobile users are experiencing your latest feature!
Additionally, with LaunchDarkly, it’s simple to audit changes to feature flags. Perhaps you see a sudden decrease in evaluations and you want to know why. Simply review each flag’s complete audit log to clearly understand when the flag was changed, who made the change, and how the change impacted the end-user experience. And with LaunchDarkly live events, quickly validate that flags are being evaluated as intended based on targeting and incoming device data.
Together, with flag insights, the audit log, and live events, ensure with confidence that a rollout is going as planned. And quickly surface unexpected user behavior for real-time remediation to optimize app reliability and user satisfaction.
3. Improve in-app experiences
Delivering personalized user experiences across a variety of app versions, devices, and screen sizes is complex. With LaunchDarkly, easily target based on any parameter, sync features across mobile and web platforms, and ensure you are always delivering the best features to your end-users.
Deliver advanced personalization
In a time when mobile user expectations are at an all-time high, it’s critical to have the tools needed to provide targeted, personalized experiences. With LaunchDarkly’s robust targeting capabilities, mobile development teams can boost user engagement by providing personalized experiences across your userbase.
In fact, you can deliver targeted experiences based on anything you know about your end-user audience—and yes, we mean anything. Target features by device type, operating system, application version, location, user tier, etc. to get the right experiences to the right audiences, faster. LaunchDarkly’s targeting capabilities are both robust and easy to use. Even non-developers can build and manage targeting rules in LaunchDarkly (with the right user permissions and approvals in place, of course).
71% of app users will churn 90 days after download
Sync experiences across platforms
Deliver consistent user experiences across different web and mobile platforms (iOS, Android, and Fire OS) with coordinated feature releases.
Let’s assume within your LaunchDarkly instance you have multiple teams using multiple environments. By implementing hierarchy rules across your feature flags, it’s possible to now manage a set of associated flags together. This not only ensures that your app’s code doesn’t break due to features being toggled on prematurely, but it also allows organizations to launch new features or experiences simultaneously across each of their environments.
For example, let’s say you are launching a new UI for both your mobile app and web portal with multiple sub-features. Without LaunchDarkly, it’s difficult to simultaneously release your new UI across both mobile and web. This is mainly due to the lack of control over the timing of a mobile release due to app store review cycles. But, on top of that, without associated flags and hierarchy rules, both the web and mobile teams would need to go through duplicative, simultaneous release motions to ensure everything is deployed at the same time and in sync.
LaunchDarkly removes the duplicative work. Once all the new features are tested and deployed for both mobile and web, you can toggle on a single overarching UI launch prerequisite flag to release the new features to all users across all platforms at the same time.
Prerequisite flags
Each time a new flag is created, there’s an option to make it dependent on another flag. This ensures that flags that depend on each other to function properly won’t accidentally get turned on separately and cause code to break. For example, if Flag A is a prerequisite for Flag B, Flag A must be toggled “on” for Flag B to serve evaluations.
Optimize the user experience
Run experiments with real end-users in production to make data-driven decisions. Experiments can help validate new ideas, determine interest in a new feature, increase product adoption, and most importantly, drive revenue and customer engagement.
With LaunchDarkly Experimentation, seamlessly measure the impact of product changes, understand which feature variations boost user engagement, and enable your mobile teams to deliver the right experiences to the right users. This data-driven approach shortens user feedback loops and ensures winning feature variations are being served. On top of that, LaunchDarkly Experimentation is built directly within the development workflow, meaning once an experiment has ended, mobile teams can simply toggle on the winning variation for all users in real-time—no having to go back and code a winning variation based on an experiment run in a visual editor tool.
Furthermore, ensure users on old legacy app versions receive your latest features and experiences by ensuring they are on the latest app version. With LaunchDarkly, you can gracefully degrade the user experience however you wish. For example, you could disable functionality dependent on APIs containing the breaking changes. Or you could be more forceful and present an in-app notification telling customers they must update to a newer app version. Either way, this ensures when you launch your latest winning features, they will be available to all app users.