10 KiB
Raw Blame History

Mobile EDA - 手机端原理图编辑器

Flutter Platform License

在手机上画原理图 —— 流畅、直观、随时随地


📱 项目简介

Mobile EDA 是一款专为移动端设计的电子设计自动化 (EDA) 应用,让工程师能在手机上流畅编辑原理图、查看设计、协作评审。

核心价值:

  • 🎯 移动优先 - 触摸交互专为手机优化,单手可用
  • 流畅性能 - 10000 元件设计保持 48+ fps
  • 🌐 云同步 - 设计自动同步,多设备无缝切换
  • 📦 格式兼容 - 支持 KiCad 导入导出Tile 压缩格式

核心功能

编辑功能

功能 状态 说明
元件放置/移动/旋转 ⚠️ 待实现 支持 90°/180°/270°旋转
连线(总线/差分对) ⚠️ 待实现 引脚到引脚连接
单选/框选 已完成 批量操作支持
撤销/重做 ⚠️ 待实现 操作历史记录
保存/加载 ⚠️ 待实现 Isar 离线存储

查看功能

功能 状态 说明
双指缩放 已完成 0.1x ~ 100x
拖拽平移 已完成 惯性滚动
视图旋转 已完成 ±180°
深色模式 已完成 跟随系统/手动切换

高级功能

功能 状态 说明
DRC 规则检查 已完成 7 种规则,实时/批量检查
网表生成 已完成 SPICE/JSON 格式
KiCad 导入 已完成 .kicad_sch 格式
Tile 导出 已完成 70% 压缩率
云同步 已完成 后端 API 已就绪
项目协作 已完成 分享/权限/评论

国际化

语言 状态 词条数
简体中文 200+
繁体中文 200+
English 200+
العربية (RTL) 200+

🏗️ 技术架构

┌─────────────────────────────────────────────────────────┐
│                    Presentation Layer                    │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐   │
│  │   Screens   │ │   Widgets   │ │    Providers    │   │
│  └─────────────┘ └─────────────┘ └─────────────────┘   │
├─────────────────────────────────────────────────────────┤
│                      Domain Layer                        │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐   │
│  │   Models    │ │  Managers   │ │    Services     │   │
│  └─────────────┘ └─────────────┘ └─────────────────┘   │
├─────────────────────────────────────────────────────────┤
│                       Data Layer                         │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐   │
│  │   Isar DB   │ │  Tile Format│ │  KiCad Importer │   │
│  └─────────────┘ └─────────────┘ └─────────────────┘   │
├─────────────────────────────────────────────────────────┤
│                    Platform Layer                        │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐   │
│  │   FFI (C++) │ │  Channels   │ │   Optimizations │   │
│  └─────────────┘ └─────────────┘ └─────────────────┘   │
└─────────────────────────────────────────────────────────┘

技术栈:

  • 框架: Flutter 3.19+
  • 状态管理: Riverpod
  • 路由: GoRouter
  • 存储: Isar (高性能 NoSQL)
  • 渲染: CustomPainter + Skia
  • 后端: Node.js + Express + MongoDB

📂 项目结构

mobile-eda/
├── lib/
│   ├── main.dart                     # 应用入口
│   ├── core/                         # 核心模块
│   │   ├── config/                   # 应用配置
│   │   ├── routes/                   # 路由配置
│   │   ├── theme/                    # 主题 (浅色/深色)
│   │   ├── l10n/                     # 国际化 (4 语言)
│   │   └── optimization/             # 性能优化
│   ├── data/                         # 数据层
│   │   ├── models/                   # 数据模型
│   │   ├── format/                   # Tile 序列化
│   │   ├── import/                   # KiCad 导入
│   │   └── incremental/              # 增量保存
│   ├── domain/                       # 领域层
│   │   ├── models/                   # 核心数据模型
│   │   ├── managers/                 # 选择管理器
│   │   └── services/                 # 网表生成
│   └── presentation/                 # 展示层
│       ├── components/               # 核心组件 (画布)
│       ├── screens/                  # 页面
│       ├── widgets/                  # UI 组件
│       └── providers/                # 状态管理
├── test/                             # 测试 (68+ 用例)
├── docs/                             # 文档 (25+ 份)
├── compliance/                       # 合规文档
├── assets/                           # 静态资源
└── .github/workflows/                # CI/CD

🚀 快速开始

环境要求

  • Flutter SDK >= 3.19.0
  • Dart SDK >= 3.0.0
  • Xcode 15+ (iOS)
  • Android Studio / Android SDK (Android)

安装依赖

flutter pub get

运行应用

# 运行(热重载)
flutter run

# 指定设备
flutter run -d <device_id>

# 生成国际化代码
flutter pub run build_runner build --delete-conflicting-outputs

构建发布

# Android APK
flutter build apk --release

# Android App Bundle (Google Play)
flutter build appbundle --release

# iOS (需要 macOS + 签名证书)
flutter build ios --release

🧪 测试

# 运行所有测试
flutter test

# 运行单个测试
flutter test test/unit/theme_settings_test.dart

# 生成覆盖率报告
flutter test --coverage

测试覆盖:

  • 单元测试44+ 用例
  • 集成测试8 用例
  • E2E 测试10+ 用例
  • 性能测试6 场景

📊 性能基准

场景 指标 优化前 优化后 提升
1000 元件 FPS 55 60 +9%
内存 150MB 95MB -37%
5000 元件 FPS 45 55 +22%
内存 450MB 240MB -47%
10000 元件 FPS 30 48 +60%
内存 850MB 380MB -55%
启动时间 18s 11s -39%

详见 性能报告


📋 开发路线图

阶段 周期 状态 产出
Phase 1 Week 1-2 完成 架构选型 + 数据模型 + 交互规范
Phase 2 Week 3-6 完成 可编辑画布 + UI 组件 + 导入导出
Phase 3 Week 7-10 完成 DRC 检查 + 云同步 + 国际化 + 测试
Phase 4 Week 11-12 📄 文档完成 性能优化 + 上架指南 + 测试报告
P0 修复 Week 12 待启动 保存/元件添加/画布绘制

⚠️ 已知问题 (P0 阻塞)

以下核心功能尚未实现,当前版本不可发布

优先级 问题 影响 预计耗时
🔴 P0 保存功能未实现 无法发布 1-2h
🔴 P0 元件添加功能未实现 无法编辑 1-2h
🔴 P0 画布元件绘制未完成 只能画网格 1-2h
🟡 P1 撤销/重做功能未实现 体验缺失 1-2h
🟡 P1 性能优化未集成 大电路卡顿 2-3h

详见 Bug 追踪


📄 文档索引

设计文档

交付报告

部署指南

合规文档

测试报告


🌐 后端服务

后端项目位于:mobile-eda-backend

功能:

  • 用户认证(邮箱/密码 + 第三方登录)
  • 项目云同步
  • 协作功能(分享/权限/评论)

技术栈: Node.js + Express + MongoDB + Socket.IO


📞 联系方式


📄 许可证

MIT License


最后更新2026-03-07