본문으로 건너뛰기

클라이언트 라이브러리

프레임워크 어댑터

Flutter 래퍼

Dart 클라이언트 위에 얹는 환경 변수 기반 텔레메트리 부트스트랩과 내비게이터 옵서버입니다. 호스트와 공개 키가 모두 있지 않으면 아무 일도 하지 않습니다.

배포 위치

prodantix_sdk_flutter on pub.dev. It wraps prodantix_sdk.

설치

Bash
flutter pub add prodantix_sdk_flutter

환경에 따른 게이트

fromEnv는 호스트와 공개 키가 모두 있고 키의 형태가 올바를 때에만 동작하는 클라이언트를 반환합니다. 그 밖의 경우에는 조용한 무동작 객체를 돌려주므로 수집 자격 증명 없이도 앱은 똑같이 배포되며, 형식이 잘못된 키는 부팅 시 충돌 대신 onError로 보고됩니다.

Dart
import 'package:prodantix_sdk_flutter/prodantix_sdk_flutter.dart';

final telemetry = Telemetry.fromEnv(
  host: const String.fromEnvironment('PRODANTIX_HOST'),
  key: const String.fromEnvironment('PRODANTIX_PUBLIC_KEY'),
  onError: (error) => debugPrint('prodantix: $error'),
);

telemetry.identify('user-123');
telemetry.track('app.opened', properties: {'source': 'cold_start'});

await telemetry.shutdown();

화면 추적

옵서버를 내비게이터에 추가하면 푸시되거나 교체된 모든 라우트가 화면 이벤트를 보고하며, 이는 웹 SDK의 페이지뷰 자동 수집에 대응합니다. 이름이 없는 라우트는 건너뜁니다.

Dart
MaterialApp(
  navigatorObservers: [TelemetryRouteObserver(telemetry)],
  home: const HomePage(),
);

// Or, with go_router:
GoRouter(
  observers: [TelemetryRouteObserver(telemetry)],
  routes: routes,
);
이 패키지는 경로가 아니라 버전 범위로 prodantix_sdk에 의존합니다. pub.dev가 경로 의존성을 가진 패키지를 거부하기 때문입니다. 따라서 Dart 클라이언트가 이 패키지보다 먼저 pub.dev에 올라가야 합니다.