Platform Plus is a package for easily figuring out information about the platform your code is running on

Features

Property Use-case
isAndroidNative Android native
isAndroidWeb Android browser
isIOSNative iOS native
isIOSWeb iOS browser
isWindowsNative Windows native
isWindowsWeb Windows browser
isMacOSNative macOS native
isMacOSWeb macOS browser
isLinuxNative Linux native
isLinuxWeb Linux browser
isFuschiaNative Fuschia native
isFuschiaWeb Fuschia browser (currently unsupported)
supportsFirebase Web or Android native or iOS native or macOS native
isUnitTest Running with flutter test
isPhysicalDevice Running on a physical device (not an emulator)
androidVersionCode Android SDK version (see AndroidVersionCode)
iosVersion iOS version
iosDevice The iOS device (see IOSDevice)
isTestFlight If the app was installed from TestFlight
webRenderer The current web renderer

Usage

import 'package:platform_plus/platform_plus.dart';

void example() async {
  await PlatformPlus.platform.init();

  if (PlatformPlus.platform.isAndroidNative) {
    // Do something
  } else if (PlatformPlus.platform.isAndroidWeb) {
    // Do something else
  }

  if (PlatformPlus.platform.isPhysicalDevice) {
    // Do something
  }

  if (PlatformPlus.platform.isUnitTest) {
    // Do something
  }

  final androidVersionCode = PlatformPlus.platform.androidVersionCode;
  if ((androidVersionCode ?? -1) >= AndroidVersionCode.s) {
    // Do something
  }

  final iosVersion = PlatformPlus.platform.iosVersion;
  if ((iosVersion ?? -1) >= 13) {
    // Do something
  }

  final iosDevice = PlatformPlus.platform.iosDevice;
  if (iosDevice == IOSDevice.iPhone) {
    // Do something
  }

  final webRenderer = PlatformPlus.platform.webRenderer;
  if (webRenderer == WebRenderer.wasm) {
    // Do something
  }
}

Libraries

platform_plus