mcpField
F
flutter-dev

flutter-dev

github.com/minimax-ai开发13.7k2.0k 次安装28 周前更新
代码仓库

关于 flutter-dev

flutter-dev 是面向 Flutter 3 和 Dart 跨平台应用开发的实践指南,适用于构建应用的开发者。内容涵盖状态管理、布局、导航、性能优化与测试,并提供常用模式和检查清单。

主要功能

  1. 01Riverpod 与 Bloc 状态管理模式
  2. 02GoRouter 导航与深度链接
  3. 03响应式布局与常用组件模式
  4. 04性能分析和优化建议
  5. 05单元、组件及集成测试指南

适用场景

  1. 01为 Flutter 项目选择状态管理方案
  2. 02构建适配不同屏幕的应用界面
  3. 03排查重绘和帧耗时问题
  4. 04规划应用的测试覆盖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/minimax-ai/skills --skill flutter-dev

安装后在 Claude Code 中输入/flutter-dev确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
animations.md
bloc-state.md
forms.md
gorouter-navigation.md
localization.md
networking.md
performance.md
platform-specific.md
project-structure.md
riverpod-state.md
testing.md
widget-patterns.md

详细介绍

Flutter 开发指南

使用 Flutter 3 和 Dart 构建跨平台应用的实用指南。重点介绍经过验证的模式、状态管理和性能优化。

快速参考

Widget 模式
用途组件
状态管理(简单)StateProvider + ConsumerWidget
状态管理(复杂)NotifierProvider / Bloc
异步数据FutureProvider / AsyncNotifierProvider
实时流StreamProvider
导航GoRouter + context.go/push
响应式布局LayoutBuilder + 断点
列表显示ListView.builder
复杂滚动CustomScrollView + Slivers
HooksHookWidget + useState/useEffect
表单Form + TextFormField + 验证
性能模式
用途解决方案
防止重建const 构造函数
选择性更新ref.watch(provider.select(...))
隔离重绘RepaintBoundary
懒加载列表ListView.builder
密集计算compute() isolate
图像缓存cached_network_image

核心原则

Widget 优化
  • 尽可能使用 const 构造函数
  • 将静态 Widget 提取到单独的 const 类中
  • 为列表项使用 Key(ValueKey、ObjectKey)
  • 状态管理优先使用 ConsumerWidget,而非 StatefulWidget
状态管理
  • 使用 Riverpod 进行依赖注入和简单状态管理
  • 使用 Bloc/Cubit 实现事件驱动的工作流和复杂逻辑
  • 切勿直接修改状态(应创建新实例)
  • 使用 select() 尽量减少重建
布局
  • 以 8 pt 为间距增量(8、16、24、32、48)
  • 响应式断点:移动端(<650)、平板(650-1100)、桌面端(>1100)
  • 使用灵活布局适配所有屏幕尺寸
  • 遵循 Material 3 / Cupertino 设计指南
性能
  • 优化前使用 DevTools 进行性能分析
  • 60 fps 的目标帧耗时为 <16 ms
  • 使用 RepaintBoundary 处理复杂动画
  • 使用 compute() 将繁重任务移出主线程

检查清单

Widget 最佳实践
  • 所有静态 Widget 均使用 const 构造函数
  • 为列表项设置适当的 Key
  • 状态相关的 Widget 使用 ConsumerWidget
  • 不在 build() 方法中构建 Widget
  • 将可复用的 Widget 提取到单独文件中
状态管理
  • 状态对象不可变
  • 使用 select() 实现细粒度重建
  • 正确限定 provider 的作用域
  • 释放控制器和订阅
  • 处理加载和错误状态
导航
  • 使用带类型路由的 GoRouter
  • 通过 redirect 实现身份验证守卫
  • 支持深层链接
  • 在路由间保留状态
性能
  • 在 profile 模式下测试(flutter run --profile)
  • 帧渲染耗时 <16 ms
  • 无不必要的重建(使用 DevTools 检查)
  • 缓存并调整图像尺寸
  • 在 isolates 中执行密集计算
测试
  • 为 UI 组件编写 Widget 测试
  • 为业务逻辑编写单元测试
  • 为用户流程编写集成测试
  • 使用 blocTest() 编写 Bloc 测试

参考资料

主题参考资料
Widget 模式、const 优化、响应式布局Widget 模式
Riverpod providers、notifiers、异步状态Riverpod 状态管理
Bloc、Cubit、事件驱动状态Bloc 状态管理
GoRouter 设置、路由、深度链接GoRouter 导航
基于功能的结构、依赖项项目结构
性能分析、const 优化、DevTools性能优化
Widget 测试、集成测试、模拟测试策略
iOS/Android/Web 专属实现平台集成
隐式/显式动画、Hero、转场动画
Dio、拦截器、错误处理、缓存网络
表单验证、FormField、输入格式化器表单
i18n、flutter_localizations、intl本地化

Flutter、Dart、Material Design 和 Cupertino 分别是 Google LLC 和 Apple Inc. 的商标。Riverpod、Bloc 和 GoRouter 是由各自维护者提供的开源软件包。

评论

支持 Markdown