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