Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力

0 阅读5分钟

在之前的 《Flutter 2026 Roadmap》我们就聊到,如今一个项目要有发展前景,就必须能够和 AI 持续贴一起,而显然 Flutter 做到了,除了之前的 Flutter MCP ,GenUI 等 AI 相关支持产物,现在官方又新增了 flutter/skills 支持,用于补全 Flutter 在 AI 编程缺乏官方 skills 的短板。

flutter/skills 作为给 AI Agent(Agent / Copilot / Claude / Cursor 等)用的技能库,核心目标是让 AI 在 Flutter 项目里,面对执行复杂开发流程时,AI 有相应的规范和指导流程

  • 决策逻辑:告诉 AI 什么时候该选哪种方案
  • 详细指令:包含具体的代码实现和步骤
  • 严格约束:防止 AI 生成错误或过时的代码(如禁止使用已废弃的 API)

当然,这些 skills 所需的数据,其实都来自项目里的 Skills CLI ,Skills CLI 会调用 Gemini,把官方的 Flutter 文档“压缩成可执行的 SKILL.md” ,也就是它会 crawl 文档网站找页面,然后用 Gemini 转成结构化 SKILL.md,对此 CLI 的主要有两个核心命令:

  • generate-skill:从 YAML 生成(支持 --skill 只生成某一个;支持 --directory 输出到指定目录)
  • validate-skill:重新生成并和已有 skills 比对,用来做一致性/回归验证(还支持 --thinking-budget

具体流程为:

  • 通过 resources/flutter_skills.yaml 指定技能名称、描述以及原始文档的资源链接(HTTPS 或本地文件)
  • ResourceFetcherService 抓取网页内容,并由 MarkdownConverter 将 HTML 转换为干净的 Markdown 格式,去除导航栏、页脚等噪点
  • 调用 Gemini 接口,向 AI 发送原始文档、技能模版指令(skill_instructions.dart)和特定提示词(Prompts.dart),要求 AI 生成符合规范的技能文档
  • 生成的 SKILL.md 包含统一的 H1 标题、## Goal(目标)、## Instructions(指令)和 ## Constraints(约束)和代码片段
  • 提供 validate-skill 命令,让 AI 重新审视已生成的技能,根据准确性、结构和完整性进行打分(0-100分),确保输出质量

而在目前的项目,主要覆盖有 20 多个不同技能:

类别技能能力
基础环境linux/macos/windows-setup配置三端的 Flutter 开发环境及工具链
核心架构flutter-architecture实现 clean Flutter 脚手架和单一数据源架构
状态与数据flutter-state-management处理全局与局部状态,实施单向数据流
flutter-databases基于 sqflite 的持久化存储实现
flutter-caching内存、文件系统、图像等多层缓存策略
UI 与 布局flutter-layout约束系统、响应式与自适应布局
flutter-animation实现隐式、显式、物理及 hero 动画
flutter-themingMaterial 3 主题适配、按钮迁移与平台常用设计
网络与并发flutter-http-and-json处理异步网络请求与结构化 JSON 序列化
flutter-concurrency使用 Isolates 处理后台任务(如大数据解析)
原生集成flutter-native-interopFFI 调用 C/C++、平台通道(MethodChannel)通信
flutter-platform-views在 Flutter 中嵌入原生 Android/iOS 视图
flutter-plugins跨平台插件及嵌入生命周期管理
功能特性flutter-navigation路由跳转、动态参数传递与深层链接处理
flutter-localization多语言支持
flutter-accessibility辅助技术支持、语义化标签与无障碍测试
优化与测试flutter-performance识别渲染抖动、优化 UI 线程与 Raster 线程性能
flutter-app-size测量并缩减安装包体积(分析构建产物)
flutter-testing单元测试、组件测试与集成测试

这些技能在 AI Coding 的时候,可以很好帮助 AI 完成项目管理和迭代,比如 flutter-plugins 里:

  • 会明确包含哪些修改 build.gradleInfo.plist 的具体步骤
  • 是使用 ffi 还是 Method Channels
  • 是不是需要使用 Package-Separated Federated Plugin

这对于 AI 在决策和实现 Flutter Plugin 代码生成的规范和成功率都有明显提升,同样的,对于 flutter-architecture ,可以让 AI 在写代码是遵循「Clean Architecture」 ,让 AI 输出单向数据流 + 严格分层(UI/Domain/Data)+ 职责隔离的架构,例如:

  • 分层约束:UI / Data /Domain 的职责边界
  • 数据源拆分:Remote Service vs Local Service 的建模方式
  • Service 纯封装:Service 必须无状态、无业务逻辑
  • Repository 单一可信源:只有 Repository 能 mutate 数据
  • 错误显式化:Repository 捕获异常并返回 Result Ok/Error
  • 可观察数据流:Repository 可通过 Stream 对外暴露变化
  • 状态管理ChangeNotifier 持有 UI state、集中处理交互
  • Command 模式:用 Command0 封装异步动作/交互入口,避免 View 直接写 async 逻辑
  • View 零业务逻辑:View 只能布局/简单条件渲染/路由,不做数据变更
  • 单向数据流校验规则:Repository → ViewModel → View(数据下行),View → ViewModel → Repository(事件上行),并提供“Validate and Fix”的修复策略

另外 flutter-performance 也很实用,它把性能优化定义成三类问题,并且以 16ms 帧预算为基准来判断 jank:

  • UI thread(Dart / build 阶段)卡顿
  • Raster thread(GPU / paint 阶段)卡顿
  • Web 端 profiling 的特殊路径

flutter-performance 的决策逻辑是:

  • 要不要先做 baseline?

    • 要:写 integration test,用 traceAction + TimelineSummary
  • 是否 Web?

    • Web:开 profiling flags + Chrome DevTools Performance
    • 非 Web:真机 --profile + Flutter DevTools
  • 看 DevTools 里哪条线程红(>16ms):

    • UI:优化 build / setState 颗粒度 / const / StringBuffer
    • Raster:减少 saveLayer/Opacity/Clip/ImageFilter,等等
    • 两边都红:先 UI 再 Raster(因为 Dart 端过慢会连锁影响渲染)

同时,它也提供了一些优化建议给 AI ,例如:

  • UI Thread(Build 成本)

    • “localize setState” —— 把状态下沉,缩小重建范围
    • “use const” —— 减少重建遍历
    • “循环里字符串拼接用 StringBuffer”
  • Raster Thread(绘制成本)

    • 避免 Clip.antiAliasWithSaveLayer
    • 少用 saveLayerImageFilter
  • Layout / Intrinsics

    • ListView.builder / GridView.builder
    • 避免不必要的 shrinkWrap: true

可以看到,这些技能也许你不用 flutter/skills ,大模型也可能会做,但是有了 flutter/skills 之后,就可以让 AI 明确实施的方案,让 AI 看起来更像一个专业的 Flutter 高级开发工程师

同时, flutter/skills 也是大大降低了开发者使用 AI 辅助开发的门槛,它将原本散落在各处的静态知识库,提炼成了 AI 代理可以直接理解并执行的“标准操作”,这也是 AI 时代的必经之路。

链接

github.com/flutter/ski…