完整的 Flutter 课程套装 – 电子商务应用
这是该课程的官方代码库
这将包括一个使用 Flutter 和 Firebase 的全栈电子商务应用程序
您可以在这里找到该应用的 Flutter Web 预览
文档与常见问题解答
该项目包含一个文档网站,您可以在这里找到它
Flutter 基础 – 课程大纲
1. 简介与项目概述
- 您将在本课程中学到什么
- 章节概览
- 适用于 Flutter 开发的 VSCode 快捷键、扩展和设置
- 加入 Slack 频道
- GitHub 上的课程项目
- 下载入门项目和
pubspec.yaml概览 - 电子商务应用概览
- 代码走查:项目结构
- 使用 Widget Inspector (DevTools) 探索代码库
- UI 设计原则:组合与可重用 Widget 类
- 适用于响应式设计的有用 Widgets
- 应用本地化
2. 使用 GoRouter 进行导航
- 章节介绍
- Navigator 1.0 的局限性
- GoRouter 安装与使用
MaterialApp.router进行初始设置 - 路由、子路由和导航
GoRouterHelper扩展和pageBuilder- 添加一些额外的路由
- 按 **路径** 路由与按 **名称** 路由
- 带参数的路由
- GoRouter 错误处理
- 使用 **go** 与 **push** 进行导航
- 添加剩余的路由
- 如何在 GoRouter 中弹出路由
- 嵌套导航
- 总结
3. Flutter 应用架构
- 章节介绍
- 流行的应用架构:MVC、MVP、MVVM、Clean Architecture、Bloc
- 使用 Controller-Service-Repository 模式的 Riverpod 应用架构
- 项目结构:功能优先 vs 层级优先
- Repository 模式和数据层
- 将“假”产品 repository 实现为单例
- 使用基于 Future 和 Stream 的 API
- 总结
4. 使用 Riverpod 进行状态管理 – 第一部分 (产品列表)
- 章节介绍
- Riverpod 简介
- Riverpod 安装与设置
- 创建我们的第一个 provider
- 使用
ConsumerWidget和Consumer读取 providers - 使用
FutureProvider、StreamProvider和AsyncValue - 通过添加延迟来测试
AsyncValue family修饰符autoDispose修饰符 + 高级数据缓存选项- 创建可重用的
AsyncValueWidget辅助 - 总结 + 练习
5. 使用 Riverpod 进行状态管理 – 第二部分 (身份验证流程)
- 章节介绍
- 实现一个假的身份验证 repository
- 使用抽象类创建 repository (可选)
- 介绍:使用 RxDart 的响应式内存存储
- 使用 RxDart 实现
InMemoryStore - 在
FakeAuthRepository中使用InMemoryStore - 在
AccountScreen中使用ref.read()访问FakeAuthRepository - 使用
StateNotifier创建我们的第一个控制器 - 在
AccountScreenwidget 中使用StateNotifier - 使用
ref.listen()监听 provider 状态变化 Navigator.pop的 Bug 修复AsyncValue.guard方法- 添加一个
AsyncValue扩展方法 - 在
HomeAppBar中使用authStateChangesProvider - 电子邮件和密码登录屏幕简介
- 如何在 Dart 中生成不可变状态类
- 在
EmailPasswordSignInState中使用AsyncValue - 实现
EmailPasswordSignInController - 在 widget 类中使用
EmailPasswordSignInController - Bug 修复 + 使用
select()过滤状态更新 - GoRouter 重定向
- GoRouter:
refreshListenable参数 - 总结
