πŸ“± app_device_network_info

A Flutter plugin that provides structured access to application, device, and network information β€” all in JSON-serializable format. Ideal for logging, analytics, debugging, or tagging API requests with environment metadata.

βš™οΈ Works on Android and iOS. No permissions required.


✨ Features

  • βœ… App info: name, version, build number, platform, environment
  • βœ… Device info: model, OS, manufacturer, screen resolution, language, unique ID
  • βœ… Network info: IP address, connection type (Wi-Fi, cellular)
  • βœ… All data serialized to clean, nested Map<String, dynamic>

πŸš€ Installation

Add this to your pubspec.yaml:

dependencies:
  app_device_network_info: ^0.0.4

Then run:

flutter pub get

🧠 Usage

import 'package:app_device_network_info/app_device_network_info.dart';

void main() async {
  final info = await AppDeviceNetworkInfo.getAll();
  print(info.toJson());
}

πŸ“¦ Output (Sample)

{
  "app": {
    "name": "ExampleApp",
    "id": "com.example.app",
    "versionKey": "42",
    "versionNumber": "1.2.3"
  },
  "device": {
    "manufacturer": "Apple",
    "type": 0,
    "id": "1e2d4f7b-bc90-41ea-9af6-21fd02be41c0",
    "model": "iPhone13,3",
    "os": 1,
    "osVersion": "17.2",
    "screen_resolution": "1125x2436",
    "device_language": "en-US"
  },
  "network": {
    "type": 0,
    "ip": "192.168.1.105"
  }
}

πŸ›  Fields

App Info

Field Type Example
name String ExampleApp
id String com.example.app
versionKey String 42
versionNumber String 1.2.3

Device Info

Field Type Example
manufacturer String Samsung, Apple
type int 0 = mobile
id (UUID) String 1e5rt71e...
model String iPhone13,3
os int 0 = Android, 1 = iOS
osVersion String 17.2, 12
screenResolution String 1125x2436
deviceLanguage String en-US
timezone String CEST, UTC , PST
timeZoneOffsetMinutes int 120,
currentDeviceTime String 2025-11-23T23:12:44
keyboardLocale String en-US

Network Info

Field Type Example
type int 0 = WiFi ,1 = Cellular ,2 = Bluetooth ,3 = Ethernet ,4 = Vpn ,5 = None ,6 = Other ,
ip String 192.168.1.105

πŸ“Ž Notes

  • The device ID is a persistent UUID stored using shared_preferences, if no reliable platform-specific ID is available.
  • No location or push token is collected β€” keeping it simple and permission-free.
  • Platform detection is inferred from device info (e.g., iOS vs Android).

πŸ” Permissions

None required! This plugin works without runtime permission prompts.


πŸ“„ License

MIT


πŸ’‘ Contributions

Pull requests, bug reports, and feedback are welcome!


πŸ“£ Author

Developed by ABOMIS Β· βœ‰οΈ mike.backshaw@abomis.com