Solido/awesome-flutter · 上手攻略

  • 仓库:Solido/awesome-flutter
  • 链接:https://github.com/Solido/awesome-flutter
  • 分类:skill
  • 作者:Tom
  • 更新:2026-07-12

这是什么

awesome-flutter 是 Flutter 生态中最老牌、最全面的精选列表之一,由 Solido 团队维护(Flutter 官方也曾推荐)。它按类别收录了最优质的 Flutter 库、工具、教程、文章、开源 App 和模板——简单说,如果你用 Flutter,这个列表是你找轮子、找教程、找灵感的第一站。

涵盖范围:状态管理、路由导航、UI 组件、图表、动画、存储、测试、CI/CD、AI 集成、平台通道(iOS/Android/Web/桌面)等全部维度。


解决什么问题

  • 找轮子:Flutter 某个功能不知道用什么库?来这里按分类找,节省在 pub.dev 大海捞针的时间
  • 找教程:学习某个具体主题时,按图索骥找到最优质的博文、视频、课程
  • 了解生态:想了解某个领域的 Flutter 最佳实践,这里有社区验证过的工具清单
  • 避免踩坑:收录的库经过社区筛选,踩坑概率低于随机在 pub.dev 找

快速上手

无需安装,直接访问:

# 在浏览器打开
open https://github.com/Solido/awesome-flutter

# 如果想本地阅读(不需要运行代码)
git clone https://github.com/Solido/awesome-flutter.git
cd awesome-flutter
# README.md 即为完整内容,支持按标题搜索

注意:本文攻略基于 2026 年 7 月前后的列表内容,Flutter 生态变化快,库版本信息以各库官方文档为准。


核心内容分类与精选推荐

📚 Articles(文章)

高质量 Flutter 博客和学习资源:

文章 作者 简介
Flutter Web:Ins and Outs Nash Flutter Web 深度解析
Welcome to Flutter Didier Boelens Flutter/Dart 常见问题实战解答(英法双语)
Flutter by Example Redux、Firebase、动画、UI 实战教程
Flutter Institute Brian Armstrong 深度原创内容与教程
Flutter Tips Diego Velásquez 开发技巧与实战经验
Layout Cheat Sheet Tomek Polański 布局 widget 详尽示例
Flutter State Management for Minimalists Suragch 不依赖第三方框架理解状态管理

🎬 Videos(视频)

资源 简介
Flutter 渲染管线 & Render Tree Adam Barth 讲解引擎架构
Google Codelabs 官方引导式实践(动画 Chat UI、Firebase 集成等)
Flutter & Dart development Suragch 系列文章配套视频

🧩 Components(组件库)

Flutter 最流行的 UI 组件库:

Stars 简介
flutter_modular 依赖注入 + 路由模块化
go_router 官方推荐 Flutter 团队出品的声明式路由
riverpod / flutter_riverpod 编译时安全的状态管理(Provider 进化版)
get 状态管理 + 路由 + 依赖注入,一站式(争议较大,但用的人很多)
fl_chart 数据图表(折线/柱状/饼图),Flutter 最流行的图表库
shimmer 加载占位动画
cached_network_image 图片缓存与加载
flutter_svg SVG 渲染支持
url_launcher 打开外部链接/电话/邮件

🎨 UI 框架(2025 年值得关注)

设计语言 平台
fluent_ui Microsoft Fluent Design Windows/macOS
macos_ui macOS 原生风格 macOS
yaru Ubuntu/Yaru 风格 Linux
shadcn_ui Tailwind/ shadcn/ui Flutter 实现 全平台
arna 极简风格 UI 全平台
exui 表达性 UI 工具集 全平台
styled_widget SwiftUI 式声明语法 全平台
特点
go_router 官方推荐,声明式路由,支持深层链接
go_router(替代方案) 自动生成路由代码
beamer 基于 URL 的路由,支持嵌套路由

🧪 状态管理(主流方案对比)

Flutter 状态管理是永远的热门话题,主要方案:

方案 特点 适合场景
riverpod 编译时安全、测试友好、自动补全 大型应用,2024-2026 年首选
flutter_bloc 事件驱动,Redux 风格 需要清晰数据流的复杂 App
get 上手极简单,功能全 快速 MVP,但架构争议大
mobx 响应式,需代码生成 喜欢 RxJS 风格的开发者
setState + InheritedWidget Flutter 原生,无需第三方 小型项目

🏗️ 框架(Templates & Boilerplate)

资源 简介
Flutter Roadmap(olexale) 可视化学习路线图
Beginner's Guide(antz22) Flutter + Firebase 完整指南
ultimate-guide-to-flutter 全面入门指南

🤖 AI / LLM 集成(近年新增重点)

Flutter 生态积极接入 AI 能力:

简介
flutter_gemma Google Gemma 模型 Flutter 集成(官方)
langchain_flutter LangChain Dart SDK
ollama_dart Ollama 本地 LLM 调用
openai_dart OpenAI API Flutter 客户端(含 DeepSeek 等兼容端点)

🧪 Testing & CI

简介
flutter_test 官方测试框架
mockito Mock 数据
integration_test 集成测试
patrol 跨平台 UI 测试(可测试通知、权限等原生行为)

典型使用场景

场景 1:搭建一个新的 Flutter 项目,从零到上线

# 1. 创建项目
flutter create my_app
cd my_app

# 2. 添加核心依赖(参考 awesome-flutter 推荐版本)
flutter pub add riverpod flutter_riverpod
flutter pub add go_router
flutter pub add fl_chart
flutter pub add cached_network_image

# 3. 运行
flutter run

场景 2:用 riverpod + go_router 构建可靠 App 架构

// main.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';

// 定义路由
final router = GoRouter(
  routes: [
    GoRoute(path: '/', builder: (context, state) => const HomeScreen()),
    GoRoute(path: '/detail/:id', builder: (context, state) {
      final id = state.pathParameters['id']!;
      return DetailScreen(id: id);
    }),
  ],
);

// 状态Provider
final counterProvider = StateProvider<int>((ref) => 0);

void main() {
  runApp(
    ProviderScope(
      child: MaterialApp.router(routerConfig: router),
    ),
  );
}

场景 3:做数据可视化(fl_chart)

import 'package:fl_chart/fl_chart.dart';

Widget buildChart() {
  return LineChart(
    LineChartData(
      lineBarsData: [
        LineChartBarData(
          spots: const [
            FlSpot(0, 3),
            FlSpot(2, 10),
            FlSpot(4, 7),
            FlSpot(6, 12),
          ],
          isCurved: true,
          color: Colors.blue,
        ),
      ],
    ),
  );
}

场景 4:Flutter Web 部署

# 检查 web 支持
flutter config --enable-web

# 切换到 web 平台
flutter run -d chrome

# 构建生产版本
flutter build web

# 输出在 build/web/,可部署到任意静态托管(Vercel、Netlify、Cloudflare Pages)

坑与注意

  1. Flutter 版本兼容性:Flutter 3.x / 4.x 对部分老库(特别是状态管理库)有 Breaking Change,pubspec.yaml 中建议锁定 minor 版本: yaml dependencies: flutter_riverpod: ^2.5.0 # 用 ^ 锁定兼容范围
  2. go_router 已成官方标准:之前的 Navigator 1.0beamer 正在被快速替代,新项目建议直接用 go_router
  3. riverpod vs get:get 上手简单但架构模式不被所有人认可,团队项目建议用 riverpod(更好的类型安全和可测试性)
  4. Flutter Web 限制:并非所有 Flutter 插件都支持 Web,发布前务必用 flutter run -d chrome 验证;列表中大量插件标注了 "web" 平台支持
  5. 平台通道(Platform Channel):涉及原生功能(相机、蓝牙、推送通知)时,检查库是否同时支持 iOS 和 Android,以及是否需要额外配置
  6. shadcn_ui Flutter:2025 年新兴的项目,API 可能尚未稳定,生产环境使用前确认版本
  7. 中文资源:awesome-flutter 以英文资源为主,中文 Flutter 资源可参考 datawhalechina/happy-llm 等其他仓库

与同类对比

列表 侧重点 Stars 适合谁
awesome-flutter(本仓库) Flutter 生态全景(库+教程+文章) ~60k 所有 Flutter 开发者
flutterawesome.com Flutter 库/项目发布平台 追踪最新发布的库
awesome-flutter-plugins Flutter 插件专项列表 较小众 寻找某个功能插件
awesome-dart Dart 语言本身 Dart 官方维护 想学 Dart 语言本身的

本列表的核心优势:老牌(Stars 高)+ 分类清晰 + 覆盖库和教程,是 Flutter 开发者书签必备。


一句话推荐结论

Flutter 开发者的瑞士军刀——无论你是找状态管理方案、做数据图表、还是接入 AI 模型,按分类在这个列表里找,经过社区验证的优质轮子远比在 pub.dev 随机搜索更靠谱。


关键参考链接

  • 仓库首页:https://github.com/Solido/awesome-flutter
  • Flutter 官方文档:https://flutter.dev/docs
  • pub.dev(Flutter 官方包仓库):https://pub.dev
  • Riverpod:https://riverpod.dev
  • go_router:https://pub.dev/packages/go_router
  • fl_chart:https://pub.dev/packages/fl_chart
  • TrendsShift 趋势:https://trendshift.io/repositories/9391