01 Nov

Launched: Android Feature Flags SDK

LaunchDarkly’s mission is to be your complete solution for enterprise feature flag management. We wanted to provide SDKs for every major language and platform, both web and mobile — allowing our customers to manage features and synchronize rollouts across multiple platforms.

Now, we are excited to announce the launch of our Android SDK (beta). This SDK supports both boolean and multivariate feature flags, allowing you to take full control over any feature or configuration in your release.

LaunchDarkly Android Mobile SDK for Feature Flags / Feature Toggles

Additionally, we wanted to ensure that the SDK always served the latest stored flag rules for each user, even if the app was backgrounded or if the app had multiple users on the same device.

To do this, we integrated some neat features: (these features are also available in our iOS SDK)

Android SDK Features

  • Simple User Construction
    • Easily construct users by using a builder pattern.  This makes it easy to use our targeting rules to perform custom rollouts by user key or any attribute.
  • Multiple User Contexts on One Device
    • If your app is used by multiple users on a single device, you may want to change users and have separate flag settings for each user. To achieve this, the SDK will store the last 5 user contexts on a single device, with support for switching between different user contexts.
  • Real-Time Updates
    • You can immediately kill bad features and have granular control over the timing of flag updates.  LaunchDarkly manages all flags for a user context in real-time by polling flags based on a real-time event stream. When a flag is modified via the LaunchDarkly dashboard, the flag values for the current user will update almost immediately.
  • Offline Mode & Background Fetch
    • We wanted to make sure that developers had full control over the offline and backgrounded behavior of LaunchDarkly.  If a user’s device is in airplane/flight mode or if they are not connected to a network, LaunchDarkly will use the latest stored flag settings in memory.  Additionally, when the app is backgrounded, the Android SDK does not receive real-time events. However, a battery-conscious Android Alarm is set to poll for updates once every 5 minutes.

We’re really excited to see what our customers are able to do with the new Android SDK. If you have any questions or feedback, we would love to hear from you at support@launchdarkly.com.

08 Jun

How to Easily Sync Web & Mobile Experiences

Using feature flags to sync user experiences across multiple platforms

 

Becoming a VIP

Imagine you just signed up for Amazon’s VIP checkout experience.  In this hypothetical experience, you can click a VIP button that allows you to shop for brand new items not yet available to normal Amazon customers.  “This is awesome!” you say to yourself, as you view the VIP item list in your laptop’s browser.  

But now, you have to head to the bus and go to work, but you still want to browse for items using the Amazon app.  Because Amazon uses feature flags, your mobile experience is automatically personalized to include the VIP experience.  Cool!  Now, your web and mobile experiences are synced instantly.

Cross-Platform Personalization with Feature Flags

Feature flagging is a way to wrap features in conditionals (If/else statements) so that you can control the visibility of those features over time.  In other words, you can deploy a feature as ‘off’ and then turn it ‘on’ at a later time or you can gradually roll out a feature to select users.  

So, imagine you feature flag the VIP checkout.  You can create a rule that says: “Any user who opts into the VIP program will get TRUE for the feature and everyone else will get FALSE.”  Those users who are assigned the TRUE variation will see the VIP feature and those who are assigned the FALSE variation will not.

Mobile Web Feature Flags Feature Toggles LaunchDarkly

What is great about this method is that you can use this same feature flag to control the VIP checkout for both the web and mobile versions of an application.  

Some more benefits of cross-platform feature flagging include:

  • The ability to decide whether to release a cross-platform feature simultaneously or separately, with full control over who gets to see that feature. For example, web users might get access to a new search bar before mobile users do.
  • Real time personalization that allows users to opt-in to new features on one platform (like mobile) and have that personalization sync with another platform (like web)
  • Percentage rollouts that allow you to gradually release a feature to targeted users on different platforms, allowing you to assess user and performance feedback for each platform
  • A kill switch that lets you turn off poorly performing features for web and mobile, without having to redeploy
  • Subscription plan management using feature flags to bundle cross-platform features into different tiers (ex. to create Bronze, Gold, and VIP plans).

Summary

Cross-platform feature flagging is an easy way to deliver personalized and synchronized user experiences across different platforms.  Overall, it is paving a way for a new genre of user experience personalization, where companies can harness real time user feedback to customize features across different platforms.  This could usher in an era where users do not have to adapt their behavior to an app… the app will adapt to them.

22 Oct

LaunchDarkly now has feature flags for mobile with iOS SDK

 mobiledarkly

View the SDK Documentation  and GitHub Repo

Mobile feature flagging has always been the next step for LaunchDarkly. In fact, I’ve heard a drumbeat of questions of “when mobile, when mobile, when mobile?” We’re pleased to announce that yes, LaunchDarkly mobile iOS SDK is now in beta! Mobile feature flagging is perhaps even MORE useful than web feature flagging.

When I was at TripIt, we’d have to make our best possible guess about what features users wanted. We’d build an app version that would get shipped to Apple for review, a process that could take 1-3 weeks. Then, once a version was available for download, it was out of our hands (literally). We couldn’t make any changes to it, hence our concern for making sure that features were exactly right. The absolute worse was when something would break. Once we inadvertently shipped a version that treated all of our paying users as people who’d illegally broken our pay logic. We flashed up a cheeky message of “Ahoy you Scurvy Pirates” to the very people who were actually paying us! And, what’s worse, it took us multiple days for Apple to approve a fix. I said at the time “You could laugh or cry – or do both.” Laugh, because we could fix the bug in literally five minutes. Cry, because it took us days to go through the Apple review process and get the fixed version into end user hands and stop abusing them as pirates. Meanwhile, “0 star” app reviews built up, even though we had a fix ready to go.

With LaunchDarkly feature flags for mobile, “0 star” app store review pain goes away. Mobile developers can build the features they want, and ship them enabled for the people they want, independent of an App Store release. If a feature is doing well, the developer can amp up the volume. If the feature is doing poorly, the developer can turn it off in the live version so no users see it.

And rollout with a kill switch is just the beginning. With feature flags, mobile developers can do a surprising amount of interesting things – like rollout to a bigger number of users than TestFlight, gate features for paywalls, and more.

I want to give a huge thanks to Mike Rollins for helping us with our iOS mobile SDK alpha testing. Mike says “I’m excited for what LaunchDarkly is bringing to mobile. Feature management via flags is something of a holy grail that I’ve heard about for many years but is something I’ve never seen anyone successfully implement. I know that I’ll be using it in my own apps!” Thank YOU Mike for helping us with feedback.

We’re happy to hear from more early users like Mike – anyone who starts using our mobile OS SDK will automatically get a stylish LaunchDarkly T. We ship anywhere in the world.