| 维度 | Flutter ⭐ | Tauri 2.0 | .NET MAUI | Kotlin Multiplatform + Compose | Electron + Capacitor |
|---|---|---|---|---|---|
| Windows | ✅ 原生 | ✅ 原生 | ✅ 原生 | ✅ (Compose Desktop) | ✅ Chromium |
| Android | ✅ 原生 | ✅ (beta) | ✅ | ✅ | ✅ WebView |
| iOS | ✅ | ✅ (beta) | ✅ | ✅ | ✅ |
| macOS / Linux | ✅ | ✅ | ✅ | ✅ | |
| 单一代码库 | ✅ | ✅ | ✅ | ✅ | 双工程 |
| UI 一致性 | ✅ 自绘 | 依赖前端 | ✅ | ✅ | |
| 启动/体积 | 中 | 优 | 中 | 中 | 差 |
| 文件系统/原生 | 好 (dart:io + plugin) | 优 (Rust) | 好 | 好 | 差 |
| 大文本渲染 | 好 | 好 | 一般 | 好 | 好 |
| 社区 & 插件 | 极丰富 | 增长中 | 中 | 增长中 | 极丰富 |
| 中文资料 | 丰富 | 少 | 少 | 少 | 丰富 |
| 学习曲线 | 中 (Dart) | 陡 (Rust) | 中 (C#) | 中 (Kotlin) | 低 |
理由
- 同一份代码可编译 Android APK + Windows exe,后期 iOS/macOS/Linux 几乎零成本扩展,最契合"手机电脑通用"目标
- 自绘引擎保证两端 UI 100% 一致,省去适配成本
- 文本控件 (
TextField) 在桌面和移动均流畅,桌面端右键菜单/快捷键支持良好 (3.10+) - 生态里已有成熟的代码编辑器库(
re_editor、code_text_field)、树形视图、虚拟列表 - Dart 语言易上手,热重载极快,适合小团队/个人开发
劣势及对策
- Dart 语言普及度不如 JS → 本项目逻辑并不复杂,可接受
- 原生功能需要 plugin → 常用能力已有成熟插件(
file_picker、path_provider、shared_preferences、archive解压、image)
| 能力 | 推荐库 | 备注 |
|---|---|---|
| 代码编辑器 | re_editor + re_highlight |
性能优,支持大文件、语法高亮、代码折叠 |
| 树形控件 | flutter_fancy_tree_view |
虚拟滚动,支持 DnD |
| 多窗口/Tab | tabbed_view / 自定义 |
桌面常见模式 |
| 状态管理 | riverpod 2.x |
类型安全、可测试 |
| 路由 | go_router |
声明式 |
| 文件选择 | file_picker |
跨平台 |
| 路径/存储 | path_provider / path |
|
| ZIP / rwmod | archive |
Dart 纯实现 |
| INI 解析 | 自研(铁锈方言与标准 INI 不同) | 见 04 文档 |
| 图像处理 | image + flutter Canvas |
team color 替换 |
| 音频 | just_audio |
ogg/wav 试听 |
| 数据库 | drift / isar |
最近项目、索引缓存 |
| 日志 | logger |
|
| i18n | Flutter 官方 intl | |
| 桌面菜单/快捷键 | menu_bar + shortcuts |
|
| 桌面托盘 | tray_manager |
可选 |
- IDE:VS Code (+ Flutter/Dart 插件) 或 Android Studio
- Flutter 版本:
>= 3.22(Windows 桌面 stable,Android 支持好) - Dart:
>= 3.3 - CI:GitHub Actions 同时构建 Windows exe + Android APK
- 安装包:
- Windows:
msix或 Inno Setup - Android:gradle 签名 APK / AAB
- Windows:
- 代码规范:
very_good_analysislints +dart format - 测试:
flutter_test(unit) +integration_test(端到端)
如果团队已有 Rust 经验,Tauri 2.0 是强竞争者(移动端刚 GA,体积最小);
如果只做桌面端,Avalonia UI (C#) 也是优秀选择。
但从"手机+电脑优先、中文社区 + 个人/小团队"三大约束看,Flutter 最稳妥。