What is a SDK?

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

Target Audience

The SDK set-up process will require basic development skills.

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.

If you have any questions regarding any part of the documentation, feel free to reach us at [email protected]. We always get back within 2 business days.

For product managers and marketers who want a walkthrough guide on Hackle's actual product offerings on our dashboard, check out the documents underneath our Getting Started (Product Guide)

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, Unity, Flutter 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 SettingsMulti IdentifiersRemote Config
AndroidAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.6.0+2.9.0+2.5.0+2.11.0+
iOSAll VersionsAll Versions2.0.0+2.0.0+2.0.0+2.6.0+2.9.0+2.5.0+2.11.0+
JavaScriptAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.5.0+
ReactAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.5.0+
React NativeAll VersionsAll Versions2.0.0+2.0.0+2.0.0+3.3.0+3.3.0+3.3.0+3.3.0+
UnityAll VersionsAll VersionsAll VersionsAll VersionsAll Versions1.2.0+1.3.0+Not Supported1.4.0+
FlutterAll VersionsAll VersionsAll VersionsAll VersionsAll VersionsAll VersionsAll VersionsAll VersionsAll Versions

Server-side SDK

SDKTest Group DistributionSend Event KeysFeature FlagData SegmentationTargetingMutually Exclusive SettingsParameter SettingsMulti IdentifiersRemote Config
Java/KotlinAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.6.0+2.8.0+2.5.0+2.9.0+
PythonAll VersionsAll Versions2.0.0+2.0.0+2.1.0+2.3.0+3.1.0+2.3.0+3.2.0+
Node.jsAll VersionsAll Versions2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.5.0+
PHPAll VersionsAll VersionsNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot Supported
RubyAll VersionsAll VersionsNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot SupportedNot Supported

SDK Versions

SDK TypeSDKLatest Version
Client-sideAndroidMaven Central
iOSCocoapods Version
JavaScriptnpm
Reactnpm
React Nativenpm
UnityGitHub release (with filter)
FlutterPub Version (including pre-releases)
Server-sideJava/KotlinMaven Central
PythonPyPI - Version
Node.jsnpm
PHPPackagist Version (custom server)
RubyGem (including prereleases)
GoGitHub tag (with filter)

πŸ“˜

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).