A library for getting platform details.

pub package

This lightweight package allows in a very simple and optimized way to obtain details about the platform on which it is running. It's multi-platform, and supports mobile, desktop, and the browser.

Using

The easiest way to use this library is to call the PlatformDetail class as follows. Multiple instances are not being created since thanks to a factory constructor it always returns an internal singleton.

Detecting by type of platform

If you just need to know if it's mobile, desktop, web, or even desktop/web. You will love:

import 'package:platform_detail/platform_detail.dart';

if (PlatformDetail.isMobile) {
  print('The current platform is Mobile');
}  

if (PlatformDetail.isDesktopOrWeb) {
  print('The current platform is Desktop or Web');
}

if (PlatformDetail.isDesktop) {
  print('The current platform is Desktop');
}

if (PlatformDetail.isWeb) {
  print('The current platform is web');
}

In addition, you can also use the enum in the PlatformGroup to which it belongs. That is, if it is web, mobile or desktop:

switch (PlatformDetails.currentGroupPlatform) {
  case PlatformGroup.mobile:
    print('The current group platform is mobile');
    break;
  case PlatformGroup.web:
    print('The current group platform is web');
    break;
  case PlatformGroup.desktop:
    print('The current group platform is desktop');
    break;
}

Detecting by single platform

If instead you want to ask individually for each platform supported by Flutter:

if (PlatformDetail.isIOS) {
  print('The current platform is iOS');
}

if (PlatformDetail.isAndroid) {
  print('The current platform is Android');
}

if (PlatformDetail.isFuchsia) {
  print('The current platform is Fuchsia');
}

if (PlatformDetail.isWindows) {
  print('The current platform is Windows');
}

if (PlatformDetail.isLinux) {
  print('The current platform is Linux');
}

if (PlatformDetail.isMacOS) {
  print('The current platform is macOS');
}

Get a device description

If you need more detailed information about the device and operating system it is running on. In web you will get information from the browser:

final descriptionDevice = await PlatformDetail.deviceInfo();

Light/Dark Mode

You can detect too if the device is configured in light or dark mode:

if (PlatformDetail.isLightMode) {
  print('The current platform is configured with light mode');
}

if (PlatformDetail.isDarkMode) {
print('The current platform is configured with dark mode');
}

Also, you can use the DeviceTheme enum for this:

if (PlatformDetail.theme == DeviceTheme.light) {
  print('The current device is configured in light mode');
}

if (PlatformDetail.theme == DeviceTheme.dark) {
print('The current device is configured in dark mode');
}

Libraries

platform_detail