device_package_info_manager library

A comprehensive Flutter package for managing device and package information across Flutter applications.

This library provides clean, type-safe interfaces for accessing both package and device information with comprehensive utilities for version comparison, caching, validation, and more.

Example usage:

import 'package:device_package_info_manager/device_package_info_manager.dart';

void main() async {
  // Package Information Management
  final packageManager = await PackageInfoManagerImpl.create();
  final packageInfo = packageManager.getPackageInfo();
  print('App Name: ${packageInfo.safeAppName}');
  print('Version: ${packageInfo.displayVersion}');
  packageManager.printPackageInfo();

  // Device Information Management
  final deviceManager = await DeviceInfoManagerImpl.create();
  final deviceInfo = deviceManager.getDeviceInfo();
  print('Device: ${deviceInfo.displayName}');
  print('OS: ${deviceInfo.fullDeviceInfo}');
  print('Report: ${deviceManager.generateDeviceReport()}');

  // Device Identification (integrated into DeviceInfoManager)
  final persistentId = deviceManager.getPersistentUserId();
  final anonymizedId = deviceInfo.anonymizedDeviceId;
  print('Persistent User ID: $persistentId'); // Safe for Firestore!
  print('Anonymized ID: $anonymizedId');
  print('Primary Language: ${deviceInfo.primaryLanguage}');

  // Use specific utilities
  final isPhysical = deviceManager.isPhysicalDevice();
  final debugInfo = deviceManager.getDebugInfo();
}

Classes

AppDeviceInfo
Comprehensive model for storing and managing device information across Flutter applications.
AppPackageInfo
Comprehensive model for storing and managing package information across Flutter applications.
DeviceInfoManager
Comprehensive interface for managing device information across Flutter applications.
DeviceInfoManagerImpl
Implementation of DeviceInfoManager that fetches device information from the device.
PackageInfoManager
Comprehensive interface for managing package information across Flutter applications.
PackageInfoManagerImpl
Implementation of PackageInfoManager that fetches package information from the device.

Enums

DeviceType
Enumeration of device types for categorizing different device form factors.