Skip to content

Flutter 实用工具推荐

本文档整理了 Flutter 开发中常用的实用工具和第三方库,涵盖开发工具、UI 组件、状态管理、网络请求等多个方面。

平级说明 ✳

本文档推荐的工具均为平级关系,无优先级排序。星星评级反映当前社区使用热度和流行趋势,建议根据实际项目需求和技术栈选择合适的组合。

📦 状态管理

包名pub.dev用途特点热度
Providerpub状态管理Google 推荐、简单易用、基于 InheritedWidget⭐⭐⭐⭐⭐
Riverpodpub状态管理Provider 改进版、编译时安全、测试友好⭐⭐⭐⭐⭐
Blocpub状态管理事件驱动、分离业务逻辑、适合大型项目⭐⭐⭐⭐⭐
GetXpub状态管理 + 路由高性能、API 简洁、功能全面(路由/依赖注入)⭐⭐⭐⭐⭐
MobXpub响应式状态管理响应式编程、自动追踪依赖、代码生成⭐⭐⭐⭐
Reduxpub状态管理单向数据流、可预测、中间件支持⭐⭐⭐

🌐 网络请求

包名pub.dev用途特点热度
DiopubHTTP 客户端功能强大、拦截器、FormData、文件下载、超时处理⭐⭐⭐⭐⭐
httppubHTTP 客户端官方出品、简单易用、基础功能⭐⭐⭐⭐⭐
RetrofitpubRESTful API 客户端注解驱动、类型安全、代码生成⭐⭐⭐⭐
ChopperpubHTTP 客户端注解驱动、拦截器、自动序列化⭐⭐⭐⭐
GraphqlpubGraphQL 客户端GraphQL 查询、缓存、订阅支持⭐⭐⭐⭐

🗄️ 本地存储

包名pub.dev用途特点热度
Shared Preferencespub键值对存储官方出品、简单易用、跨平台⭐⭐⭐⭐⭐
HivepubNoSQL 数据库超快速、纯 Dart 实现、加密支持、ACID 兼容⭐⭐⭐⭐⭐
SqflitepubSQLite 数据库关系型数据库、事务支持、成熟稳定⭐⭐⭐⭐⭐
IsarpubNoSQL 数据库Hive 作者新作、极速、全文搜索、响应式⭐⭐⭐⭐
ObjectBoxpubNoSQL 数据库对象数据库、极速、关系映射、同步支持⭐⭐⭐⭐
Get Storagepub键值对存储GetX 生态、简单易用、加密支持⭐⭐⭐⭐

🎨 UI 组件库

包名pub.dev用途特点热度
Material DesignFlutter 内置Material UI官方内置、遵循 Material 规范、组件丰富⭐⭐⭐⭐⭐
CupertinoFlutter 内置iOS 风格 UI官方内置、iOS 风格、原生体验⭐⭐⭐⭐⭐
Flutter Screenutilpub屏幕适配响应式布局、字体适配、屏幕尺寸适配⭐⭐⭐⭐⭐
Cached Network Imagepub图片缓存网络图片缓存、占位图、加载进度⭐⭐⭐⭐⭐
Photo Viewpub图片预览缩放、平移、手势支持、自定义⭐⭐⭐⭐
Shimmerpub骨架屏加载动画、渐变效果、自定义⭐⭐⭐⭐⭐
Pull To Refreshpub下拉刷新多种样式、上拉加载、自定义头部⭐⭐⭐⭐

🔄 路由导航

包名pub.dev用途特点热度
Go Routerpub声明式路由官方推荐、URL 驱动、嵌套路由、重定向⭐⭐⭐⭐⭐
Auto Routepub自动路由代码生成、类型安全、嵌套路由、中间件⭐⭐⭐⭐⭐
Get Itpub依赖注入服务定位器、简单快速、测试友好⭐⭐⭐⭐⭐
Injectablepub依赖注入生成器代码生成、配合 Get It、注解驱动⭐⭐⭐⭐
Flutter Modulopub模块化路由模块化管理、依赖注入、路由守卫⭐⭐⭐

📱 设备功能

包名pub.dev用途特点热度
Image Pickerpub图片选择官方插件、拍照/相册、跨平台⭐⭐⭐⭐⭐
Camerapub相机官方插件、拍照、录像、实时预览⭐⭐⭐⭐⭐
Video Playerpub视频播放官方插件、本地/网络视频、控制播放⭐⭐⭐⭐⭐
Path Providerpub路径获取官方插件、获取常用目录、跨平台⭐⭐⭐⭐⭐
Permission Handlerpub权限管理统一权限 API、运行时权限、状态监听⭐⭐⭐⭐⭐
Locationpub位置服务GPS 定位、位置流、后台定位⭐⭐⭐⭐⭐
Sensors Pluspub传感器加速度计、陀螺仪、磁力计⭐⭐⭐⭐
Battery Pluspub电池信息电量状态、充电状态、电量级别⭐⭐⭐⭐
Connectivity Pluspub网络连接网络状态监听、WiFi/移动数据⭐⭐⭐⭐⭐
Share Pluspub分享功能系统分享、文本/文件分享⭐⭐⭐⭐⭐
Url LauncherpubURL 打开打开链接、电话、邮件、短信⭐⭐⭐⭐⭐

📊 图表可视化

包名pub.dev用途特点热度
Fl Chartpub图表库美观、折线图/柱状图/饼图、动画支持⭐⭐⭐⭐⭐
Charts Flutterpub图表库Google 出品、时间序列、交互性强⭐⭐⭐⭐
Echarts FlutterpubECharts 封装百度 ECharts 移植、功能强大⭐⭐⭐
Circular Chartpub百分比图表环形进度条、线性进度条、自定义⭐⭐⭐⭐

🎬 动画效果

包名pub.dev用途特点热度
LottiepubAfter Effects 动画AirBnB 出品、JSON 动画、高质量⭐⭐⭐⭐⭐
Rivepub交互式动画状态机、骨骼动画、实时交互⭐⭐⭐⭐⭐
Animated Text Kitpub文字动画打字机、淡入淡出、旋转等效果⭐⭐⭐⭐⭐
Simple Animationspub动画辅助简化动画编写、组合动画、时间轴⭐⭐⭐⭐

🧪 测试相关

包名pub.dev用途特点热度
MockitopubMock 框架生成 Mock 对象、行为验证、测试隔离⭐⭐⭐⭐⭐
Fake Asyncpub虚拟时间测试测试异步代码、时间控制、定时器测试⭐⭐⭐⭐
Integration Testpub集成测试官方出品、端到端测试、真机测试⭐⭐⭐⭐⭐
Golden ToolkitpubGolden 测试截图对比、视觉回归测试、多场景⭐⭐⭐⭐

🛠️ 开发效率

包名pub.dev用途特点热度
Builderpub代码生成Dart 构建系统、自定义生成器⭐⭐⭐⭐
Built Valuepub值对象生成不可变对象、equals/hashCode、copyWith⭐⭐⭐⭐
Freezedpub代码生成器Union 类型、不可变类、copyWith 方法⭐⭐⭐⭐⭐
Json SerializablepubJSON 序列化生成官方出品、代码生成、类型安全⭐⭐⭐⭐⭐
Equatablepub值相等比较简化 equals/hashCode、样板代码少⭐⭐⭐⭐⭐
Enviedpub环境变量管理.env 文件读取、编译时生成、类型安全⭐⭐⭐⭐

🔧 工具函数

包名pub.dev用途特点热度
Lintspub代码规范官方 lint 规则、代码质量检查⭐⭐⭐⭐⭐
Very Good Analysispub严格 lint更严格的代码规范、团队开发⭐⭐⭐⭐
Intlpub国际化官方出品、日期格式化、数字格式化⭐⭐⭐⭐⭐
Timeagopub相对时间"刚刚"、"3 小时前"等多语言支持⭐⭐⭐⭐⭐
Collectionpub集合工具官方出品、集合操作、算法工具⭐⭐⭐⭐⭐
Asyncpub异步工具Stream 转换器、CancelableOperation⭐⭐⭐⭐
Rx Dartzpub函数式编程Either 类型、FP 实践、错误处理⭐⭐⭐⭐

📲 推送通知

包名pub.dev用途特点热度
Firebase Messagingpub推送通知Firebase 官方、跨平台推送、主题订阅⭐⭐⭐⭐⭐
Local Notificationspub本地通知自定义通知、定时通知、Action 处理⭐⭐⭐⭐⭐
OneSignalpub推送服务OneSignal SDK、用户分群、A/B 测试⭐⭐⭐⭐

🔐 安全认证

包名pub.dev用途特点热度
Local Authpub本地认证指纹/面部识别、生物认证⭐⭐⭐⭐⭐
Flutter Secure Storagepub安全存储Keychain/KeyStore 加密存储 Token⭐⭐⭐⭐⭐
Cryptopub加密算法SHA/MD5/HMAC、哈希计算⭐⭐⭐⭐
Encryptpub加密解密AES/RSA、加密解密封装⭐⭐⭐⭐
Jwt DecoderpubJWT 解码解析 JWT Token、过期时间判断⭐⭐⭐⭐

💡 选型建议

按项目类型推荐

企业级应用

  • 状态管理: Bloc / Riverpod
  • 网络请求: Dio + Retrofit
  • 本地存储: Hive / Sqflite
  • 路由: Go Router / Auto Route
  • UI 组件: Material + Cached Network Image
  • 工具库: Collection + Equatable + Freezed

电商类项目

  • 状态管理: GetX / Provider
  • 图片处理: Cached Network Image + Photo View
  • 支付: 支付宝/微信支付 SDK
  • 推送: Firebase Messaging
  • 动画: Lottie + Shimmer
  • 适配: Flutter Screenutil

社交类应用

  • 即时通讯: 腾讯云 IM/环信 SDK
  • 图片视频: Camera + Video Player + Image Picker
  • 地图定位: Location + 高德/Google Maps
  • 推送: Local Notifications + Firebase
  • 状态管理: Bloc / GetX

工具类应用

  • 本地存储: Shared Preferences + Hive
  • 权限管理: Permission Handler
  • 设备功能: Sensors + Battery + Connectivity
  • 国际化: Intl + Timeago
  • 状态管理: Provider / Riverpod

技术栈搭配建议

Flutter 最佳实践

yaml
dependencies:
  # 状态管理
  flutter_riverpod: ^2.4.0
  
  # 网络请求
  dio: ^5.3.0
  retrofit: ^4.0.0
  
  # 本地存储
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  
  # 路由
  go_router: ^12.0.0
  
  # UI 组件
  cached_network_image: ^3.3.0
  flutter_screenutil: ^5.9.0
  shimmer: ^3.0.0
  
  # 工具库
  equatable: ^2.0.5
  collection: ^1.18.0
  intl: ^0.18.0
  
  # 代码生成
  freezed_annotation: ^2.4.1
  json_annotation: ^4.8.1

dev_dependencies:
  # 代码生成器
  build_runner: ^2.4.6
  freezed: ^2.4.1
  json_serializable: ^6.7.0
  retrofit_generator: ^8.0.0
  
  # 测试
  mockito: ^5.4.2
  integration_test: ^3.0.0

📋 检查清单

在选择 Flutter 第三方包时,建议考虑以下因素:

  • 维护活跃度: pub.dev 评分、GitHub stars、最近更新时间
  • 文档完善度: API 文档、示例代码、中文教程
  • 平台支持: iOS/Android/Web/Desktop 支持情况
  • 兼容性: Flutter 版本要求、其他包的兼容性
  • 性能表现: 基准测试、生产环境反馈
  • 社区生态: StackOverflow 问题数、Discord/Slack 社区
  • 安全性: 权限使用、数据存储安全
  • 许可证: MIT/Apache/GPL 等协议合规性

🔗 资源链接

📝 备注

以上推荐的工具均为经过社区验证的常用库,建议根据实际项目需求选择合适的组合。对于新项目,优先考虑官方插件和社区主流选择;对于维护中的老项目,注意版本兼容性和稳定性。定期关注 pub.dev 上的包更新和安全公告。

最近更新