Switchboard - easy and super light weight A/B testing for your mobile iPhone or android app. This mobile A/B testing framework allows you with minimal servers to run large amounts of mobile users.

Related tags

Testing Switchboard
Overview

Switchboard - easy A/B testing for your mobile app

What it does

Switchboard is a simple way to remote control your mobile application even after you've shipped it to your users' devices.

Use Switchboard to

  • Stage-rollout new features to users
  • A/B-test user flows, messaging, colors, features, etc.
  • Add a feature flag to anything you want to remotely enable/disable

Switchboard lets you control what happens in your app. Quick, easy, useful.

Additionally, Switchboard segments your users consistently; because user segmentation is based upon a UUID that is computed once, the experience you switch on and off using Switchboard is consistent across sessions.

What it does not do (i.e. what you have to do yourself)

Switchboard does not give you analytics, nor does it automatically administer and optimize your A/B tests. It also doesn't give you nice graphs and stuff. You can get all of that by plugging an analytics package into your app which you're probably doing anyway.

Features

  • Highly scalable and incredibly lightweight
  • Consistent user segmentation based off a computed UUID
  • Define experiments for specific application versions, OS version, language settings and more
  • Comes with built-in configurations for production and staging environment
  • Preserves state when device is offline; configurations are cached on clients across sessions
  • Flexible custom parameters for experiments

What Switchboard was designed for

Switchboard was designed as a super lightweight and flexible mobile A/B testing framework.

Infrastructure

The goal was to serve millions of requests very reliablly without much infrastructure. It should easily scale horizontally to avoid overhead in maintaining it while your application scales. It is designed without a database or any other type of persistent storage that would slow it down.

User segmentation

Consistency in user segmentation is one of the most important things in A/B testing. This means that one individual user will always have a consistent experience over a long period of time.

Switchboard does consistent user segmentation based on a unique device id.

How to use it

iOS

Debug interface and extensive documentation here: Switchboard-iOS

Server

[Coming soon...]

Android

We're working on an updated Android client for Switchboard; in the meantime, here is the original client: Switchboard-Android

More information about it:

Problems & Bugs

Please report issues on each of the server or mobile repositories above.

License

Switchboard is licensed under the Apache Software License, 2.0 ("Apache 2.0")

Authors

Switchboard is brought to you by Philipp Berner and Zouhair Belkoura, founders of Keepsafe, and the rest of the Keepsafe team.

We'd love to have you contribute or join us!

Used in production for many millions of users

You might also like...
PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture.
PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture.

PinpointKit is an open-source iOS library in Swift that lets your testers and users send feedback with annotated screenshots using a simple gesture. F

The Swift (and Objective-C) testing framework.
The Swift (and Objective-C) testing framework.

Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by RSpec, Specta, and Ginkgo. // Swift import Quick import Nimbl

Remote configuration and A/B Testing framework for iOS

MSActiveConfig v1.0.1 Remote configuration and A/B Testing framework for iOS. Documentation available online. MSActiveConfig at a glance One of the bi

T - A simple testing framework using closures and errors

t Quickly test expectations What is t? t is a simple testing framework using clo

Genything is a framework for random testing of a program properties.

Genything is a framework for random testing of a program properties. It provides way to random data based on simple and complex types.

AB testing framework for iOS

ABKit Split Testing for Swift. ABKit is a library for implementing a simple Split Test that: Doesn't require an HTTP client written in Pure Swift Inst

Keep It Functional - An iOS Functional Testing Framework
Keep It Functional - An iOS Functional Testing Framework

IMPORTANT! Even though KIF is used to test your UI, you need to add it to your Unit Test target, not your UI Test target. The magic of KIF is that it

Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5 and iOS 15.
Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5 and iOS 15.

StoreHelper Demo Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5, iOS 15. See also In-App Purchases with Xcode 12 and

AutoMocker is a Swift framework that leverages the type system to let you easily create mocked instances of your data types.

AutoMocker Context AutoMocker is a Swift framework that leverages the type system to let you easily create mocked instances of your data types. Here's

Comments
  • Changed the old build system to the new: gradle.

    Changed the old build system to the new: gradle.

    Also changed the sample project to gradle with SwitchBoard android library as a gradle module with path specified in settings.gradle

    Project structures based on newest Android Studio Empty Activity Template. (changing all activities extends to AppCompatActivity)

    One needed additional adjustment (needed because network run on ui thread exception):

    The sample SwitchBoard.loadConfig on activities OnCreate moved to a Thread inside onStart, and applying the AB config changes after the config load inside runOnUiThread.

    This not satisfy the KeepSafe/Switchboard#20 but it's on way.

    opened by raulccabreu 9
  • Update iOS client

    Update iOS client

    Hi, I worked on the iOS Client:

    • Remove JSON-Framework and OpenUDID replace by native API
    • Migrate the project to iOS 7
    • Simplification of the interface and use blocks
    • Installation with CocoaPods (see README.md)
    opened by TofPlay 1
  • Fixed bucket error in example along with some comment typos

    Fixed bucket error in example along with some comment typos

    There appears to be a logic error in the example SwitchboardExperiments.php whereby the sample saying it consider select 20% of buckets but it actually considers them all. Hopefully this isn't my misunderstanding of how isInBucket works. While in here, I fixed some typos in comments.

    Great project. Hope this helps.

    opened by martinpeck 1
Owner
Keepsafe
Empowering the average person’s digital privacy we’re innovating on existing privacy, crypto and security technology. Over 50 million users.
Keepsafe
PlaygroundTester enables you to easily run tests for your iPad Playgrounds 4 project.

PlaygroundTester PlaygroundTester is a package that enables you to add tests to your iPad Swift Playgrounds project. Installation Just add PlaygroundT

Paweł Łopusiński 36 Dec 13, 2022
Control your iPhone from inside Xcode for end-to-end testing.

Remote - Control your iPhone from Xcode "Remote" is a plugin for Xcode that allows you to control an iPhone from a window on your Mac during developme

John Holdsworth 791 Dec 26, 2022
A flexible mock server for automated and regression testing of iOS, Android and other apps.

Note: This document is intended as a quick introduction to Voodoo. As Voodoo has a large number of features, please refer to Voodoo's Github Wiki for

Derek Clarkson 7 Nov 23, 2022
ShortWebCore - This iOS library lets you run automations on Web Views.

This iOS library lets you run automations on Web Views. Example (Optional) Declare class conforming to AutomationRunnerDelegate: import S

Emma Cold 19 Dec 26, 2022
Swifty tool for visual testing iPhone and iPad apps. Every pixel counts.

Cribble Cribble - a tool for visual testing iPhone and iPad apps. Every pixel counts. Getting Started An example app is included demonstrating Cribble

Max Sokolov 273 Nov 4, 2022
SwiftCheck is a testing library that automatically generates random data for testing of program properties

SwiftCheck QuickCheck for Swift. For those already familiar with the Haskell library, check out the source. For everybody else, see the Tutorial Playg

TypeLift 1.4k Dec 21, 2022
Testing the UI without UI Testing, a Swift experiment.

UI tests without UI Testing experiment This repo is a small experiment to see if there's an "in-between" for testing iOS applications. More feature-le

Joe Masilotti 20 Sep 26, 2022
Small library to easily run your tests directly within a Playground

[] (https://developer.apple.com/swift/) Build Status Branch Status master develop About PlaygroundTDD enables you to use TDD directly on Xcode Playgro

Whiskerz AB 317 Nov 22, 2022
Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running in minutes. @buildasaur

Buildasaur Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running

Buildasaurs 774 Dec 11, 2022
Erik is an headless browser based on WebKit. An headless browser allow to run functional tests, to access and manipulate webpages using javascript.

Erik Erik is a headless browser based on WebKit and HTML parser Kanna. An headless browser allow to run functional tests, to access and manipulate web

Eric Marchand 544 Dec 30, 2022