强烈推荐-Flutter状态管理库bloc的最强视频教程(英文)

最近在用 Flutter 为 Dart China 编写移动app,状态管理使用的是 flutter_bloc。使用bloc的原因:单向数据流、UI和业务逻辑分离、鼓励使用不可变对象、对测试友好等等,而且其开发者 Very Good Ventures 跟Google也有良好的合作关系(比如:他们近期为 Google IO 开发的Web App - photobooth)。

bloc官网文档写的很不错,也有很多示例,但在学习过程中,还是有很多疑问,所以到youtube搜索下,结果就找到这个号称最强的bloc教程:The Best Flutter Bloc Complete Course

粗看下来,我认为它不止是最强的bloc教程,也是最强的Flutter相关教程,也是我近几年看过的最好的技术类视频教程!3个多小时的内容,大量使用动画,生动不乏味,不光讲解bloc本身,对Stream、BuildContext、应用架构等也有细致讲解,非常值得学习,强烈推荐!

看看视频截图和章节说明,你就知道教程作者是有多么的用心

章节说明:

0:00 Introduction
3:10 What you'll learn
7:30 Vscode prerequisites
9:40 Chapter 1 - Why Bloc?
14:53 Chapter 2 - BLoC Core Concepts
15:21 Chapter 2.1 - Streams
17:12 Chapter 2.1.1 - Stream Implementation
20:24 Chapter 2.2 - Cubits
21:33 Chapter 2.2.1 - Cubit Implementation
23:14 Chapter 2.3 - Blocs
24:05 Chapter 2.3.1 - Bloc Implementation 
25:15 Chapter 2.4 - F.A.Q & Main Differences
29:06 Chapter 3 - Flutter BLoC Concepts
29:44 Chapter 3.1 - Flutter Widgets
31:00 Chapter 3.2 - Widget Tree
31:35 Chapter 3.3 - BlocProvider
36:29 Chapter 3.3.1 - BlocProvider Implementation
42:17 Chapter 3.4 - BlocBuilder
45:01 Chapter 3.4.1 - BlocBuilder Implementation 
47:13 Chapter 3.5 - BlocListener
48:56 Chapter 3.5.1 - BlocListener Implementation
50:31 Chapter 3.6 - BlocConsumer
50:56 Chapter 3.6.1 - BlocConsumer Implementation
51:23 Chapter 3.7 - Repository Provider
51:41 Chapter 3.7.1 - Repository Short Example
52:19 Chapter 3.8 - Multi + Bloc/Listener/Repository + Provider
53:40 Chapter 4 - BLoC Architecture
55:58 Chapter 4.1 - Architecture Layers
56:47 Chapter 4.1.1 - Data Layer
57:33 Chapter 4.1.1.1 - Models
1:00:27 Chapter 4.1.1.2 - Data Provider
1:01:22 Chapter 4.1.1.3 - Repositories
1:02:23 Chapter 4.1.2 - Business Logic Layer
1:05:03 Chapter 4.1.3 - Presentation Layer
1:05:47 Chapter 4.2 - Folder Structure
1:06:33 Chapter 4.3 - BLoC Architecture Workflow (Weather App)
1:09:23 Chapter 5 - BLoC Testing
1:12:38 Chapter 5.1 - BLoC Testing Implementation
1:22:33 Chapter 6 - BLoC Access & Routing
1:23:58 Chapter 6.1 - Flutter Navigation Stack
1:24:49 Chapter 6.2 - Local Access
1:25:47 Chapter 6.2.1 - Local Access Implementation
1:28:44 Chapter 6.3 - Route Access
1:30:13 Chapter 6.3.1 - Flutter Routing Options
1:31:58 Chapter 6.3.1.1 - Anonymous Routing & Access
1:30:49 Chapter 6.3.1.1.1 - Anonymous Routing Implementation
1:37:16 Chapter 6.3.1.2 - Named Routing & Access
1:38:08 Chapter 6.3.1.2.1 - Named Routing Implementation
1:42:47 Chapter 6.3.1.3 - Generated Routing & Access
1:43:14 Chapter 6.3.1.3.1 - Generated Routing Implementation
1:46:15 Chapter 6.4 - Global Access
1:47:30 Chapter 6.4.1 - Global Access Implementation
1:48:40 Chapter 6.5 - Conclusions
1:50:13 Chapter 7 - Bloc-to-Bloc Communication
1:51:00 Chapter 7.1 - Stream Subscription Method
1:53:50 Chapter 7.1.1 - Stream Subscription Implementation
2:05:35 Chapter 7.2 - BlocListener Method
2:07:15 Chapter 7.2.1 - BlocListener Implementation
2:10:05 Chapter 8 - BuildContext In-Depth
2:13:27 Chapter 8.1 - Wrong Assumptions about BuildContext
2:14:09 Chapter 8.1.1 - First Wrong Assumption
2:15:46 Chapter 8.1.2 - Second Wrong Assumption
2:16:13 Chapter 8.1.3 - Third Wrong Assumption
2:17:29 Chapter 8.2 - Visual representation of our widget tree
2:22:00 Chapter 8.3 - Simulating the lookup for a specific context
2:26:40 Chapter 8.4 - RandomWidget.of(context) translation
2:27:00 Chapter 8.5 - Global Access Explanation (wrapping MaterialApp)
2:28:41 Chapter 8.6 - Understand & Fix BlocProvider.of() error
2:33:15 Chapter 9 - BLoC 6.1.0
2:34:33 Chapter 9.1 - context.watch()
2:36:50 Chapter 9.1.1 - context.watch Implementation
2:39:26 Chapter 9.2 - context.select()
2:40:31 Chapter 9.2.2 - context.select() Implementation
2:41:00 Chapter 9.3 - context.read()
2:44:00 Chapter 9.3.1 - context.read() Implementation
2:44:41 Chapter 10 - State not updating issue
2:46:00 Chapter 10.1 - Comparing 2 objects in Dart
2:47:45 Chapter 10.2 - Equatable Package
2:49:10 Chapter 10.3 - Creating Settings Cubit
2:51:10 Chapter 10.3.1 - Top mistakes beginner make
2:55:00 Chapter 11 - Maintaining State with HydratedBloc
2:56:00 Chapter 11.1 - Storing States of an app
2:57:00 Chapter 11.2 - HydratedBloc implementation
2:58:25 Chapter 11.3 - toJson, fromJson, toMap, fromMap
3:03:25 Chapter 11.4 - Simulating State Maintaining Workflow
3:06:11 Chapter 12 - Debugging blocs/cubits, Naming Conventions
3:06:40 Chapter 12.1 - Debugging cubits
3:10:40 Chapter 12.2 - Debugging blocs
3:12:30 Chapter 12.3 - BlocObserver
3:13:20 Chapter 12.3.1 - BlocObserver Implementation
3:16:45 Chapter 12.4 - Tips & Tricks
3:18:26 Chapter 12.5 - Naming Conventions
3:22:13 Finishing Thoughts

视频地址:The Best Flutter Bloc Complete Course - Visualise, Understand, Learn & Practice Bloc Concepts - YouTube

测试客户端发送!!