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
}
}