Flutter常用库集锦
Flutter 生态十分活跃,除了 UI/网络库之外,还有大量工程化工具和代码生成框架,可以帮助我们快速搭建、规范化管理和自动化开发。本文将从 状态管理、路由、网络、本地存储、UI、调试、工程化、代码生成 等几个方面系统整理常用库和工具。
📑 目录
- 1️⃣ 状态管理
- 2️⃣ 路由管理
- 3️⃣ 网络与数据序列化
- 4️⃣ 本地存储
- 5️⃣ UI 与动画
- 6️⃣ 调试与工具类
- 7️⃣ 工程化与项目管理
- 8️⃣ 代码生成与工具链
- 🎯 总结
1️⃣ 状态管理
- Provider – Flutter 官方推荐,入门首选
- Riverpod – Provider 升级版,强类型、热重载友好
- GetX – 集成路由/依赖注入,语法简洁,适合快速开发
- Bloc / Cubit – Google 出品,事件驱动,规范性强,适合企业级
2️⃣ 路由管理
- go_router – Google 官方支持,Navigator 2.0 标准实现
- auto_route – 自动生成路由代码,支持深链和嵌套路由
- GetX Router – 集成在 GetX 中,轻量、上手快
3️⃣ 网络与数据序列化
-
http – 轻量网络库
-
dio – 功能强大,支持拦截器、文件上传下载
👉 示例:
final dio = Dio(); final response = await dio.get("https://api.example.com/user/1"); print(response.data);
-
json_serializable – 基于注解的 JSON 序列化生成工具
👉 示例(json_serializable):() class User {final int id;final String name;User(this.id, this.name);factory User.fromJson(Map<String, dynamic> json) =>_$UserFromJson(json);Map<String, dynamic> toJson() => _$UserToJson(this); }
执行命令生成:
flutter pub run build_runner build
-
retrofit.dart – 类似 Android Retrofit,结合 Dio 使用
4️⃣ 本地存储
- shared_preferences – 轻量 Key-Value 存储
- hive – 高性能 NoSQL 数据库,支持加密
- sqflite – SQLite 插件,适合结构化存储
5️⃣ UI 与动画
- flutter_screenutil – 屏幕适配工具
- cached_network_image – 网络图片缓存
- lottie – 渲染 Lottie 动画文件
- flutter_svg – SVG 渲染
- animations – 官方动画合集
6️⃣ 调试与工具类
- logger – 格式化日志工具,支持 JSON
- flutter_native_splash – 一键生成 iOS/Android 启动页
- flutter_launcher_icons – 一键生成应用图标
- pigeon – 生成 Flutter ↔ 原生通信代码
7️⃣ 工程化与项目管理
- Melos – Monorepo 管理工具,支持多包协作、批量依赖升级、自动化发布
👉 示例(melos.yaml):
常用命令:name: my_flutter_repo packages:- packages/** scripts:analyze:run: dart analyze .test:run: flutter test
melos bootstrap # 初始化依赖 melos run test # 运行测试
- very_good_cli – Very Good Ventures 出品,最佳实践项目脚手架
- fvm (Flutter Version Management) – Flutter SDK 版本管理工具
- shorebird – 热更新工具(继承自 CodePush 思路)
- fastlane – iOS/Android 自动化打包与发布
8️⃣ 代码生成与工具链
- build_runner – Dart 官方代码生成工具,驱动一切代码生成
常用命令:flutter pub run build_runner build flutter pub run build_runner watch --delete-conflicting-outputs
- json_serializable – JSON 序列化工具
- freezed – 不可变数据类生成器,支持 copyWith、==、sealed class
👉 示例(freezed):
生成后自动拥有:class User with _$User {const factory User({required int id, required String name}) = _User; }
final u1 = User(id: 1, name: "Tom"); final u2 = u1.copyWith(name: "Jerry");
- injectable – 配合 get_it 的依赖注入生成工具
- drift (moor) – SQLite ORM,自动生成数据库操作代码
🎯 总结
- 业务开发:Provider/Riverpod、dio、cached_network_image、shared_preferences
- 快速迭代:GetX、hive、flutter_screenutil、flutter_native_splash
- 企业级架构:Riverpod/Bloc、go_router/auto_route、dio+retrofit、Melos、fvm
- 工程化:Melos(多模块)、shorebird(热更新)、fastlane(自动化打包)
- 代码生成:build_runner、json_serializable、freezed、injectable,让开发更高效、可维护。
合理使用这些库和工具,可以显著提升 Flutter 项目的 开发效率、可维护性和团队协作体验。