主要内容
● 阐释Flutter的细节,包括开发者可用的所有框架、Widget和工具。
● 即使你是没有经验的开发新手,也可跨越式前进,在移动软件领域大显身手。
● 分享Flutter提供的各种快捷的现代方法,使用热重载、富有表现力的灵活UI、快速流畅的动画进行开发。
● 揭示加快开发应用的诀窍:将用于跨平台应用的所有代码保持在单个代码库中。
● 本书示例丰富,呈现解决常见问题的多种妙招。
目 录
第 I 部分 Flutter编程基础
第1章 Flutter入门 3
1.1 Flutter简介 4
1.2 理解Widget生命周期事件 5
1.2.1 StatelessWidget生命周期 5
1.2.2 StatefulWidget生命周期 6
1.3 理解Widget树和Element树 8
1.3.1 StatelessWidget和Element树 9
1.3.2 StatefulWidget和Element树 10
1.4 安装Flutter SDK 13
1.4.1 在macOS上进行安装 13
1.4.2 在Windows上进行安装 15
1.4.3 在Linux上进行安装 17
1.5 配置Android Studio编辑器 19
1.6 本章小结 20
1.7 本章知识点回顾 20
第2章 创建一个Hello World应用 23
2.1 设置项目 23
2.2 使用热重载 27
2.3 使用主题将应用样式化 30
2.3.1 使用全局应用主题 30
2.3.2 将主题用于应用的局部 32
2.4 理解StatelessWidget和StatefulWidget 34
2.5 使用外部包 36
2.5.1 搜索包 36
2.5.2 使用包 37
2.6 本章小结 38
2.7 本章知识点回顾 38
第3章 学习Dart基础知识 39
3.1 为何使用Dart? 39
3.2 代码注释 40
3.3 运行main()入口点 41
3.4 变量引用 41
3.5 变量声明 42
3.5.1 数字 43
3.5.2 String 43
3.5.3 Boolean 43
3.5.4 List 44
3.5.5 Map 44
3.5.6 Runes 45
3.6 使用运算符 45
3.7 使用流程语句 47
3.7.1 if和else 47
3.7.2 三元运算符 48
3.7.3 for循环 48
3.7.4 while和do-while 49
3.7.5 while和break 50
3.7.6 continue 50
3.7.7 switch和case 51
3.8 使用函数 52
3.9 导入包 53
3.10 使用类 54
3.10.1 类继承 57
3.10.2 类混合 57
3.11 实现异步编程 58
3.12 本章小结 59
3.13 本章知识点回顾 60
第4章 创建一个初学者项目模板 61
4.1 创建和组织文件夹与文件 61
4.2 结构化Widget 64
4.3 本章小结 69
4.4 本章知识点回顾 70
第5章 理解Widget树 71
5.1 Widget介绍 71
5.2 构建完整的Widget树 73
5.3 构建浅层Widget树 80
5.3.1 使用常量进行重构 80
5.3.2 使用方法进行重构 81
5.3.3 使用Widget类进行重构 87
5.4 本章小结 95
5.5 本章知识点回顾 95
第 II 部分 充当媒介的Flutter:具象化一个应用
第6章 使用常用Widget 99
6.1 使用基础Widget 99
6.1.1 SafeArea 103
6.1.2 Container 104
6.1.3 Text 108
6.1.4 RichText 109
6.1.5 Column 111
6.1.6 Row 112
6.1.7 Button 117
6.2 使用图片和图标 129
6.2.1 AssetBundle 129
6.2.2 Image 129
6.2.3 Icon 131
6.3 使用装饰 134
6.4 使用Form Widget验证文本框 139
6.5 检查设备方向 143
6.6 本章小结 150
6.7 本章知识点回顾 150
第7章 为应用添加动画效果 151
7.1 使用AnimatedContainer 151
7.2 使用AnimatedCrossFade 155
7.3 使用AnimatedOpacity 160
7.4 使用AnimationController 164
7.5 本章小结 175
7.6 本章知识点回顾 176
第8章 创建应用的导航 177
8.1 使用Navigator 178
8.2 使用Hero(飞行)动画 189
8.3 使用BottomNavigationBar 194
8.4 使用BottomAppBar 201
8.5 使用TabBar和TabBarView 205
8.6 使用Drawer和ListView 211
8.7 本章小结 221
8.8 本章知识点回顾 222
第9章 创建滚动列表和效果 223
9.1 使用Card 223
9.2 使用ListView和ListTile 225
9.3 使用GridView 232
9.3.1 使用GridView.count 234
9.3.2 使用GridView.extent 235
9.3.3 使用GridView.builder 236
9.4 使用Stack 240
9.5 使用Sliver(薄片)自定义CustomScrollView 247
9.6 本章小结 256
9.7 本章知识点回顾 256
第10章 构建布局 257
10.1 布局的概要视图 257
10.1.1 天气区域布局 259
10.1.2 标签布局 259
10.1.3 页脚图片布局 260
10.1.4 最终布局 260
10.2 创建布局 261
10.3 本章小结 269
10.4 本章知识点回顾 269
第11章 应用交互性 271
11.1 设置GestureDetector:基本处理 271
11.2 实现Draggable和DragTarget Widget 278
11.3 使用GestureDetector检测移动和缩放 282
11.4 使用InkWell和InkResponse手势 293
11.5 使用Dismissible Widget 299
11.6 本章小结 306
11.7 本章知识点回顾 307
第12章 编写平台原生代码 309
12.1 理解平台通道 309
12.2 实现客户端平台通道应用 310
12.3 实现iOS主机端平台通道 315
12.4 实现Android主机端平台通道 319
12.5 本章小结 323
12.6 本章知识点回顾 324
第 III 部分 创建可用于生产环境的应用
第13章 使用本地持久化保存数据 327
13.1 理解JSON格式 328
13.2 使用数据库类来写入、读取和序列化JSON 330
13.3 格式化日期 331
13.4 对日期列表进行排序 332
13.5 使用FutureBuilder检索数据 333
13.6 构建日记应用 335
13.6.1 添加日记数据库类 339
13.6.2 添加日记条目页 345
13.6.3 完成日记主页面 362
13.7 本章小结 377
13.8 本章知识点回顾 378
第14章 添加Firebase和Firestore后端 381
14.1 Firebase和Cloud Firestore是什么? 382
14.1.1 对Cloud Firestore进行结构化和数据建模 383
14.1.2 查看Firebase身份验证能力 385
14.1.3 查看Cloud Firestore安全规则 387
14.2 配置Firebase项目 388
14.3 添加一个Cloud Firestore数据库并实现安全规则 395
14.4 构建客户端日记应用 398
14.4.1 将身份验证和Cloud Firestore包添加到客户端应用 399
14.4.2 为客户端应用添加基础布局 405
14.4.3 为客户端应用添加类 409
14.5 本章小结 412
14.6 本章知识点回顾 413
第15章 为Firestore客户端应用添加状态管理 415
15.1 实现状态管理 416
15.1.1 实现一个抽象类 417
15.1.2 实现InheritedWidget 419
15.1.3 实现模型类 420
15.1.4 实现服务类 421
15.1.5 实现BLoC模式 422
15.1.6 实现StreamController、Stream、Sink和StreamBuilder 423
15.2 构建状态管理 425
15.2.1 添加Journal模型类 427
15.2.2 添加服务类 428
15.2.3 添加Validators类 435
15.2.4 添加BLoC模式 436
15.3 本章小结 455
15.4 本章知识点回顾 455
第16章 为Firestore客户端应用页面添加BLoC 457
16.1 添加登录页 458
16.2 修改主页面 464
16.3 修改主页 468
16.4 添加编辑日记页面 476
16.5 本章小结 489
16.6 本章知识点回顾 490