All Projects â†’ mfrachet â†’ rn-ab-hoc

mfrachet / rn-ab-hoc

Licence: other
👬 👭 Poor intrusive way to make A/B Testing by using an HoC instead of components

Programming Languages

javascript
184084 projects - #8 most used programming language
objective c
16641 projects - #2 most used programming language
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to rn-ab-hoc

php-client
PHP SDK client for Split Software
Stars: ✭ 14 (-41.67%)
Mutual labels:  ab-testing
proctor-webapp
Proctor-webapp is a web application for managing Proctor A/B test definitions.
Stars: ✭ 16 (-33.33%)
Mutual labels:  ab-testing
laboratory
Feature flags for multi-module Kotlin Android projects
Stars: ✭ 71 (+195.83%)
Mutual labels:  ab-testing
abba
A/B Testing framework
Stars: ✭ 16 (-33.33%)
Mutual labels:  ab-testing
VariantRetriever
VariantRetriever is a minimalist package for feature flagging
Stars: ✭ 23 (-4.17%)
Mutual labels:  ab-testing
iter8-analytics
AI-engine that powers Iter8
Stars: ✭ 16 (-33.33%)
Mutual labels:  ab-testing
java-client
Java SDK client for Split Software
Stars: ✭ 20 (-16.67%)
Mutual labels:  ab-testing
thomas
Another A/B test library
Stars: ✭ 20 (-16.67%)
Mutual labels:  ab-testing
experiment
A/B cookie testing tool for @laravel
Stars: ✭ 55 (+129.17%)
Mutual labels:  ab-testing
vue-a2b
Split Testing for Vue.js
Stars: ✭ 82 (+241.67%)
Mutual labels:  ab-testing
evolutio
ab testing framework with automated code removing
Stars: ✭ 15 (-37.5%)
Mutual labels:  ab-testing
laravel-ab
Laravel A/B experiment testing tool
Stars: ✭ 108 (+350%)
Mutual labels:  ab-testing
react-client
React JS SDK client for Split Software
Stars: ✭ 23 (-4.17%)
Mutual labels:  ab-testing
iter8
Kubernetes release optimizer
Stars: ✭ 217 (+804.17%)
Mutual labels:  ab-testing
Wysiwyg.ABTesting
A/B Testing Package for Neos
Stars: ✭ 16 (-33.33%)
Mutual labels:  ab-testing
android-projects
Android benchmark projects for Bazel and Gradle
Stars: ✭ 29 (+20.83%)
Mutual labels:  ab-testing
ruby-client
Ruby SDK client for Split Software
Stars: ✭ 22 (-8.33%)
Mutual labels:  ab-testing
abacus
Abacus: Automattic's Experimentation Platform UI
Stars: ✭ 21 (-12.5%)
Mutual labels:  ab-testing
mojito
🧪 Source-controlled split testing stack for building, launching and analysing A/B tests.
Stars: ✭ 49 (+104.17%)
Mutual labels:  ab-testing
intergo
A package for interleaving / multileaving ranking generation in go
Stars: ✭ 30 (+25%)
Mutual labels:  ab-testing

Build Status Coverage Status License: MIT

Poor intrusive way to make A/B Testing by using an HoC instead of components.



Usage

Installation

$ npm install --save rn-ab-hoc

Component

/* list.js */

import abConnect from 'rn-ab-hoc';
import FlatList from './flatList.js';
import ListView rom './listView.js';
import OtherList rom './otherList.js';

export default abConnect('ListExperiment',
 { variant: 'FlatList', component: FlatList },
 { variant: 'ListView', component: ListView },
 { variant: 'OtherList', component: OtherList }
);

The previous code defines :

  • An experiment name
  • A list of different variants with their names and associated components

Using a random variant

/* app.js */

import React from 'react';
import List from './list';

export default function App() {
    return (
      <List />
    );
}

This will load one of the three previous components (variants) defined using a randomize function

Forcing a variant

/* app.js */

import React from 'react';
import List from './list';

export default function App() {
    return (
      <List variant="FlatList" />
    );
}

This will force a specific variant (maybe sent by your backend) to be used inside the app.

Note that the forced variant takes over the random one. If you set a variant by forcing it, the previous random one will be erased and replaced by the forced one. Inverse is not true.

Which variant am I using ?

/* app.js */

import React from 'react';
import List from './list';

export default function App() {
    return (
      <List
        variant="FlatList"
        onVariantSelect={(variant) => console.log(variant)}
      />
    );
}

This will print FlatList. It also work with random variants.

Storage

The default storage system is AsyncStorage with a key that follows the pattern :

abhoc-variant-${experiment}

In the previous case, it would have been :

abhoc-variant-ListExperiment
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].