Darti SDK
Klient Flutteri ja Darti rakendustele: puhas Dart, ilma käitusaegsete sõltuvusteta, ning samad sündmused, lipud ja postkast, mida kannavad teised kliendid.
Kus see on avaldatud
prodantix_sdk on pub.dev. Pure Dart, with no runtime dependencies.
Paigaldus
Bash
dart pub add prodantix_sdkNäide
Dart
import 'package:prodantix_sdk/prodantix_sdk.dart';
const projectKey = String.fromEnvironment('PRODANTIX_PUBLIC_KEY');
final client = ProdantixClient(
apiKey: projectKey,
host: 'https://eu.api.prodantix.com',
);
client.identify('user-123');
client.capture('order.completed', properties: {'total': 42});
final inbox = await client.getInbox();
await client.shutdown();See klient peab meeles, kes teda kasutab, seega määrab identify kasutaja id ühe korra ja iga järgnev kutse käib selle inimese kohta. Väljalogimisel kutsu reset.
Kauged ja kohalikud lipud
Kaugkontroll küsib serverilt ja on autoriteetne. Kohalik kontroll hindab reeglistiku puhverdatud hetktõmmist protsessi sees, ilma iga kutse juures edasi-tagasi käiguta, ning just seda kuum tee vajab.
Dart
// Remote: asks the server, and is the authoritative answer.
if (await client.isFeatureEnabled('new-checkout')) {
// ...
}
// Local: evaluated in process from a cached snapshot, no round trip per call.
if (await client.isFeatureEnabledLocal('new-checkout', properties: {'plan': 'pro'})) {
// ...
}
// Every per-flag read records one $feature_flag_called exposure.
final variant = await client.getVariant('new-checkout');
if (variant?['key'] == 'treatment') {
// ...
}
// A flag targeting a cohort reads this user's memberships from the store;
// pass them yourself to skip the lookup.
if (await client.isFeatureEnabledLocal('members', cohorts: ['<cohort id>'])) {
// ...
}Kus see töötab
See on mõeldud mobiilile ja Darti virtuaalmasinale ning jõuab võrku dart:io kaudu. Mis tahes muul platvormil anna kaasa oma Transport ja Requester; muus osas klient ei muutu.
Dart
final client = ProdantixClient(
apiKey: projectKey,
host: 'https://eu.api.prodantix.com',
transport: MyTransport(),
requester: myRequester,
// Hold a Socket.IO subscription to flag changes and refetch the snapshot on
// push, instead of waiting for the 30s poll.
streamFlags: true,
);