obsly_flutter 1.0.1
obsly_flutter: ^1.0.1 copied to clipboard
Advanced Flutter SDK for comprehensive user behavior analytics, UI event tracking, automatic screenshot capture with debug tools, and GoRouter navigation support.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.1 - 2025-01-08 #
Added #
- Crash Event Capture: Added crash events on tap pay bills for better error tracking
- Red Dot Position Indicator: Visual position indicator for zoom view in debug tools
- Histogram Timings: Enhanced timing capture with proper bucket handling
- User Agent Parser: Added comprehensive user agent parsing capabilities
- Movable Debug Tools: Draggable and resizable Obsly tools button for mobile devices
- Screenshot Zoom: Fullscreen zoom functionality for mobile screenshots
- PII Filtering System: Flexible PII filtering for banking apps with rule editor
- Configuration Assistant: Dart/Flutter-based configuration generator
- Rate Limiting Controls: Optional rate limit disable functionality
- Dio HTTP Integration: Elegant HTTP client integration with extension API
- GoRouter Support: Complete navigation tracking support for GoRouter applications
Enhanced #
- Logging Optimization: Massive reduction in excessive debug logging noise
- Rules Engine: JavaScript rule engine optimizations with session persistence
- UI Event Capture: Improved tap vs scroll detection and gesture handling
- Debug Tools UI: Better visual controls and layout improvements
- Performance: Optimized rule conversion and storage operations
- Test Coverage: Comprehensive test improvements and optimization
Fixed #
- Storage Logging: Reduced verbose storage operation logging
- Event Lifecycle: Moved excessive event logs from debug to verbose level
- Timestamp Handling: Fixed numeric timestamp parsing in JsonFactoryMixin
- UI Integration: Resolved various UI event registration issues
- Navigation Errors: Fixed timer not found errors in navigation lifecycle
- Histogram Buckets: Replaced infinity values with safe serialization limits
- Buffer Configuration: Fixed buffer limit validation in configuration
- Test Failures: Resolved multiple test failures improving from 233 to 2 failing tests
- Memory Management: Better cleanup and disposal of interceptor components
- Type Safety: Enhanced null handling and defensive type checking
Breaking Changes #
- None - this release maintains backward compatibility
Performance #
- 68% Code Reduction: Massive optimization in ConfigEditorScreen
- 75% Size Reduction: Ultra-compact code implementation
- Logging Efficiency: Converted debug logs inside loops to verbose level
- Storage Operations: Optimized storage access patterns
Technical Debt #
- TODO/FIXME Policy: Enforced comment policy with updated analysis settings
- Import Structure: Replaced relative imports with package imports
- Linting Rules: Comprehensive linting improvements and fixes
- Code Quality: Removed dead code and improved maintainability
0.3.4 - 2025-09-03 #
Documentation #
- Professional Branding: Refined README with more professional terminology
- Clear Positioning: Changed title to "Advanced User Behavior Analytics"
- Clean Messaging: Removed third-party references for cleaner presentation
- Improved Clarity: Enhanced initialization and integration documentation
0.3.3 - 2025-09-03 #
Enhanced #
- UI Event Detection: Improved tap vs scroll detection mechanism in UI integration
- Event Timing: Fixed UI event route screenshot timing mismatch issues
- Gesture Recognition: Streamlined gesture detector by removing unused callbacks
- Test Coverage: Enhanced test runner script and overall test framework stability
Fixed #
- UI integration timing issues with navigation and screenshot capture
- Tap text extraction failures in certain scenarios
- Gesture detection optimization and performance improvements
0.3.2 - 2025-09-03 #
Added #
- Dio HTTP Client Integration: Full support for Dio HTTP client monitoring alongside native HTTP client
- Extension API: Added
dio.addObsly()extension method for seamless Dio integration - Automatic Request Interception: Capture requests, responses, and errors from Dio instances
- Duplicate Prevention: Intelligent detection to prevent adding multiple Obsly interceptors
- Real Integration Tests: Comprehensive test suite without mocks to verify actual HTTP interception
Technical #
- Added
DioIntegrationclass for managing Dio HTTP monitoring - Added
ObslyDioExtensionprovidingaddObsly()API - Integrated Dio initialization alongside existing HTTP integration
- Maintained backward compatibility with existing HTTP client monitoring
0.3.1 - 2025-09-02 #
Fixed #
- GoRouter UI Events: Fixed critical issue where UI events (clicks, taps, interactions) were not being registered in GoRouter-based applications (#171)
- Added WidgetsBinding fallback context for UI event processing when NavigatorKey context is null (common in GoRouter apps)
- Improved UI event capture reliability across different navigation architectures
Added #
- Comprehensive test coverage for GoRouter UI events integration
- Enhanced debugging capabilities for GoRouter UI event troubleshooting
- Updated documentation with detailed GoRouter integration examples and troubleshooting guide
Documentation #
- Added comprehensive "Routing and Navigation Support" section to README
- Included GoRouter setup examples and best practices
- Added troubleshooting guide for navigation issues
- Enhanced feature highlighting for GoRouter integration
0.3.0 - 2025-09-02 #
Added #
- GoRouter Navigation Support: Complete integration with GoRouter for automatic navigation tracking
- New
ObslySDK.goRouterObserversgetter for seamless GoRouter integration - Automatic MaterialApp.router detection and GoRouter initialization
- NavigatorObserver implementation for capturing all GoRouter navigation events (push, pop, replace, remove)
- Real-time route information extraction using GoRouter's routeInformationProvider API
- Support for route parameters and complex GoRouter configurations
- Framework-agnostic navigation provider system supporting multiple routing libraries
Changed #
- BREAKING CHANGE: Removed manual GoRouter integration methods (
initializeGoRouter,notifyRouteChange,isGoRouterActive) in favor of automatic detection - Simplified GoRouter integration to single observer pattern:
observers: ObslySDK.goRouterObservers - Removed go_router from main dependencies (now dev_dependency only for testing)
- Enhanced AppWrapper to automatically detect and initialize GoRouter when MaterialApp.router is used
- Updated package description to highlight GoRouter navigation support
Removed #
- Legacy manual GoRouter integration helper class (137 lines of unused code)
- Multiple redundant API methods replaced by automatic integration
- Platform-specific files from obsly_demo_app (Android, iOS, macOS) - now web-only demo
Technical Details #
- Uses dynamic typing and reflection for GoRouter integration without hard dependency
- Automatic route information extraction from GoRouter.routeInformationProvider.value.uri.path
- Single initialization prevents multiple GoRouter setup calls
- Complete test coverage with real GoRouter API integration tests
- Maintains backward compatibility for non-GoRouter applications
0.2.1 - 2025-01-03 #
Fixed #
- Fixed .gitignore patterns for Android gradle build artifacts
- Fixed setState warning in rules_helpers.dart debug component
- Removed erroneously tracked gradle cache files from repository
Changed #
- Improved repository cleanliness for pub.flutter-io.cn publishing
- Enhanced code quality and linting compliance
0.2.0 - 2025-01-03 #
Added #
- Advanced Flutter SDK for comprehensive user behavior analytics
- Automatic UI, navigation, network, console and crash capture
- Optional screenshot capture on UI and rage-click events
- Performance transactions and steps tracking
- Custom metrics (counter, gauge, histogram timer)
- Tags, context, session and user identification
- Rate limiting system with configurable limits per event type
- Request body and headers whitelist configuration
- Debug tools with overlay for development
- Comprehensive rules engine with JavaScript compatibility
- Multi-platform support (iOS, Android, Web, macOS)
- Automatic interceptors for HTTP requests, crashes, and UI events
- Screenshot capture with boundary management
- Session management with automatic rotation
- Storage system with Hive backend
- Device and app information collection
- Defensive wrapper ensuring stability
Features #
- Initialization: Easy SDK setup with comprehensive configuration options
- App Wrapping: Required wrapper for global UI and navigation interception
- Configuration: Extensive config options matching JavaScript Browser SDK API
- Developer Methods: Complete API for session, client, and application management
- Rate Limiting: Configurable per-event-type rate limits with bucket system
- Request Monitoring: Whitelist-based request/response body and headers capture
- Debug Tools: Development overlay for event inspection and testing
- Rules Engine: JavaScript-compatible rules processing with Dart implementation
- Multi-platform: Cross-platform support with platform-specific optimizations
Technical #
- Flutter >= 3.0.0 compatibility
- Dart >= 3.4.0 support
- Comprehensive test suite with >90% coverage
- Performance optimizations and memory management
- Defensive programming patterns preventing app crashes
- Modular architecture with clear separation of concerns
[Unreleased] #
Planned #
- Enhanced analytics dashboards
- Additional metric types
- Extended platform support
- Performance optimizations
- Documentation improvements
For more information about releases and migration guides, see our documentation.