Во Flutter очень важно иметь возможность определять операционную систему (ОС), на которой работает ваше приложение. Эти знания позволяют вам реализовать поведение, специфичное для платформы, настроить пользовательский интерфейс или адаптировать функции. В этой статье мы рассмотрим различные методы определения ОС во Flutter, а также приведем примеры кода.
- Использование библиотеки 
dart:io.
Библиотекаdart:ioпредоставляет информацию, специфичную для платформы, что делает ее простым вариантом для обнаружения ОС. Вот пример: 
import 'dart:io';
void main() {
  if (Platform.isAndroid) {
    print('Running on Android');
  } else if (Platform.isIOS) {
    print('Running on iOS');
  } else if (Platform.isWindows) {
    print('Running on Windows');
  } else if (Platform.isMacOS) {
    print('Running on macOS');
  } else if (Platform.isLinux) {
    print('Running on Linux');
  }
}
- Использование пакета 
package_info.
Пакетpackage_infoпозволяет получать информацию о самом приложении, включая платформу, на которой оно работает. Вот пример: 
import 'package:package_info/package_info.dart';
Future<void> main() async {
  final PackageInfo packageInfo = await PackageInfo.fromPlatform();
  print('Running on ${packageInfo.platformName}');
}
- Использование пакета 
device_info.
Пакетdevice_infoпредоставляет подробную информацию об устройстве, на котором установлено приложение, включая операционную систему. Вот пример: 
import 'package:device_info/device_info.dart';
Future<void> main() async {
  if (Platform.isAndroid) {
    final AndroidDeviceInfo androidInfo = await DeviceInfoPlugin().androidInfo;
    print('Running on Android ${androidInfo.version.release}');
  } else if (Platform.isIOS) {
    final IosDeviceInfo iosInfo = await DeviceInfoPlugin().iosInfo;
    print('Running on iOS ${iosInfo.systemVersion}');
  }
}
- Использование пакета 
responsive_builder.
Пакетresponsive_builderобеспечивает адаптивный подход к дизайну, позволяющий адаптировать пользовательский интерфейс вашего приложения в зависимости от размера экрана и Платформа. Вот пример: 
import 'package:responsive_builder/responsive_builder.dart';
void main() {
  final deviceScreenType = getDeviceType(MediaQuery.of(context).size);
  if (deviceScreenType == DeviceScreenType.mobile) {
    print('Running on a mobile device');
  } else if (deviceScreenType == DeviceScreenType.tablet) {
    print('Running on a tablet');
  } else if (deviceScreenType == DeviceScreenType.desktop) {
    print('Running on a desktop');
  }
}
Определение операционной системы во Flutter имеет решающее значение для реализации логики, специфичной для платформы, и обеспечения индивидуального пользовательского опыта. В этой статье мы рассмотрели несколько методов обнаружения ОС во Flutter, в том числе использование библиотеки dart:io, пакета package_info, пакета device_infoи <пакет s>15. Используя эти методы, вы можете создавать универсальные и ориентированные на платформу приложения Flutter.