Flutter 多平台项目开发指南
Flutter 多平台项目开发指南
本指南将帮助你从 0 到 1 创建并适配一个支持 Android / iOS / Web / Windows / macOS / Linux 的 Flutter 多平台项目。
✅ 一、创建支持多平台的 Flutter 项目
flutter create my_multi_platform_app
cd my_multi_platform_app
默认会生成支持以下平台的代码结构:
- Android(
android/
) - iOS(
ios/
) - Web(
web/
) - Windows(
windows/
) - macOS(
macos/
) - Linux(
linux/
)
需要 Flutter 3.0+ 才支持 Desktop/Web 默认创建。
✅ 二、确保已启用各平台支持
运行以下命令开启所有平台支持(如未默认开启):
flutter config --enable-web
flutter config --enable-macos-desktop
flutter config --enable-windows-desktop
flutter config --enable-linux-desktop
使用以下命令查看当前已支持的平台:
flutter devices
✅ 三、已有项目添加平台支持
如果已有项目未包含所有平台支持,可使用:
flutter create .
这会自动补充缺失的 web/
, windows/
, macos/
, linux/
等目录。
✅ 四、运行项目(多平台调试)
平台 | 命令 |
---|---|
Android | flutter run -d android |
iOS | flutter run -d ios |
Web | flutter run -d chrome |
Windows | flutter run -d windows |
macOS | flutter run -d macos |
Linux | flutter run -d linux |
也可以在 VS Code / Android Studio 中通过设备面板选择运行平台。
✅ 五、代码中判断运行平台
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart' show kIsWeb;if (kIsWeb) {// Web 平台
} else if (Platform.isAndroid) {// Android 平台
} else if (Platform.isIOS) {// iOS 平台
} else if (Platform.isWindows) {// Windows 平台
} else if (Platform.isMacOS) {// macOS 平台
} else if (Platform.isLinux) {// Linux 平台
}
✅ 六、推荐的多平台开发实践
项目内容 | 推荐做法 |
---|---|
UI 适配 | 使用 LayoutBuilder / MediaQuery 实现响应式布局 |
文件路径适配 | 使用 path_provider 插件 |
插件选择 | 查阅 pub.dev,确认插件支持哪些平台 |
平台代码差异 | 封装 PlatformService 做平台判断与分发 |
✅ 七、项目构建发布命令
平台 | 命令 |
---|---|
Android APK | flutter build apk |
Android AAB | flutter build appbundle |
iOS | flutter build ios |
Web | flutter build web |
macOS | flutter build macos |
Windows | flutter build windows |
Linux | flutter build linux |
✅ 八、推荐插件(支持多平台)
插件 | 用途说明 |
---|---|
shared_preferences | 简单持久化存储 |
url_launcher | 打开外部链接 |
device_info_plus | 获取设备信息 |
flutter_local_notifications | 本地通知 |
path_provider | 获取平台路径 |
package_info_plus | 获取应用版本信息 |
go_router / beamer | 多平台路由支持 |
✅ 九、桌面和 Web 的开发注意事项
平台 | 注意事项 |
---|---|
Web | 不支持 dart:io ,应使用 http 等 Web API 替代 |
桌面端 | 部分插件需要额外权限或配置支持 |
UI 布局 | 桌面建议优化键盘和鼠标交互体验,使用响应式布局组件 |
✅ 十、总结推荐
目标 | 推荐方案 |
---|---|
跨平台开发 | 使用 Flutter 多平台项目结构 |
快速适配 | 利用平台判断拆分逻辑 |
插件兼容性 | 优先选支持 Web/Desktop 的插件 |
UI 兼容性 | 使用响应式布局应对不同尺寸与 DPI |
如需更多模板、插件推荐或平台适配方案,可查阅 Flutter 官方文档。