Skip to content

Latest commit

 

History

History
70 lines (59 loc) · 3.44 KB

File metadata and controls

70 lines (59 loc) · 3.44 KB

02 · 技术选型

1. 跨平台框架对比

维度 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)

推荐:Flutter 3.x

理由

  1. 同一份代码可编译 Android APK + Windows exe,后期 iOS/macOS/Linux 几乎零成本扩展,最契合"手机电脑通用"目标
  2. 自绘引擎保证两端 UI 100% 一致,省去适配成本
  3. 文本控件 (TextField) 在桌面和移动均流畅,桌面端右键菜单/快捷键支持良好 (3.10+)
  4. 生态里已有成熟的代码编辑器库(re_editorcode_text_field)、树形视图、虚拟列表
  5. Dart 语言易上手,热重载极快,适合小团队/个人开发

劣势及对策

  • Dart 语言普及度不如 JS → 本项目逻辑并不复杂,可接受
  • 原生功能需要 plugin → 常用能力已有成熟插件(file_pickerpath_providershared_preferencesarchive 解压、image

2. 关键依赖库候选

能力 推荐库 备注
代码编辑器 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 可选

3. 开发工具链

  • 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
  • 代码规范very_good_analysis lints + dart format
  • 测试flutter_test (unit) + integration_test (端到端)

4. 备选方案说明

如果团队已有 Rust 经验Tauri 2.0 是强竞争者(移动端刚 GA,体积最小); 如果只做桌面端,Avalonia UI (C#) 也是优秀选择。 但从"手机+电脑优先、中文社区 + 个人/小团队"三大约束看,Flutter 最稳妥