完整的 Flutter 课程套装 – 电子商务应用

这是该课程的官方代码库

这将包括一个使用 Flutter 和 Firebase 的全栈电子商务应用程序

eCommerce App Preview

您可以在这里找到该应用的 Flutter Web 预览

文档与常见问题解答

该项目包含一个文档网站,您可以在这里找到它

Flutter 基础 – 课程大纲

1. 简介与项目概述

  1. 您将在本课程中学到什么
  2. 章节概览
  3. 适用于 Flutter 开发的 VSCode 快捷键、扩展和设置
  4. 加入 Slack 频道
  5. GitHub 上的课程项目
  6. 下载入门项目和 pubspec.yaml 概览
  7. 电子商务应用概览
  8. 代码走查:项目结构
  9. 使用 Widget Inspector (DevTools) 探索代码库
  10. UI 设计原则:组合与可重用 Widget 类
  11. 适用于响应式设计的有用 Widgets
  12. 应用本地化

2. 使用 GoRouter 进行导航

  1. 章节介绍
  2. Navigator 1.0 的局限性
  3. GoRouter 安装与使用 MaterialApp.router 进行初始设置
  4. 路由、子路由和导航
  5. GoRouterHelper 扩展和 pageBuilder
  6. 添加一些额外的路由
  7. 按 **路径** 路由与按 **名称** 路由
  8. 带参数的路由
  9. GoRouter 错误处理
  10. 使用 **go** 与 **push** 进行导航
  11. 添加剩余的路由
  12. 如何在 GoRouter 中弹出路由
  13. 嵌套导航
  14. 总结

3. Flutter 应用架构

  1. 章节介绍
  2. 流行的应用架构:MVC、MVP、MVVM、Clean Architecture、Bloc
  3. 使用 Controller-Service-Repository 模式的 Riverpod 应用架构
  4. 项目结构:功能优先 vs 层级优先
  5. Repository 模式和数据层
  6. 将“假”产品 repository 实现为单例
  7. 使用基于 Future 和 Stream 的 API
  8. 总结

4. 使用 Riverpod 进行状态管理 – 第一部分 (产品列表)

  1. 章节介绍
  2. Riverpod 简介
  3. Riverpod 安装与设置
  4. 创建我们的第一个 provider
  5. 使用 ConsumerWidgetConsumer 读取 providers
  6. 使用 FutureProviderStreamProviderAsyncValue
  7. 通过添加延迟来测试 AsyncValue
  8. family 修饰符
  9. autoDispose 修饰符 + 高级数据缓存选项
  10. 创建可重用的 AsyncValueWidget 辅助
  11. 总结 + 练习

5. 使用 Riverpod 进行状态管理 – 第二部分 (身份验证流程)

  1. 章节介绍
  2. 实现一个假的身份验证 repository
  3. 使用抽象类创建 repository (可选)
  4. 介绍:使用 RxDart 的响应式内存存储
  5. 使用 RxDart 实现 InMemoryStore
  6. FakeAuthRepository 中使用 InMemoryStore
  7. AccountScreen 中使用 ref.read() 访问 FakeAuthRepository
  8. 使用 StateNotifier 创建我们的第一个控制器
  9. AccountScreen widget 中使用 StateNotifier
  10. 使用 ref.listen() 监听 provider 状态变化
  11. Navigator.pop 的 Bug 修复
  12. AsyncValue.guard 方法
  13. 添加一个 AsyncValue 扩展方法
  14. HomeAppBar 中使用 authStateChangesProvider
  15. 电子邮件和密码登录屏幕简介
  16. 如何在 Dart 中生成不可变状态类
  17. EmailPasswordSignInState 中使用 AsyncValue
  18. 实现 EmailPasswordSignInController
  19. 在 widget 类中使用 EmailPasswordSignInController
  20. Bug 修复 + 使用 select() 过滤状态更新
  21. GoRouter 重定向
  22. GoRouter:refreshListenable 参数
  23. 总结

许可证:MIT

GitHub

查看 Github