visprofiler 1.0.3
visprofiler: ^1.0.3 copied to clipboard
Privacy-first device profiling SDK for Flutter. Collects device, network, and location data with comprehensive analytics.
Changelog #
All notable changes to the VisProfiler SDK will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.3 - 2025-08-15 #
Fixed #
- CRITICAL FIX: Resolved 500 server errors caused by invalid BSON format in MongoLong serialization
- Fixed
bson.errors.InvalidDocumenterror by removing MongoLong dependency for memory fields - Improved token management with fresh token retrieval for each data send operation
- Enhanced retry logic with better error handling and progressive delays
Changed #
- BREAKING: Memory fields (
totalMemory,usedMemory) now use regular integers instead of MongoLong format - Increased API timeouts: data sending (60s), token retrieval (60s) for better reliability on slow networks
- Public IP timeout kept at 5s with graceful fallback to prevent delays
- Enhanced error logging with response body details for better debugging
Improved #
- Better authentication flow with automatic token cache clearing on 500 errors
- More robust retry mechanisms with exponential backoff
- Enhanced logging for network issues and timeout diagnostics
- Optimized payload serialization without BSON complexity
Technical Details #
- Removed
MongoLongwrapper class to eliminate BSON formatting issues - Updated data models to use native integer types for memory values
- Improved JSON serialization performance by removing conversion overhead
- Enhanced error recovery with smart fallback handling
Migration Guide #
No code changes required for existing implementations. Memory values are now direct integers:
// Before (1.0.2 and earlier)
final memoryLong = deviceInfo.totalMemory; // MongoLong object
final memoryInt = memoryLong?.toInt();
// After (1.0.3+)
final memoryInt = deviceInfo.totalMemory; // Direct integer
1.0.2 - 2025-08-15 #
Fixed #
- CRITICAL: Resolved Kotlin compilation errors that occurred during first-time installation
- CRITICAL: Fixed path resolution issues between different drive letters on Windows
- CRITICAL: Replaced all deprecated Android APIs with modern alternatives to prevent crashes
- Fixed
WifiManager.calculateSignalLeveldeprecation with proper fallbacks for Android 11+ - Improved Google Play Services availability checking with graceful degradation
- Enhanced location provider selection and error handling
- Fixed incremental compilation cache corruption issues
Changed #
- BREAKING: Updated minimum Dart SDK to 2.17.0 for better compatibility
- BREAKING: Updated minimum Flutter SDK to 2.5.0
- STABILITY: Downgraded Kotlin version from 2.1.0 to 1.9.10 for production stability
- STABILITY: Downgraded Android Gradle Plugin from 8.7.3 to 8.1.4 for broader compatibility
- COMPATIBILITY: Updated compile SDK from 35 to 34 for better device support
- COMPATIBILITY: Changed JVM target from 11 to 1.8 for wider Android version support
- Updated dependency versions to stable releases:
http: ^1.2.1 → ^0.13.0permission_handler: ^12.0.1 → ^10.0.0flutter_lints: ^5.0.0 → ^3.0.0kotlinx-coroutines-android: 1.7.3 → 1.6.4
Added #
- NEW: Comprehensive error handling for all API calls with graceful degradation
- NEW: ProGuard/R8 rules for proper code obfuscation support in release builds
- NEW: Extensive troubleshooting guide (TROUBLESHOOTING.md) with common solutions
- NEW: Manual signal level calculation for Android 11+ devices
- NEW: Enhanced WiFi connection info access with multiple fallback strategies
- NEW: Version compatibility matrix for Flutter, Android, Kotlin, and Gradle
- NEW: Better debugging capabilities with improved error messages
Improved #
- PERFORMANCE: Enhanced location provider selection logic with timeout handling
- RELIABILITY: More robust network information gathering with error recovery
- ACCURACY: Improved cellular signal strength detection across Android versions
- DETECTION: Enhanced device type detection for emulators vs real devices
- PRIVACY: Better compliance with Android 10+ privacy restrictions
- SECURITY: Enhanced permission handling with proper runtime checks
Security #
- Improved error handling to prevent information leakage in production
- Enhanced privacy compliance with modern Android restrictions
- Better permission validation and error recovery
1.0.1 - 2025-01-15 #
Changed #
- Updated dependency versions for better compatibility
- Improved pub.flutter-io.cn scoring with enhanced documentation
- Moved Google Play Services dependencies to SDK level (no longer user responsibility)
- Updated README.md with clearer installation instructions
- Enhanced dartdoc comments for better API documentation
- Fixed code formatting issues for better maintainability
Fixed #
- Shortened package description to meet pub.flutter-io.cn requirements
- Updated repository URLs to correct GitHub location
- Removed unused code and imports to improve code quality
- Fixed @override annotations for proper inheritance
- Improved .pubignore to exclude development files from publication
Improved #
- Better user experience with automatic dependency management
- Cleaner SDK integration requiring fewer user configuration steps
- Enhanced documentation coverage for public API methods
1.0.0 - 2024-12-18 #
Added #
- Initial release of VisProfiler SDK for Flutter
- Device profiling and analytics data collection
- Cross-platform support for Android and iOS
- Real-time data transmission to VisProfiler backend
- Comprehensive device information collection (brand, model, OS version, memory, etc.)
- Network information gathering (WiFi, cellular, connection status, public IP)
- Optional location data collection with permission handling
- Advertising ID collection with proper privacy controls
- Configurable data collection options through
VisProfilerOptions - Automatic periodic data sending with customizable intervals
- Robust error handling and retry mechanisms
- Comprehensive logging system with multiple log levels
- Data caching for performance optimization
- Permission management for location services
- JSON serialization for all data models
- Safe fallback mechanisms for data collection failures
- SDK health monitoring and testing utilities
- Support for custom contact information and extra payload data
Features #
- Device Information: Collect comprehensive device specs, hardware info, and system details
- Network Analysis: Monitor network connectivity, type, and performance metrics
- Location Services: Optional GPS/location data with proper permission handling
- Privacy Controls: Configurable data collection with advertising ID support
- Performance: Efficient data caching and optimized native implementations
- Reliability: Robust error handling, retry logic, and fallback mechanisms
- Logging: Detailed logging system for debugging and monitoring
- Customization: Flexible configuration options and extensible architecture
Technical Details #
- Built with Flutter and Dart
- Native platform implementations for Android and iOS
- JSON-based data serialization with
json_annotation - HTTP client for secure data transmission
- Permission handling through
permission_handlerpackage - Comprehensive test coverage for all data models
- Modern Dart best practices and null safety