visprofiler 1.0.3 copy "visprofiler: ^1.0.3" to clipboard
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.InvalidDocument error 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 MongoLong wrapper 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.calculateSignalLevel deprecation 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.0
    • permission_handler: ^12.0.1 → ^10.0.0
    • flutter_lints: ^5.0.0 → ^3.0.0
    • kotlinx-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_handler package
  • Comprehensive test coverage for all data models
  • Modern Dart best practices and null safety
0
likes
110
points
0
downloads

Publisher

unverified uploader

Weekly Downloads

Privacy-first device profiling SDK for Flutter. Collects device, network, and location data with comprehensive analytics.

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http, json_annotation, permission_handler, plugin_platform_interface

More

Packages that depend on visprofiler

Packages that implement visprofiler