目录
Contents
第1章 初识Flutter1
1.1  Flutter简介 1
1.1.1 Flutter诞生历史2
1.1.2 Flutter优势2
1.1.3 Flutter版本3
1.2  Flutter框架 4
1.2.1 Flutter Framework4
1.2.2 Flutter Engine5
1.2.3 Flutter Embedder5
第2章 Flutter快速上手6
2.1  Flutter环境搭建 6
2.1.1 Android环境6
2.1.2 iOS环境8
2.1.3 获取Flutter SDK9
2.2  开发工具 10
2.2.1 VS Code10
2.2.2 Android Studio11
2.3  Flutter项目示例 12
2.3.1 初始化项目13
2.3.2 项目结构14
2.3.3 运行项目14
2.3.4 程序调试15
2.3.5 体验热重载16
2.3.6 包管理17
2.4  习题 19
第3章 Dart语言基础20
3.1  Dart入门 20
3.1.1 安装Dart SDK20
3.1.2 编写Hello World21
3.2  变量与常量 21
3.2.1 变量21
3.2.2 常量22
3.3  内置类型 22
3.3.1 数值类型22
3.3.2 字符串类型23
3.3.3 布尔类型23
3.3.4 数组23
3.3.5 集合24
3.3.6 Map24
3.3.7 Runes25
3.3.8 Symbols25
3.4  函数 25
3.4.1 参数26
3.4.2 main()函数26
3.4.3 匿名函数26
3.4.4 闭包函数27
3.4.5 返回值27
3.5  类 28
3.5.1 类的成员28
3.5.2 构造函数28
3.5.3 接口与抽象类29
3.6  空安全 29
3.6.1 启用空安全29
3.6.2 空和非空30
3.6.3 空断言操作符30
3.6.4 类型提升30
3.6.5 late关键字31
3.7  异步编程 31
3.7.1 同步和异步编程31
3.7.2 Isolate32
3.7.3 Future33
3.7.4 async/await34
3.7.5 Stream35
3.8  异常 37
3.9  习题 38
第4章 Flutter组件40
4.1  计数器应用 40
4.2  组件基础知识 41
4.2.1 Widget简介41
4.2.2 StatelessWidget42
4.2.3 StatefulWidget43
4.2.4 MaterialApp45
4.2.5 State45
4.3  容器组件 47
4.3.1 Container47
4.3.2 Scaffold49
4.3.3 DecoratedBox50
4.4  功能组件 52
4.4.1 Text52
4.4.2 Button53
4.4.3 TextField54
4.4.4 Image56
4.5  布局开发 58
4.5.1 布局模型与约束58
4.5.2 线性布局59
4.5.3 弹性布局60
4.5.4 流式布局61
4.5.5 层叠布局64
4.6  可滚动组件 66
4.6.1 Sliver布局模型66
4.6.2 SingleChildScrollView67
4.6.3 ListView68
4.6.4 滚动监听70
4.6.5 PageView73
4.6.6 CustomScrollView75
4.7  习题 78
第5章 事件处理79
5.1  指针事件 79
5.1.1 基本概念79
5.1.2 Listener组件80
5.1.3 忽略指针事件81
5.2  手势识别 81
5.2.1 基本概念81
5.2.2 常用事件82
5.2.3 手势识别器83
5.3  手势竞争与手势冲突 86
5.3.1 手势竞争86
5.3.2 手势冲突87
5.4  事件总线 89
5.5  习题 92
第6章 动画93
6.1  动画基础 93
6.2  动画API 94
6.2.1 Animation94
6.2.2 AnimationController95
6.2.3 Curve95
6.2.4 Tween96
6.2.5 综合示例97
6.3  Hero动画 99
6.4  交织动画 100
6.5  Rive动画 103
6.6  习题 108
第7章 路由与导航110
7.1  路由基础 110
7.1.1 基本概念110
7.1.2 路由使用111
7.1.3 命名路由112
7.1.4 路由传参113
7.1.5 路由嵌套115
7.2  路由栈管理 116
7.2.1 路由栈简介116
7.2.2 pushReplacement117
7.2.3 pushAndRemove-Until117
7.2.4 popUntil118
7.3  自定义路由 119
7.3.1 自定义路由动画119
7.3.2 Fluro120
7.4  习题 123
第8章 网络编程124
8.1  网络基础 124
8.1.1 HTTP124
8.1.2 HTTPS126
8.1.3 GET与POST127
8.2  网络请求 128
8.2.1 HttpClient128
8.2.2 http129
8.2.3 dio130
8.3  JSON解析 133
8.3.1 手动解析133
8.3.2 自动解析135
8.4  异步编程 137
8.4.1 事件循环137
8.4.2 Isolate139
8.4.3 线程管理143
8.4.4 事件流145
8.4.5 FutrueBuilder146
8.5  习题 148
第9章 数据存储149
9.1  SharedPreterences存储 149
9.1.1 基本操作149
9.1.2 综合示例150
9.2  SQLite存储 152
9.2.1 基本操作152
9.2.2 数据库工具类157
9.2.3 综合示例159
9.3  文件存储 161
9.3.1 基本概念161
9.3.2 文件操作工具类163
9.3.3 综合示例164
9.4  习题 168
第10章  主题与国际化169
10.1  应用主题 169
10.1.1 Theme与ThemeData169
10.1.2 全局主题170
10.1.3 局部主题171
10.1.4 主题换肤172
10.2  多语言支持 174
10.2.1 支持国际化174
10.2.2 自定义Delegate176
10.3  Intl国际化 178
10.3.1 安装Intl插件178
10.3.2 创建语言文件179
10.3.3 实现国际化180
10.4  习题 181
 第11章 混合开发182
11.1  混合开发简介 182
11.2  集成Flutter 183
11.2.1 Flutter模块183
11.2.2 原生Android集成Flutter184
11.2.3 原生iOS集成Flutter186
11.2.4 热重载与调试190
11.3  与原生平台通信 191
11.3.1 混合工程通信191
11.3.2 BasicMessage-Channel192
11.3.3 MethodChannel195
11.3.4 EventChannel198
11.4  混合路由栈管理 201
11.4.1 混合路由导航201
11.4.2 原生导航到Flutter202
11.4.3 Flutter导航到原生203
11.5  FlutterBoost 206
11.5.1 FlutterBoost简介206
11.5.2 原生Android集成FlutterBoost206
11.5.3 原生iOS集成FlutterBoost209
11.5.4 路由API211
11.5.5 生命周期函数213
11.6  Flutter插件开发 214
11.6.1 新建插件项目214
11.6.2 示例插件215
11.6.3 插件开发217
11.6.4 运行插件221
11.6.5 发布插件221
11.7  习题 222
 第12章 Flutter Web224
12.1  Flutter Web简介 224
12.2  Flutter Web实战 226
12.2.1 项目创建与运行226
12.2.2 调试项目226
12.2.3 打包与部署228
12.3  Flutter Desk实战 230
12.3.1 Flutter Desk简介230
12.3.2 Flutter Desk实战231
12.3.3 Flutter Desk打包232
12.4  Fair动态化 235
12.4.1 Fair简介235
12.4.2 接入Fair236
12.4.3 热更新体验237
12.4.4 热更新平台239
12.4.5 热更新API242
12.4.6 Fair原理244
12.5  习题 246
第13章  书旗小说应用实战247
13.1  项目背景 247
13.2  项目搭建 248
13.2.1 创建项目248
13.2.2 构建主框架249
13.2.3 网络请求251
13.2.4 网页组件251
13.2.5 接入tts253
13.3  书架 254
13.3.1 阅读记录254
13.3.2 我的书架255
13.3.3 书架管理257
13.3.4 确认弹框260
13.3.5 推荐图书列表262
13.4  图书搜索 263
13.5  书城 266
13.5.1 书城分类266
13.5.2 轮播图267
13.5.3 图书分类268
13.6  图书详情 270
13.6.1 图书简介270
13.6.2 图书章节271
13.6.3 书友评论272
13.6.4 发布评论274
13.7  阅读器开发 274
13.7.1 创建操作栏274
13.7.2 阅读器翻页276
13.7.3 下拉菜单276
13.7.4 黑白模式277
13.8  性能分析与优化 279
13.8.1 检测工具279
13.8.2 GPU问题分析281
13.8.3 UI问题分析283
13.8.4  布局优化284
13.8.5 内存优化285
第14章  打包与发布286
14.1  应用配置 286
14.1.1 配置启动页286
14.1.2 更改默认配置288
14.2  Android发布 289
14.2.1 创建签名文件289
14.2.2 制作签名包291
14.3  iOS发布 291
14.3.1 加入苹果开发者计划291
14.3.2 添加证书配置292
14.3.3 注册App ID294
14.3.4 使用Xcode打包294
14.3.5 发布iOS包297