最近在 GitHub 上看到一个很有意思的项目:flutter/skills。它来自 Flutter 官方团队,目标是给 AI 助手(比如 Cursor、Copilot 等)提供一套「技能包」,让 AI 在写 Flutter 代码时更专业、更符合最佳实践。
为什么需要 Flutter Skills?
用 AI 写 Flutter 时,常见情况是:能跑,但不够「地道」。比如状态管理该用 setState 还是 Provider、布局该用 LayoutBuilder 还是 MediaQuery,AI 往往给不出最合适的方案。
Flutter Skills 就是为解决这类问题设计的:把 Flutter 官方推荐的做法、约束和决策逻辑,写成结构化的「技能」,让 AI 在生成代码时按这些规则来,而不是凭感觉。
它到底是什么?
可以把它理解成:给 AI 看的 Flutter 最佳实践手册。每个技能对应一个具体领域,例如:
- 无障碍(Accessibility)
- 动画(Animation)
- 应用体积(App Size)
- 架构(Architecture)
- 缓存(Caching)
- 并发(Concurrency)
- 数据库(Databases)
- 环境配置(Linux / macOS / Windows)
- HTTP 与 JSON
- 布局(Layout)
- 国际化(Localization)
- 原生互操作(Native Interop)
- 性能(Performance)
- 平台视图(Platform Views)
- 插件开发(Plugins)
- 路由与导航(Routing and Navigation)
- 状态管理(State Management)
- 测试(Testing)
- 主题(Theming)
每个技能里都有:目标、决策逻辑、具体步骤和约束,而不是简单罗列 API。
举个例子:状态管理技能
以 flutter-state-management 为例,它不会只说「用 Provider」,而是会先帮你判断:
- 状态只影响单个组件?→ 用
setState的 Ephemeral State - 状态需要跨页面、跨会话共享?→ 用 MVVM + Provider 的 App State
然后给出清晰的实现步骤:如何建 Model、ViewModel、如何用 ChangeNotifier、如何用 Consumer 做局部重建,以及「业务逻辑不能写在 View 里」等约束。这样 AI 生成的代码会更贴近 Flutter 官方推荐的架构。
再举个例子:无障碍技能
flutter-accessibility 会明确要求:
- 可点击区域至少 48×48 逻辑像素
- 文本对比度符合 WCAG
- 使用
LayoutBuilder或MediaQuery.sizeOf做自适应,而不是MediaQuery.orientation或设备类型判断 - 不锁定屏幕方向
还会给出 Semantics、FocusableActionDetector、FocusTraversalGroup 等具体用法,让 AI 在写无障碍相关代码时有章可循。
怎么用?
安装方式很简单:
npx skills add flutter/skills
更新:
npx skills update flutter/skills
项目目前还在开发中,README 里也写了「尚未准备好正式使用」,但技能内容本身已经比较完整,值得提前体验。
对开发者意味着什么?
如果你在用 Cursor、GitHub Copilot 等 AI 工具写 Flutter,Flutter Skills 可以:
- 提高生成代码质量:更符合官方架构和最佳实践
- 减少返工:少踩一些常见坑(比如状态管理、无障碍)
- 统一团队风格:AI 按同一套规则生成代码,更易维护
开源与贡献
项目在 GitHub 上开源,欢迎贡献。官方有 CONTRIBUTING 文档,提交前需要签署 Google CLA。如果你有某个领域的经验,可以尝试为对应技能补充或改进内容。
小结
Flutter Skills 是 Flutter 团队在「AI + 开发」方向上的一个尝试:把最佳实践结构化,让 AI 在写 Flutter 时更专业、更一致。虽然还在早期阶段,但思路很清晰,值得关注和试用。
如果你已经在用 AI 写 Flutter,不妨试试加上这套技能,看看生成代码的变化。
相关链接:
- 仓库:github.com/flutter/ski…
generate-skills分支下的 skills 目录:github.com/flutter/ski…