3 Reasons Mobile App Releases Are So Painful…and How to Fix Them featured image

Key Takeaways

  • App store approval processes prevent mobile app developers from controlling their releases. LaunchDarkly lets you maintain control with feature flags.
  • Mobile app developers lack a way to quickly enable or disable broken features. LaunchDarkly lets you control features remotely and resolve incidents in real time.
  • Mobile app developers struggle to deliver personalized app experiences due to the prohibitive engineering burden. LaunchDarkly makes it easier to personalize at scale through its robust targeting engine.

Nearly 500K mobile apps were downloaded every minute in 2023. What’s more, people spent ⅓ of their waking hours in those apps (source). Obviously, these numbers are too obscene and out of context to be useful. But they do reinforce what we already know: people spend a lot of time on their phones. 

If you want to maximize revenue or [insert KPI that matters to your organization], you should invest in your mobile strategy. Unfortunately, mobile app development comes with a host of challenges, including:

  • Bottlenecks created by mandatory app store approvals
  • The inability to remotely control features in real time
  • The struggle to personalize experiences to meet soaring user demands

In this article, we’ll explain how you and your mobile developers can overcome these challenges with LaunchDarkly.

Problem 1: The app store governs the mobile release process

Imagine you've built a new version of a mobile app, but you only want to release certain features therein to certain audiences. The app store approval process bars you from doing this. Here's how.

The app store approvers are gatekeepers (this isn't a criticism). They determine if and when your new app version may proceed. In some cases, after granting approval, they'll publish your updates to the app store at a time that conflicts with your release plans—e.g., out of sync with a website release of the same features. They do this on their schedule, not yours. 

Moreover, in cases where you can choose when to make the app updates public, you're forced to take an all-or-nothing approach: you must release all features to all users all at once. Ultimately, you have very little control over your mobile release process. 

LaunchDarkly solution: Release on your schedule, not the app store’s

LaunchDarkly gives you control by decoupling the “app store release” from the  “feature release” to end users. If you wrap the new app version in a feature flag, you can keep the flag ‘off’ until you’re ready. Although the app store may publish the new version, users CANNOT access the new features therein. The features are disabled. And you decide when to turn them ‘on’ and for whom.

What’s more, you can perfectly match the timing of the web and mobile launches. Using prerequisites in LaunchDarkly, you can create a rule that automatically triggers the mobile release once the web version has gone live. 

LaunchDarkly lets you progressively deliver the new app version at your own pace. You can test in production with a subset of internal developers, then expand to a select group of beta testers, then to iOS devices in CA, then Android devices in Canada, and so on. 

The choice is yours.

In the example above, after the app store has approved the latest updates to our mobile app, we use LaunchDarkly to control when those updates get released to end users. We simply toggle a feature flag.

Problem 2: No quick and easy way to control features once they’re live

Another challenge mobile developers face is they lack a way to quickly resolve production incidents. Normally, if a feature causes a bug, several highly-paid engineers will frantically write bug fixes and spin up a new release. And—to make matters worse—they must wait for the app store to approve the release before it can go live. 

Thousands of users could be stuck with a buggy version of your app for days, weeks, etc. as you wait for the app store’s blessing. What if this happens during an extremely critical time, and users leave your app in droves as a consequence? Just a thought.

LaunchDarkly solution: Remotely control features in real time

With LaunchDarkly, one person—not a whole team, one person—can remotely disable the buggy feature. You can do this without having to a) bring down the whole release and roll back to an older app version, and b) wait on app store approvals. You fix the problem instantly. 

Let’s unpack this further. Imagine a third-party service that integrates with your app goes down, but it only affects iOS devices on specific app versions. With LaunchDarkly, you can disable the feature tied to that service for only the affected users. Everyone else can still access your latest features without disruption.

In the example above, a feature is causing a bug in certain versions of an iOS mobile app. In LaunchDarkly, we remotely disable the flag for that buggy feature, turning the feature ‘off’ for affected devices only.

Problem 3: Personalization is much easier said than done

The modern app user is hard to please. If you upset them, they’ll take to Twitter (or X, or whatever) and flay you without remorse. If they use a feature on your website but then can’t find it in your mobile app, they’ll take to Twitter. If you serve them irrelevant, generic experiences, they’ll get annoyed…and then take to Twitter.

You get the idea.

Here’s the problem: delivering the kind of personalization that placates modern users is quite difficult. Building the necessary targeting capabilities comes with considerable engineering costs. This is especially true in a mobile setting where you’re targeting near infinite combinations of device types and operating systems and screen sizes and app versions and geographies and…the list goes on. (Just ask General Motors.)

LaunchDarkly solution: Effortlessly personalize in-app experiences with a robust targeting engine

LaunchDarkly provides the targeting infrastructure to negotiate all of that complexity. Our targeting engine allows you to target and personalize based on anything you know about your audience. And it makes it easy to deliver consistent experiences across your web and mobile platforms.

You can, for example, enable certain features for iOS devices and disable them on Android; or ship one experience to users in Minnesota on version 8.3.2 of your app while shipping another to those in Wisconsin on version 6.2.1; or turn a set of features ‘on’ for a premium subscribers audience segment only. Those are just a few examples.

With virtually unlimited targeting options, you can deliver extraordinary in-app experiences to every audience. Who knows, modern users might hate your app less. One can dream, anyway.

In the example above, we set a targeting rule in LaunchDarkly that displays a pop-up in versions of an iOS mobile app that are no longer supported by the app developer.

Go deeper with mobile release optimization

Engaging your audience through mobile apps comes with a big upside. But the mobile release process is full of complexity and hurdles—some of which are outside your control. LaunchDarkly gives you the tools to overcome these challenges, so you can deliver best-in-class mobile experiences. With LaunchDarkly’s Mobile Lifecycle Assistant, you can release on your teams, control features remotely, and personalize your app based on whatever contextual information you choose.

I’m just scratching the surface here. If you want to dive deeper into how to optimize mobile releases with LaunchDarkly, I’d encourage you to attend our Mobile Development Summit on January 24th. You can also explore the resources below:

Related Content

More about Mobile release optimization

January 16, 2024