flex_track library

FlexTrack - A flexible analytics tracking system for Flutter

FlexTrack provides a powerful routing system that allows you to send events to different analytics services based on configurable rules. It supports GDPR compliance, sampling, environment-based routing, and much more.

Quick Start

// Setup FlexTrack with trackers
await FlexTrack.setup([
  ConsoleTracker(),
  // Add your analytics trackers here
]);

// Track events
await FlexTrack.track(CustomEvent.named('user_signup'));

Advanced Setup

// Setup with custom routing
await FlexTrack.setupWithRouting([
  ConsoleTracker(),
], (routing) => routing
  .defineGroup('analytics', ['firebase', 'mixpanel'])
  .routeNamed('debug_').toDevelopment().onlyInDebug().and()
  .routeDefault().toAll()
);

Classes

BaseEvent
BaseTrackerStrategy
Base implementation of TrackerStrategy with common functionality
ConsentManager
Manages user consent for different types of data processing Provides GDPR and privacy compliance functionality
ConsentSummary
Summary of consent status for reporting and compliance
ConsentValidationData
ConsoleTracker
Console tracker that prints events to the debug console Perfect for development and debugging
DisabledTracker
Factory for creating disabled no-op trackers Useful for feature flags or environment-based configuration
EnvironmentConfig
Configuration based on detected environment
EnvironmentDetector
Utility class for detecting the current runtime environment
EventCategory
Represents a category of events for routing and organization
EventProcessingResult
Result of processing an event
FlexTrack
Main FlexTrack class - the entry point for the analytics routing system
GDPRDefaults
GDPR-compliant routing defaults for privacy compliance
MockTracker
Factory for creating mock trackers for testing
NoOpTracker
No-operation tracker that silently ignores all events Useful for testing, feature flags, or temporarily disabling tracking
PatternMatcher
Utility for matching event names and properties against patterns
PatternValidationResult
Result of pattern validation
PerformanceDefaults
Performance-optimized routing defaults to reduce overhead and improve app performance
PlatformInfo
Platform information
PropertyMatcher
Property matcher configuration
RouteConfigBuilder<T extends BaseEvent>
Builder for configuring individual route targets
RoutingBuilder
Main builder for creating routing configurations
RoutingConfiguration
Complete routing configuration that contains all rules and settings
RoutingDebugInfo
Debug information about routing an event
RoutingEngine
Engine responsible for matching events to routing rules and determining target trackers
RoutingResult
Result of routing an event through the engine
RoutingRule
Represents a routing rule that determines where events should be sent
RoutingRuleBuilder
Builder for configuring routing rule properties and conditions
SampleRateValidationResult
Sample rate validation result
SamplingConfig
Sampling configuration
SamplingStats
Sampling statistics
SamplingStrategy
Sampling strategy that encapsulates sampling logic
SamplingUtils
Utility class for event sampling operations
SetupValidationData
SkippedRule
Information about a rule that was skipped during routing
SmartDefaults
Smart defaults for common analytics routing scenarios
TrackerGroup
Represents a group of trackers that can be targeted for event routing
TrackerRegistry
Registry that manages all registered tracker strategies
TrackerStrategy
Interface for analytics tracker implementations
TrackingContext
Context information for tracking events Contains environment, user, and session data that affects routing and processing
TrackingResult
Result of tracking an event with a specific tracker
ValidationResult
Validation result
ValidationRule
Data classes for validation
ValidationTracker
ValidationTrackerGroup
ValidationUtils
Utility class for validating FlexTrack configurations and data

Enums

ConsentType
Types of consent that can be managed
Environment
Application environment types
EventCategoryPattern
Common event category patterns
GDPRRegion
GDPR regions with different compliance requirements
SamplingType
Types of sampling strategies

Extensions

EnvironmentExtension on Environment
Extension to provide convenient environment checks

Constants

flexTrackDescription → const String
FlexTrack package description
flexTrackVersion → const String
FlexTrack package version

Functions

setupFlexTrack(List<TrackerStrategy> trackers) Future<void>
Quick setup function for simple use cases
setupFlexTrackForDevelopment() Future<void>
Quick setup for development
setupFlexTrackForTesting() Future<MockTracker>
Quick setup for testing
setupFlexTrackWithDefaults(List<TrackerStrategy> trackers) Future<void>
Quick setup with smart defaults

Exceptions / Errors

ConfigurationException
Exception thrown by configuration-related operations
FlexTrackException
RoutingException
Exception thrown by routing-related operations
TrackerException
Exception thrown by tracker-related operations