当前位置: 首页 > news >正文

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 项目的 开发效率、可维护性和团队协作体验。

http://www.xdnf.cn/news/1477873.html

相关文章:

  • Webpack热更新(HMR)底层原理详解
  • 基于定制开发开源AI智能名片S2B2C商城小程序的DMP平台离线文件上传功能优化研究
  • RK3568 Trust
  • 进程间通信(IPC)方式
  • AgentScope 1.0深度解析:技术架构、使用教程与多智能体开发实践
  • 跟着开题报告学答辩!《 Access学情分析系统的设计与实现》开题答辩实录分享!
  • Linux系统编程守护进程(36)
  • Linux笔记---TCP套接字编程
  • Docker学习笔记-网络类型
  • 【干货推荐】AI助理前端UI组件-悬浮球组件
  • 下载数据集用于图像分类并自动分为训练集和测试集方法
  • Python零基础速成指南:12周从小白到项目实战
  • uniapp | 解决组件样式不生效问题
  • uniapp新增页面及跳转配置方法
  • 【最新版】超级好用的软件卸载工具IObit Uninstaller v15.0.0.8 中文解压即用版 告别残留烦恼
  • 力扣p2009 使数组连续的最少操作数 详解
  • ELFK:企业级日志管理的完整解决方案——从入门到精通
  • 尚硅谷宋红康JVM全套教程(详解java虚拟机)
  • 苍穹外卖项目实战(day-5完整版)-记录实战教程及问题的解决方法
  • 2025高教社国赛数学建模C题参考论文(含模型和代码)
  • 【面试向】人工智能机器学习介绍
  • 【51单片机-B030】【protues仿真】基于51单片机万年历系统
  • 心路历程-passwdusermod命令补充
  • 嵌入式学习——ARM 体系架构1
  • [光学原理与应用-422]:非线性光学 - 计算机中的线性与非线性运算
  • PHP - pack/unpack「字符串/二进制字符串」- 学习/实践
  • Week 15: 深度学习补遗:集成学习初步
  • C++算法学习——链表
  • 基于Scikit-learn集成学习模型的情感分析研究与实现
  • Day12--HOT100--23. 合并 K 个升序链表,146. LRU 缓存,94. 二叉树的中序遍历