Как определить платформу (операционную систему) на которой работает приложение, написанное на Dart'e
При разработке кроссплатформенных приложений периодически приходится учитывать особенности платформы, на которой приложение должно работать. В частности принципы построения пользовательского интерфейса на Android и iOS заметно отличаются и было бы желательно чтобы приложение предлагало тот же пользовательский опыт, что и нативные приложения, написанные под эту платформу с учетом тех принципов, которые декларируются разработчиками данной системы.
Отсюда вопрос:
Есть ли возможность узнать на какой платформе работает приложение и как это сделать?
Ответы (1 шт):
Определение текущей платформы
Да, это возможно сделать с помощью класса Platform из пакета dart:io
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// код, предназначенный для Android
} else if (Platform.isIOS) {
// код, предназначенный для iOS
}
Помимо Android, iOS данный пакет также может определить Linux, Windows, MacOS, Fuchsia
Platform.isAndroidPlatform.isFuchsiaPlatform.isIOSPlatform.isLinuxPlatform.isMacOSPlatform.isWindows
Определение того, работает ли приложение в веб-браузере
Также если Вы разрабатываете кроссплатформенное приложение на Flutter'е, которое может запускаться как на мобильных устройствах, десктопе, так и в браузере - вам нужен будет способ определить скомпилировано ли данное приложение под веб или нет.
Для этого есть константа kIsWeb в пакете package:flutter/foundation.dart
import 'package:flutter/foundation.dart' show kIsWeb;
if (kIsWeb) {
// запущено в вебе
} else {
// это точно не веб. Тут нужно сделать еще пару проверок, описанных выше
}
Документация: