Ответ
Flutter поддерживает кроссплатформенную разработку для следующих целевых платформ:
📱 Мобильные ОС (стабильная поддержка):
- Android (API 19+, Android 4.4 KitKat и выше)
- iOS (iOS 11.0 и выше, включает iPhone, iPad)
💻 Десктопные ОС (стабильная поддержка):
- Windows (Windows 7 и выше, 64-битная архитектура)
- macOS (macOS 10.11 El Capitan и выше)
- Linux (64-битные дистрибутивы: Ubuntu, Debian, Fedora и др.)
🌐 Веб (стабильная поддержка):
- Современные браузеры через Flutter Web (компиляция в JavaScript)
- Поддерживает Chrome, Firefox, Safari, Edge
- Два режима рендеринга:
html(DOM-based) иcanvaskit(Skia-based)
🔧 Встраиваемые системы (Embedded) и другие платформы:
- Поддержка через Flutter Embedder API
- Экспериментальная поддержка для Raspberry Pi, автомобильных систем, IoT-устройств
- Возможность интеграции в существующие нативные приложения
Пример определения платформы в коде:
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart' show kIsWeb;
String getPlatformInfo() {
if (kIsWeb) {
return 'Запущено в веб-браузере';
} else if (Platform.isAndroid) {
return 'Запущено на Android ${Platform.version}';
} else if (Platform.isIOS) {
return 'Запущено на iOS';
} else if (Platform.isWindows) {
return 'Запущено на Windows';
} else if (Platform.isMacOS) {
return 'Запущено на macOS';
} else if (Platform.isLinux) {
return 'Запущено на Linux';
}
return 'Неизвестная платформа';
}
// Условная компиляция для платформо-специфичного кода
void setupPlatformSpecificFeatures() {
if (Platform.isAndroid) {
// Настройки специфичные для Android
setupAndroidNotifications();
} else if (Platform.isIOS) {
// Настройки специфичные для iOS
requestIOSPermissions();
}
}
Важные особенности:
- Один кодовая база для всех платформ
- Нативные производительность и внешний вид через собственный движок рендеринга (Skia)
- Доступ к нативным API через платформенные каналы (platform channels) и пакеты (plugins)
- Поддержка адаптивных интерфейсов, которые учитывают особенности каждой платформы