Our SDKs are designed to live at the application layer of your application and provide a secure and out-of-the-box method for controlling your experiments and feature flags. Each SDK has two main functions:
- Serve as a decision engine for your application
- Automatically capture what variants of your features your customers are served
When you set up rules for your feature flags and experiments to be targeted to subsets of your customer base in Split (e.g., run a 50/50 test of a new home page on customers in New York), our SDKs automatically download down these rules and maintain a local copy of them on your machines. From there, our SDKs then take care of keeping themselves up to date by periodically checking for any changes to the rules that are made in the Split user interface.
When your application then loads for your customers, you can simply ask the SDK via a method called
getTreatment to decide what variant of a feature the customer should see. Since the SDK is maintaining a local copy of the rules that govern your features and experiments, it can simply reference that copy of your rules and make the decision to serve "on" or "off" to your customer without having to make a single remote call. From there, you can take the decision returned by our SDK and use that information to serve up the proper experience to your customer. In this manner, our SDK is able to abstract out any need to hardcode this type of decision making in your application.
You can find out how to spin up one of our 16 SDKs at each languages specific reference doc:
- Android docs
- Angular utilities docs
- Browser SDK docs
- Flutter plugin docs
- GO docs
- iOS docs
- Java docs
- .NET docs
- Node.js docs
- PHP docs
- Python docs
- React SDK docs
- React Native SDK docs
- Redux SDK docs
- Ruby docs
Capturing what your customer was served
Each time our SDK makes a decision of what your customer should be served, it automatically takes that information and queues it up on your machines. The SDK then takes care of all the work in passing this information up to Split in the background without ever slowing down your application. By capturing this information, you can easily understand what customers are being served and set the basis for being able to properly measure your experiments.