Flutter常用库集锦

发布于:2025-09-08 ⋅ 阅读:(20) ⋅ 点赞:(0)

在这里插入图片描述

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