obsly_flutter 0.3.1
obsly_flutter: ^0.3.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.
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.