-
public class ExperimentBucketerPure MurmurHash3 32-bit bucketing for deterministic experiment variant assignment. Public Kotlin counterpart to iOS
Sources/AppDNASDK/Config/ExperimentBucketer.swift(public enum ExperimentBucketer). Output MUST be byte-identical to the Swift version so the same user lands in the same variant on either platform.Hosts that want to bucket their own custom experiments (outside the SDK-managed
experimentsconfig doc) can call hash32 / assignVariant directly without depending on internal SDK state.SPEC-070-A finalization parity audit B1#4 — extract public API surface to mirror iOS. Internal SDK code paths still go through MurmurHash3 in ExperimentManager for back-compat; new callers should prefer ExperimentBucketer.hash32.
-
-
Field Summary
Fields Modifier and Type Field Description public final static ExperimentBucketerINSTANCE
-
Method Summary
-
-
Method Detail
-
hash32
final UInt hash32(String key, UInt seed)
Standard MurmurHash3 32-bit hash. Identical algorithm to iOS
ExperimentBucketer.hash32(_:seed:).
-
assignVariant
final static String assignVariant(String experimentId, String userId, String salt, List<ExperimentVariant> variants)
Assign a variant based on deterministic bucketing. Mirrors iOS
ExperimentBucketer.assignVariant(experimentId:userId:salt:variants:).Returns the variant id, or null if the variants list is empty. Weights should be 0.0..1.0 and sum to 1.0; the last variant catches any rounding remainder.
-
-
-
-