Skip to content

Matzo/Jails

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Jails

AB testing framework for native apps of iOS.

iOS

Require

  • iOS 5.0 and later

Install

Using CocoaPods

Add below to your Podsfile.

pod "Jails"

Manual installation

  1. Open project on Xcode.
  2. Select scheme Jails > iOS Device then Project > Build.
  3. Select scheme Jails > iPhone 5.0 Simulator then Project > Build.
  4. Copy built libJails.a and Jails.h from Release-universal or Debug-universal into your project.
  5. Add -ObjC -all_load to Other Linker Flags of Build Setting.

Sample Code

// AppDelegate.m

#import "Jails.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      :
    [Jails breakWithConfURL:[NSURL URLWithString:@"http://your.domain.com/path/to/conf/jails.json"]];
      :
}

Jails.json

{"ClassNameOfViewController": [
  { "ratio": 0 },   // A: 0%
  { "ratio": 100,   // B: 100%
    "branchName": "b",
    "properties": [{
      "name": "scrollView",
      "frame": ["+0", "+44", "+0", "-44"]
    },
    {
      "name": "view",
      "createSubviews": [{
        "class": "UIButton",
        "background": "http://button/image.png",
        "frame": ["0", "0", "320", "44"],
        "action": "http://open/this/url/"
      }]
    }]
  }
]}
Key required Description
ClassNameOfViewController o This class name can be changed. You can specified subclasses of UIViewController or UIView.
ratio o Percentage for A/B test.
branchName - You can use this name as parameter for your analytics tools.
properties - You can change each properties with specified name.
Key for properties or createSubviews required Description
name o variable name as a property
background - If you specified as URL of image, draw as pattern tile. Or, draw color if you specified HEX color code.
frame - UIView's frame for iOS. You can specify relatively position.
text - For UILabel: changing labes's text. For UIButton: change buttons title. For UIWebView: change html contents.
action - For UIWebView: you can specify URL for HTML contetnts. For UIButton: you can specify URL for to call openURL:, or selector for addTarget:action:forControlEvents:
hidden - Change visibility of UI perts.
createSubview - You can use this param for original properties. So you cannot build tree hierarchy.

Tools

About

AB testing framework for native apps of iOS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published