What is a SDK?

Using all the services available on the Hackle dashboard means using one of our SDKs.

Most SDKs are designed to be specific for each programming language used to create your platform, app, or website. Once installed, our SDKs will layer on top of your application/website/platform and obtain your user behavior to allow you to use all the Hackle functionalities from the Hackle dashboard.

SDK Types

We support two main types of SDK, client-side and server-side. Depending on your needs, you either choose one type of SDK or use both types if necessary.

For more information on the difference between client-side and server-side please check out the Client-side SDK and Server-side SDK document.

TypeDescription
Client-side- SDK functions run on the user's device, such as a browser or mobile app. - JavaScript, Android, iOS, React SDK, etc.
Server-side- SDK functions are executed on the server that provides the service. - Java/Kotlin, Python, Node.js SDK, etc.

SDK Functions

Hackle SDK carries out the following main functions:

  1. Distribute user traffic into test groups
    This function distributes incoming user traffic into test groups A, B, and C, and returns the information on the assigned groups of the users back to Hackle to keep a record of each userโ€™s exposure after the distribution is complete.

  2. Return information on feature releases to users
    This function is used by feature flags. It returns the information on whether a particular feature has been released for a certain user back to Hackle. This information is then relayed to the dashboard.

  3. Send user events
    This function is used by A/B testing and user funnel analysis. The information on the events fired by the users is sent back to Hackle to analyze user behavior.

  4. Targeting
    This function allows A/B testing and feature flags to target users with specific properties.
    In the case of A/B testing, only users with specific properties can participate in A/B testing, and in the case of feature flags, you can apply the settings of a feature flag to users with specific properties.

  5. Data segmentation
    This function allows for a more in-depth analysis with specific property values for the analysis criteria for users. Hackle requires defining user properties that correspond to each user in the analysis criteria and sending the properties to the Hackle.

Client-side SDK

SDKTest Group DistributionSend Event KeysFeature FlagData SegmentationTargetingMutually Exclusive SettingsParameter SettingsRemote Config
AndroidAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.6.0+2.9.0+2.11.0+
iOSAll VersionsAll Versions2.0.0+2.0.0+2.0.0+2.6.0+2.9.0+2.11.0+
JavaScriptAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+11.5.0+
ReactAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+11.5.0+
Not SupportedAll Versions2.0.0+2.0.0+2.0.0+Not SupportedNot SupportedNot Supported
UnityAll VersionsAll VersionsAll VersionsAll VersionsAll Versions1.2.0+1.3.0+1.4.0+

Server-side SDK

SDKTest Group DistributionSend Event KeysFeature FlagData SegmentationTargetingMutually Exclusive SettingsParameter SettingsRemote Config
Java/KotlinAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.6.0+2.8.0+2.9.0+
PythonAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.3.0+Not SupportedNot Supported
Node.jsAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+11.5.0+
PHPAll VersionsAll VersionsNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot Supported
ProxyAll VersionsAll VersionsNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot Supported
RubyAll VersionsAll VersionsNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot Supported

SDK Versions

SDK TypeSDKVersionRelease Date
Client-sideAndroid2.11.02022.11
iOS2.11.02022.11
JavaScript11.5.02022.11
React11.5.02022.11
React Native3.1.22022.03
Unity1.4.02022.11
Server-sideJava/Kotlin2.9.02022.10
Python3.0.02022.11
Node.js11.5.02022.11
PHP0.0.32020.11
Proxy0.1.02020.11
Ruby1.0.02020.12

๐Ÿ“˜

SDK Updates

Most SDKs are updated automatically, allowing you to simply integrate once. However, there are some SDKs that need to be updated manually.

Android, iOS, Java/Kotlin, PHP, and Ruby need manual updates and hence you need to make sure to enter the latest version during the Add Dependency step within the SDK Integration step (of each language).