client_information 1.1.0+1 copy "client_information: ^1.1.0+1" to clipboard
client_information: ^1.1.0+1 copied to clipboard

outdated

This is a plugin that let you get the basic information from your application's client. It's easy to use and support different platforms(Android, iOS and Web).

Client Information #

This is a plugin that let you get the basic information from your application's client. It's easy to use and support different platforms(Android, iOS and Web). There 4 different information types: "application information", "software information", "operating system information" and "device information".

Pub License: MIT

iOS screenshot

Android screenshot

Web screenshot

Information Types #

There are 4 different types:

  1. Application Information
  2. Software Information
  3. Operating System Information
  4. Device Information

Application Information #

Application information is all about the application you build. And notice that applicationId is not support for web application.

Attribute iOS Android Web
applicationId
String
O
bundleIdentifier
O
package name
x
default: application name
applicationType
String (app/web)
O O O
applicationName
String
O O O
applicationVersion
String
O O O
applicationBuildCode
String
O O O

Software Information #

"Software" is stand for the "software" run your application. e.g. "Operating System" for iOS/Android project, "Browser" for web project.

Attribute iOS Android Web
softwareName
String
O
OS name
O
OS name
O
Browser name
softwareVersion
String
O
OS version
O
OS version
O
Browser version

Operating System Information #

OS information will show you OS's name and version. Notice: web project may not get this information if the browser's user-agent doesn't contain any information of operating system.

Attribute iOS Android Web
softwareName
String
O
OS name
O
OS name
*O
OS name
(*unknown possible)
softwareVersion
String
O
OS version
O
OS version
*O
OS Version
(*unknown possible)

Device Information #

Device information will show you device ID and device name. Notice: web project doesn't support real deviceId, therefore it will use the package Ulid to generate a unique string and save to the browser's cookie.

Attribute iOS Android Web
deviceId
String
O O O
deviceName
String
O O x
default: osName osVersion / browserName browserVersion
(e.g. iOS 14 / Chrome 88.0)

Getting Started #

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  client_information: ^1.1.0+1

In your project add the following import:

import 'package:client_information/client_information.dart';

Then, you can get information like this:

// Get client information
ClientInformation info = await ClientInformation.fetch();

print(info.deviceId); // EA625164-4XXX-XXXX-XXXXXXXXXXXX
print(info.osName); // iOS

Mock Data for Test #

After version 1.0.2, you can mock data or change to "mockMode" for testing needs. You can set up like this:


In your test file:

setUp(() async {
  // Change to "MockMode" and set the default data you need.
  ClientInformation.mockOn(
      deviceId: 'mock_device_id', osName: 'MyCustomOS');
});

tearDown(() {
  // Close the "MockMode" in tearDown method
  ClientInformation.mockOff();
});

// Run your test
test('`deviceId` will be "mock_device_id"', () async {
  ClientInformation info = await ClientInformation.fetch();
  expect(info.deviceId, 'mock_device_id');
});
52
likes
40
points
8.09k
downloads

Publisher

unverified uploader

Weekly Downloads

This is a plugin that let you get the basic information from your application's client. It's easy to use and support different platforms(Android, iOS and Web).

Repository (GitHub)

License

MIT (license)

Dependencies

flutter, flutter_web_plugins, uuid

More

Packages that depend on client_information