├─1 Flutter 移动应用:开发准备
│ │ 1 介绍.mp4
│ │ 2 安装 Flutter SDK(macOS).mp4
│ │ 3 配置 iOS 开发环境(macOS).mp4
│ │ 4 配置 VS Code 代码编辑器.mp4
│ │ 5 配置 Android 开发环境(macOS).mp4
│ │ 6 检测问题:flutter doctor.mp4
│ │ 7 Flutter 在中国地区的特别设置(macOS).mp4
│ │ 8 创建 Flutter 项目.mp4
│ │ 9 运行 Flutter 项目(iOS 模拟器).mp4
│ │ 10 在 Android 模拟器上运行 Flutter 项目.mp4
│ │
│ ├─2 Flutter移动应用:快速起步
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 在屏幕中间显示 “hello”.mp4
│ │ 4 自定义小部件(Widget).mp4
│ │ 5 文字的样式:TextStyle.mp4
│ │ 6 MaterialApp:使用界面组件与定制界面主题.mp4
│ │ 7 列表:准备数据.mp4
│ │ 8 列表视图:ListView.builder.mp4
│ │ 9 列表项目.mp4
│ │
│ ├─3 Flutter 移动应用:界面结构
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 Material 应用.mp4
│ │ 4 AppBar:工具栏上的图标按钮(IconButton).mp4
│ │ 5 TabBar:用标签形式展示内容.mp4
│ │ 6 TabBar:自定义标签栏的样式.mp4
│ │ 7 Material:自定义按钮水波纹样式.mp4
│ │ 8 Drawer:抽屉(边栏).mp4
│ │ 9 Drawer:在抽屉里使用 ListView, DrawerHeader,ListTile.mp4
│ │ 10 Drawer:抽屉的打开与关闭.mp4
│ │ 11 UserAccountDrawerHeader:抽屉里的用户帐号信息.mp4
│ │ 12 用户帐户头部的背景图像.mp4
│ │ 13 创建 DrawerDemo 小部件.mp4
│ │ 14 BottomNavigationBar:底部导航栏.mp4
│ │ 15 BottomNavigationBar:底部导航栏的激活状态.mp4
│ │ 16 StatefulWidget:有状态的小部件.mp4
│ │
│ ├─4 Flutter 移动应用:基础部件
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 查看小部件的定义.mp4
│ │ 4 Text:文字与文字样式.mp4
│ │ 5 RichText:行内多样式的文字.mp4
│ │ 6 Container:容器.mp4
│ │ 7 BoxDecoration:装饰盒子.mp4
│ │ 8 BoxDecoration:边框(border).mp4
│ │ 9 BoxDecoration:圆角(borderRadius).mp4
│ │ 10 BoxDecoration:阴影(borderShadow).mp4
│ │ 11 BoxDecoration:形状(shape).mp4
│ │ 12 BoxDecoration:渐变(gradient).mp4
│ │ 13 BoxDecoration:背景图像(image).mp4
│ │
│ ├─5 Flutter移动应用:布局
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 LayoutDemo 小部件.mp4
│ │ 4 创建可配置的图标徽章(IconBadge)小部件.mp4
│ │ 5 Row(横排) 与 Column(竖排).mp4
│ │ 6 mainAxis:主轴.mp4
│ │ 7 crossAxis:交叉轴.mp4
│ │ 8 SizedBox:固定尺寸的盒子.mp4
│ │ 9 Alignment:对齐.mp4
│ │ 10 Stack:一摞小部件.mp4
│ │ 11 AspectRatio:宽高比.mp4
│ │ 12 ConstrainedBox:带限制的盒子.mp4
│ │
│ ├─6 Flutter 移动应用:视图
│ │ 1 介绍.mp4
│ │ 2 升级 Flutter SDK 与项目用的 Packages.mp4
│ │ 3 准备项目.mp4
│ │ 4 创建 ViewDemo 小部件.mp4
│ │ 5 PageView:页面视图.mp4
│ │ 6 PageView:页面视图的属性.mp4
│ │ 7 PageView:用 PageController 调整页面的显示.mp4
│ │ 8 PageView.builder 按需生成页面.mp4
│ │ 9 GridView:网格视图(GridView.count).mp4
│ │ 10 GridView.extent.mp4
│ │ 11 GridView.builder 按需生成视图项目.mp4
│ │
│ ├─7 Flutter 移动应用:Sliver
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 SliverDemo 小部件.mp4
│ │ 4 Slivers.mp4
│ │ 5 SliverGrid:网格视图.mp4
│ │ 6 SliverPadding(内边距) 与 SliverSafeArea(安全区).mp4
│ │ 7 SliverList:列表视图.mp4
│ │ 8 SliverAppBar:应用工具栏.mp4
│ │ 9 带渐近动画的可伸缩空间.mp4
│ │
│ ├─8 Flutter移动应用:路由
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 VS Code:Flutter 代码片断.mp4
│ │ 4 一堆路由.mp4
│ │ 5 打开新页面并返回(push 与 pop):准备.mp4
│ │ 6 打开新页面并返回(push 与 pop):实施.mp4
│ │ 7 带名字的路由( Navigator.pushNamed).mp4
│ │ 8 初始路由:initialRoute.mp4
│ │ 9 InkWell:添加溅墨动画效果.mp4
│ │ 10 在内容详情页上显示内容.mp4
│ │
│ ├─9 Flutter 移动应用:表单
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 FormDemo 小部件.mp4
│ │ 4 Theme:定制、使用、重置、覆盖主题.mp4
│ │ 5 TextField:文本字段.mp4
│ │ 6 TextField:文本字段样式(InputDecoration).mp4
│ │ 7 TextField:监视文本字段的值的变化与提交.mp4
│ │ 8 TextField:使用 TextEditingController 监听文本字段变化.mp4
│ │ 9 Form:表单.mp4
│ │ 10 Form:保存与获取表单里的数据.mp4
│ │ 11 Form:验证表单里的数据.mp4
│ │ 12 Form:自动验证.mp4
│ │ 13 SnackBar:在屏幕底部动画弹出提示栏.mp4
│ │
│ │
│ ├─10 Flutter移动应用:按钮
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 VS Code:自定义代码片断.mp4
│ │ 4 准备 Material Components 演示页面.mp4
│ │ 5 FloatingActionButton:漂浮动作按钮.mp4
│ │ 6 BottomAppBar:底部工具栏.mp4
│ │ 7 创建演示小部件用的页面.mp4
│ │ 8 FlatButton:文字按钮.mp4
│ │ 9 RaisedButton:按钮.mp4
│ │ 10 按钮主题:颜色、形状.mp4
│ │ 11 OutlineButton:描边按钮.mp4
│ │ 12 按钮容器 Container:有固定宽度的按钮.mp4
│ │ 13 按钮容器 Expanded:占满可用宽度的按钮.mp4
│ │ 14 按钮容器 ButtonBar:一组带边距的横排显示按钮.mp4
│ │ 15 整理:把演示放在单独的文件里.mp4
│ │ 16 准备 PopupMenuButtonDemo.mp4
│ │ 17 PopupMenuButton:弹出式菜单按钮.mp4
│ │
│ ├─11 Flutter 移动应用:输入
│ │ 1 介绍.mp4
│ │ 2 整理:在演示列表里添加 FormDemo.mp4
│ │ 3 创建用户输入相关的小部件的演示页面.mp4
│ │ 4 Checkbox:复选框.mp4
│ │ 5 CheckboxListTile:带标签与图标的复选框.mp4
│ │ 6 Radio:单选按钮.mp4
│ │ 7 RadioListTile:带标签与图标的单选按钮.mp4
│ │ 8 Switch:开关.mp4
│ │ 9 SwitchListTile:带标签与图标的开关.mp4
│ │ 10 Slider:滑动选择器.mp4
│ │ 11 安装第三方包(演示安装 Intl 包).mp4
│ │ 12 显示格式化日期.mp4
│ │ 13 showDatePicker:选择日期.mp4
│ │ 14 showDatePicker:获取选择的日期(async).mp4
│ │ 15 showTimePicker:时间选择器.mp4
│ │ 16 Future:异步程序.mp4
│ │
│ ├─12 Flutter 移动应用:对话框
│ │ 1 SimpleDialog:显示对话框(showDialog).mp4
│ │ 2 SimpleDialog:选项(SimpleDialogOption).mp4
│ │ 3 SimpleDialog:获取与使用选项的值.mp4
│ │ 4 AlertDialog:提示对话框.mp4
│ │ 5 AlertDialog:获取与使用动作的值.mp4
│ │ 6 BottomSheet:底部滑动窗口.mp4
│ │ 7 BottomSheet:对话框式底部滑动窗口(showModalBottomSheet).mp4
│ │ 8 处理使用对话框式底部滑动窗口的数据.mp4
│ │ 9 SnackBar:操作提示栏.mp4
│ │ 10 ExpansionPanel:收缩面板.mp4
│ │ 11 ExpansionPanel:面板的收起与展开.mp4
│ │ 12 ExpansionPanel:面板列表项目.mp4
│ │
│ ├─13 Flutter移动应用:MDC
│ │ 1 介绍.mp4
│ │ 2 升级 Flutter SDK 后屏幕报错(0.8.1).mp4
│ │ 3 Chip:小碎片.mp4
│ │ 4 Wrap:换行显示小部件.mp4
│ │ 5 Divider:分隔符.mp4
│ │ 6 Chip:带删除功能的小碎片.mp4
│ │ 7 Chip:用列表生成带删除功能的小碎片.mp4
│ │ 8 ActionChip:动作碎片.mp4
│ │ 9 FilterChip:过滤碎片.mp4
│ │ 10 ChoiceChip:选择碎片.mp4
│ │ 11 DataTable:数据表格.mp4
│ │ 12 DataTable:用列表生成数据表格.mp4
│ │ 13 DataTable:数据表格的排序.mp4
│ │ 14 DataTable:选择数据表格行.mp4
│ │ 15 PaginatedDataTable:分页显示表格数据.mp4
│ │ 16 PaginatedDataTable:排序.mp4
│ │ 17 Card:卡片.mp4
│ │ 18 ClipRRect:圆角(给图像添加圆角效果).mp4
│ │ 19 Stepper:步骤.mp4
│ │ 20 Stepper:步骤的行为.mp4
│ │
│ ├─14 Flutter 移动应用:状态管理
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 StateManagementDemo 小部件.mp4
│ │ 4 StatelessWidget:无变化状态的小部件.mp4
│ │ 5 StatefulWidget:带变化状态的小部件.mp4
│ │ 6 状态管理(由父辈管理状态).mp4
│ │ 7 从父辈那里传递个回调.mp4
│ │ 8 小部件树:Widget Tree.mp4
│ │ 9 InheritedWidget:直接把数据传递给需要的小部件.mp4
│ │ 10 创建与使用 InheritedWidget 有效地传递数据给子部件.mp4
│ │ 11 ScopedModel:安装与基本用法介绍.mp4
│ │ 12 使用 ScopedModel 传递数据.mp4
│ │
│ ├─15 Flutter 移动应用:Stream
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 StreamDemo.mp4
│ │ 4 创建与监听 Stream.mp4
│ │ 5 给 Stream 添加一个订阅(subscription).mp4
│ │ 6 暂停、恢复、取消监听 Stream.mp4
│ │ 7 StreamController:控制 Stream.mp4
│ │ 8 StreamController:使用 Sink 往 Stream 上添加数据.mp4
│ │ 9 StreamController:创建可以多次订阅的 Broadcast Streams.mp4
│ │ 10 在界面上显示 Stream 上的数据.mp4
│ │ 11 StreamBuilder:根据 Stream 上的数据构建小部件.mp4
│ │
│ ├─16 Flutter 移动应用:RxDart
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 RxDartDemo.mp4
│ │ 4 安装 RxDart 包.mp4
│ │ 5 Rx,RxDart,Observable 与 Stream.mp4
│ │ 6 Observables.mp4
│ │ 7 创建 Observables 的几种方法.mp4
│ │ 8 使用 Subjects 控制 Observables.mp4
│ │ 9 BehaviorSubject.mp4
│ │ 10 ReplaySubject.mp4
│ │ 11 准备一个文本框往 Observable 上添加数据.mp4
│ │ 12 RxDart 的数据转换方法(map).mp4
│ │ 13 where.mp4
│ │ 14 debounce.mp4
│ │
│ ├─17 Flutter 移动应用:BLoC
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 BlocDemo.mp4
│ │ 4 BLoC:Business Logic Component.mp4
│ │ 5 BLoC 应用案例(记数器):准备基本小部件.mp4
│ │ 6 使用 InheritedWidget 传递 BLoC.mp4
│ │ 7 创建与使用 BLoC:用 Sink 输入数据.mp4
│ │ 8 创建与使用 BLoC:用 Stream 输出数据.mp4
│ │
│ ├─18 Flutter 移动应用:网络请求
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 HttpDemo.mp4
│ │ 4 安装 http 包(升级 Flutter SDK).mp4
│ │ 5 使用 http 客户端请求数据.mp4
│ │ 6 JSON 转换(dartconvert).mp4
│ │ 7 使用 Model 类转换数据:fromJson.mp4
│ │ 8 使用 Model 类转换数据:toJson.mp4
│ │ 9 使用请求数据:把响应的数据转换成自定义 Dart 对象.mp4
│ │ 10 FutureBuilder:使用 Future 构建小部件.mp4
│ │
│ ├─19 Flutter 移动应用:动画
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 AnimationDemo 小部件.mp4
│ │ 4 AnimationController:动画控制器.mp4
│ │ 5 使用动画的值.mp4
│ │ 6 动画的状态与运行.mp4
│ │ 7 Tween:设置动画范围值(数字、颜色).mp4
│ │ 8 Curve:动画曲线.mp4
│ │ 9 AnimatedWidget:动画值有变化就自动重建自己的小部件.mp4
│ │
│ ├─20 Flutter移动应用:国际化
│ │ 1 介绍.mp4
│ │ 2 准备项目.mp4
│ │ 3 创建 I18Demo 小部件.mp4
│ │ 4 安装与配置 Flutter 应用的国际化.mp4
│ │ 5 配置 iOS 项目使用多种语言.mp4
│ │ 6 演示 Material 组件的多语言.mp4
│ │ 7 寻找 Localizations 小部件.mp4
│ │ 8 获取与设置语言和地区(理解 Locale 类与 Localizations 小部件).mp4
│ │ 9 定义本地化资源类.mp4
│ │ 10 加载本地化资源.mp4
│ │ 11 使用本地化资源.mp4
│ │ 12 Intl:定义需要翻译的信息.mp4
│ │ 13 提取信息模板并翻译信息.mp4
│ │ 14 基于arb 生成 dart 文件.mp4
│ │ 15 加载与使用本地化信息.mp4
│ │
│ ├─21.Flutter移动应用:测试
│ │ 1.介绍.mp4
│ │ 2.准备项目.mp4
│ │ 3.Unittesting:单元测试.mp4
│ │ 4.运行测试.mp4
│ │ 5.WidgetTesting:测试小部件.mp4
│ │ 6.找到并验证小部件(Finder与Matcher的用法).mp4
│ │ 7.测试小部件的点按行为.mp4
│ │ 8.Integrationtesting:集成测试.mp4
│ │ 9.编写与运行集成测试.mp4
│ └─源码