SuperAPI AI 工具集

flutter-best-practices

编程与开发

查看项目

更新于 10-15 21:39

技能介绍

用途:在编写、评审、重构或规划 Flutter/Dart 代码(页面、功能、项目结构、状态管理、目录、组件等)时提供可维护性标准。资料称其提炼自官方 Flutter 架构指南与 LeanCode 交付 40+ Flutter 项目的经验。

主要能力:按任务读取对应参考文件——架构分层与 MVVM、仓库/服务见 references/architecture-layers.md;功能与目录结构、状态管理接线见 references/feature-structure.md;Dart/Flutter 代码、组件、测试、lint 见 references/dart-coding-practices.md;多团队/多包、monorepo、导航、本地化、API 契约、E2E 见 references/enterprise-scale.md;本地化与 UI 包字符串归属见 references/localization-package-boundaries.md。

核心规则:UI 与数据分离,依赖单向 View → ViewModel → Repository → Service,下层不导入上层,仓库之间不互相依赖;视图不含业务逻辑,数据逻辑在 view model/cubit 中且不访问 BuildContext;按功能而非按层组织目录;状态用 sealed/union 类型(initial/inProgress/failure/ready)穷尽处理,一次性效果作为事件;仅在收益足够时增加层。编码上优先使用意图明确的组件而非 Container,使用现代 Dart(模式匹配、switch 表达式、records、集合 if/for/spread),返回 sliver 的组件以 Sliver 前缀命名,测试使用表达性匹配器并减少依赖,每个 // ignore: 需注明原因,错误日志使用专用 error/stackTrace 参数。

使用方式:按任务读取对应参考文件,任务重叠时可读多个;小型任务可仅用核心规则。工作流清单覆盖新增功能/页面、代码评审、新项目启动。默认包组合包括 bloc(Cubit)+freezed、provider、flutter_hooks、melos、flutter_localizations+intl、leancode_lint、patrol。

限制:官方指南不绑定状态管理方案,重点是分层而非具体包;与现有代码冲突时应优先保持一致并指出冲突,而非静默重写。具体安装命令与更多细节资料未提供。