[套装书]Flutter实战+Flutter技术入门与实战 第2版(2册)

作者
杜文 亢少军
丛书名
移动应用开发技术丛书
出版社
机械工业出版社
ISBN
9782004091495
简要
简介
内容简介书籍计算机书籍 ---------------------------Flutter实战--------------------------- 本书由浅入深的介绍了Flutter技术和开发流程。本书包含不仅包含大量示例、图片,还有配套的示例源码,可帮助读者循序渐进的掌握Flutter开发技术。本书分为入门、进阶、实例三大篇,其中入门篇(第1章~第7章)主要介绍了Flutter技术产生的背景、常用的组件以及布局方式,通过入门篇的学习,读者可以掌握如何使用Flutter来构建UI界面。进阶篇(第8章~第14章),包括Flutter中的事件机制、动画、自定义组件、文件和网络、插件、国际化以及Flutter核心原理等。通过本章内容,读者可以对Flutter整体构建及原理有一个深入的认识。实例篇(第15张),本章主要通过一个简版的Github APP来将前面介绍的内容串起来,让开发者对一个完整的Flutter APP开发流有个了解。 ---------------------------Flutter技术入门与实战 第2版--------------------------- 《Flutter技术入门与实战》自2019年1月出版后,已经调拨7000+册,由于软件版本更新快,第2版根据最新版本对代码进行了全面更新,并增加了动画案例、插件理论和案例、Dio网络请求、Fluro企业级路由、Provider状态管理等,本书内容全面、案例丰富,对代码进行了大量注释,最后还有综合案例分析,可帮助初学者快速掌握这个跨平台框架。
目录



---------------------------Flutter实战---------------------------


前 言
第一篇 入门篇
第1章 起步 2
1.1 移动开发技术简介 2
1.1.1 原生开发与跨平台技术 2
1.1.2 Hybrid技术简介 3
1.1.3 React Native、Weex及快应用 5
1.1.4 QT Mobile 7
1.1.5 Flutter问世 8
1.1.6 总结 9
1.2 初识Flutter 10
1.2.1 Flutter简介 10
1.2.2 Flutter框架结构 12
1.2.3 如何学习Flutter 13
1.3 搭建Flutter开发环境 14
1.3.1 安装Flutter 14
1.3.2 IDE配置与使用 19
1.3.3 连接设备运行Flutter应用 21
1.3.4 Android Studio常见配置问题 24
1.4 Dart语言简介 26
1.4.1 变量声明 27
1.4.2 函数 28
1.4.3 异步支持 30
1.4.4 Stream 34
1.4.5 Dart与Java及JavaScript的对比 35
第2章 第一个Flutter应用 36
2.1 计数器应用示例 36
2.1.1 创建Flutter应用模板 36
2.1.2 首页 39
2.2 路由管理 42
2.2.1 一个简单示例 43
2.2.2 MaterialPageRoute 44
2.2.3 Navigator 45
2.2.4 路由传值 45
2.2.5 命名路由 47
2.2.6 路由生成钩子 50
2.2.7 总结 50
2.3 包管理 51
2.4 资源管理 55
2.5 调试Flutter应用 60
2.6 Flutter异常捕获 67
2.6.1 Dart单线程模型 67
2.6.2 异常捕获 69
第3章 基础组件 73
3.1 Widget简介 73
3.1.1 概念 73
3.1.2 Widget与Element 73
3.1.3 Widget主要接口 74
3.1.4 StatelessWidget 75
3.1.5 StatefulWidget 77
3.1.6 State 78
3.1.7 在Widget树中获取State对象 84
3.1.8 Flutter SDK内置组件库介绍 85
3.2 状态管理 87
3.2.1 Widget管理自身状态 88
3.2.2 父Widget管理子Widget的状态 89
3.2.3 混合状态管理 91
3.2.4 全局状态管理 93
3.3 文本及样式 94
3.3.1 Text 94
3.3.2 TextStyle 95
3.3.3 TextSpan 95
3.3.4 DefaultTextStyle 96
3.3.5 字体 97
3.4 按钮 99
3.4.1 Material组件库中的按钮 99
3.4.2 自定义按钮外观 100
3.5 图片及ICON 102
3.5.1 图片 102
3.5.2 ICON 107
3.6 单选开关和复选框 109
3.6.1 属性及外观 110
3.6.2 总结 110
3.7 输入框及表单 110
3.7.1 TextField 110
3.7.2 Form 118
3.8 进度指示器 122
3.8.1 LinearProgressIndicator 122
3.8.2 CircularProgressIndicator 123
3.8.3 自定义尺寸 124
3.8.4 颜色动画 125
3.8.5 自定义进度指示器样式 126
第4章 布局类组件 127
4.1 布局类组件简介 127
4.2 线性布局(Row和Column) 128
4.3 弹性布局(Flex) 133
4.4 流式布局 136
4.4.1 Wrap 136
4.4.2 Flow 137
4.5 层叠布局 139
4.6 对齐与相对定位(Align) 141
4.6.1 Align 142
4.6.2 Align与Stack对比 144
4.6.3 Center组件 145
第5章 容器类组件 146
5.1 填充(Padding) 146
5.2 尺寸限制类容器 147
5.2.1 ConstrainedBox 147
5.2.2 SizedBox 148
5.2.3 多重限制 149
5.2.4 UnconstrainedBox 150
5.2.5 其他尺寸限制类容器 152
5.3 装饰容器(DecoratedBox) 152
5.4 变换(Transform) 153
5.5 Container 156
5.6 Scaffold、AppBar和底部导航 158
5.6.1 Scaffold 158
5.6.2 AppBar 160
5.6.3 抽屉菜单 163
5.6.4 FloatingActionButton 165
5.6.5 底部导航栏 165
5.7 剪裁(Clip) 166
第6章 可滚动组件 169
6.1 可滚动组件简介 169
6.2 SingleChildScrollView 171
6.3 ListView 172
6.4 GridView 179
6.5 CustomScrollView 184
6.6 滚动监听及控制 187
6.6.1 ScrollController 187
6.6.2 滚动监听 191
第7章 功能型组件 194
7.1 导航返回拦截(WillPopScope) 194
7.2 数据共享(InheritedWidget) 195
7.3 跨组件状态共享(Provider) 200
7.4 颜色和主题 210
7.4.1 颜色 210
7.4.2 主题 212
7.5 异步UI更新 215
7.5.1 FutureBuilder 216
7.5.2 StreamBuilder 218
7.6 对话框详解 219
7.6.1 使用对话框 219
7.6.2 打开动画及遮罩 224
7.6.3 对话框实现原理 226
7.6.4 对话框状态管理 227
7.6.5 其他类型的对话框 235
第二篇 进阶篇
第8章 事件处理与通知 242
8.1 原始指针事件处理 242
8.2 手势识别 245
8.2.1 GestureDetector 245
8.2.2 GestureRecognizer 249
8.2.3 手势竞争与冲突 251
8.3 事件总线 253
8.4 Notification 255
第9章 动画 261
9.1 Flutter动画简介 261
9.2 动画基本结构及状态监听 265
9.2.1 动画基本结构 265
9.2.2 动画状态监听 270
9.3 自定义路由切换动画 270
9.4 Hero动画 273
9.5 交织动画 275
9.6 通用切换动画组件 278
9.6.1 AnimatedSwitcher 279
9.6.2 AnimatedSwitcher的高级用法 282
9.7 动画过渡组件 286
9.7.1 自定义动画过渡组件 286
9.7.2 Flutter预置的动画过渡组件 293
第10章 自定义组件 297
10.1 自定义组件方法简介 297
10.2 组合现有组件 298
10.3 组合实例:TurnBox 301
10.4 自绘组件(CustomPaint与Canvas) 305
10.5 自绘实例:圆形背景渐变进度条 309
第11章 文件操作与网络请求 318
11.1 文件操作 318
11.2 通过HttpClient发起HTTP请求 320
11.3 dio HTTP请求库 327
11.4 示例:HTTP分块下载 329
11.5 使用WebSockets 334
11.6 使用Socket API 338
11.7 JSON转Dart Model类 338
第12章 包与插件 348
12.1 开发Package 348
12.2 插件开发:平台通道简介 352
12.3 开发Flutter插件 355
12.4 插件开发:Android端API实现 357
12.5 插件开发:iOS端API实现 360
12.6 Texture和PlatformView 364
12.6.1 Texture(示例:使用摄像头) 364
12.6.2 PlatformView(示例:WebView) 373
第13章 国际化 375
13.1 让APP支持多语言 375
13.2 实现Localizations 379
13.3 使用Intl包 381
13.4 国际化中的常见问题 386
第14章 Flutter核心原理 388
14.1 Flutter UI系统 388
14.2 Element与BuildContext 390
14.2.1 Element 390
14.2.2 BuildContext 391
14.3 RenderObject和RenderBox 395
14.3.1 布局过程 395
14.3.2 绘制过程 398
14.3.3 命中测试 401
14.3.4 语义化 402
14.3.5 总结 403
14.4 Flutter运行机制:从启动到显示 403
14.5 图片加载原理与缓存 410
14.5.1 ImageProvider 410
14.5.2 Image组件原理 418
第三篇 实例篇
第15章 一个完整的Flutter应用 422
15.1 GitHub客户端示例 422
15.2 Flutter APP代码结构 423
15.3 Model类定义 424
15.4 全局变量及共享状态 427
15.4.1 全局变量:Global类 427
15.4.2 共享状态 428
15.5 网络请求封装 430
15.5.1 网络接口缓存 430
15.5.2 封装网络请求 433
15.6 APP入口及主页 435
15.6.1 APP入口 435
15.6.2 主页 437
15.6.3 抽屉菜单 443
15.7 登录页 446
15.8 多语言和多主题 449
15.8.1 语言选择页 449
15.8.2 主题选择页 451
参考文献 452



---------------------------Flutter技术入门与实战 第2版---------------------------


第2版前言
第1章 开启Flutter之旅 1
1.1 Flutter的特点与核心概念 1
1.1.1 一切皆为组件 2
1.1.2 组件嵌套 2
1.1.3 构建 3
1.1.4 处理用户交互 3
1.1.5 状态 4
1.1.6 分层的框架 5
1.2 搭建开发环境 6
1.2.1 Windows环境搭建 6
1.2.2 MacOS环境搭建 12
1.3 写第一个Flutter程序 16
第2章 Flutter基础知识 22
2.1 入口程序 22
2.2 Material Design设计风格 23
2.3 Flutter主题 23
2.3.1 创建应用主题 23
2.3.2 局部主题 25
2.3.3 使用主题 26
2.4 使用包资源 27
2.5 状态管理 31
2.5.1 有状态及无状态组件 31
2.5.2 Provider的使用 33
2.6 HTTP请求 36
2.6.1 HTTP请求方式 37
2.6.2 HttpClient请求方式 38
2.6.3 Dio请求方式 39
第3章 Dart语言简述 47
3.1 Dart的重要概念与常用开发库 47
3.2 变量与基本数据类型 50
3.3 函数 52
3.4 运算符 54
3.5 流程控制语句 58
3.6 异常处理 61
3.7 面向对象 62
3.7.1 实例化成员变量 62
3.7.2 构造函数 63
3.7.3 读取和写入对象 64
3.7.4 重载操作 65
3.7.5 继承类 66
3.7.6 抽象类 67
3.7.7 枚举类型 68
3.7.8 Mixins 69
3.8 泛型 69
3.9 库的使用 70
3.10 异步支持 71
3.11 元数据 71
3.12 注释 73
第4章 常用组件 75
4.1 容器组件 75
4.2 图片组件 77
4.3 文本组件 79
4.4 图标及按钮组件 81
4.4.1 图标组件 81
4.4.2 图标按钮组件 82
4.4.3 凸起按钮组件 83
4.5 列表组件 84
4.5.1 基础列表组件 85
4.5.2 水平列表组件 86
4.5.3 长列表组件 88
4.5.4 网格列表组件 89
4.6 表单组件 90
第5章 Material Design风格组件 94
5.1 App结构和导航组件 95
5.1.1 MaterialApp(应用组件) 95
5.1.2 Scaffold(脚手架组件) 99
5.1.3 AppBar(应用按钮组件) 101
5.1.4 BottomNavigationBar(底部导航条组件) 103
5.1.5 TabBar(水平选项卡及视图组件) 104
5.1.6 Drawer(抽屉组件) 110
5.2 按钮和提示组件 112
5.2.1 FloatingActionButton(悬停按钮组件) 112
5.2.2 FlatButton(扁平按钮组件) 114
5.2.3 PopupMenuButton(弹出菜单组件) 115
5.2.4 SimpleDialog(简单对话框组件) 117
5.2.5 AlertDialog(提示对话框组件) 118
5.2.6 SnackBar(轻量提示组件) 120
5.3 其他组件 121
5.3.1 TextField(文本框组件) 121
5.3.2 Card(卡片组件) 123
第6章 Cupertino风格组件 126
6.1 CupertinoActivityIndicator(加载指示器组件) 126
6.2 CupertinoAlertDialog(对话框组件) 127
6.3 CupertinoButton(按钮组件) 128
6.4 Cupertino(导航组件集) 129
第7章 页面布局 135
7.1 基础布局处理 136
7.1.1 Container(容器布局) 136
7.1.2 Center(居中布局) 139
7.1.3 Padding(填充布局) 140
7.1.4 Align(对齐布局) 142
7.1.5 Row(水平布局) 144
7.1.6 Column(垂直布局) 145
7.1.7 FittedBox(缩放布局) 147
7.1.8 Stack/Alignment 150
7.1.9 Stack/Positioned 152
7.1.10 IndexedStack 154
7.1.11 OverflowBox(溢出父容器显示) 155
7.2 宽高尺寸处理 157
7.2.1 SizedBox(设置具体尺寸) 157
7.2.2 ConstrainedBox(限定最大最小宽高布局) 158
7.2.3 LimitedBox(限定最大宽高布局) 159
7.2.4 AspectRatio(调整宽高比) 161
7.2.5 FractionallySizedBox(百分比布局) 162
7.3 列表及表格布局 163
7.3.1 ListView 163
7.3.2 GridView 166
7.3.3 Table 167
7.4 其他布局处理 169
7.4.1 Transform(矩阵转换) 169
7.4.2 Baseline(基准线布局) 171
7.4.3 Offstage(控制是否显示组件) 172
7.4.4 Wrap(按宽高自动换行布局) 174
7.5 布局综合示例 176
7.5.1 布局分析 176
7.5.2 准备素材 177
7.5.3 编写代码 178
第8章 手势 184
8.1 用GestureDetector进行手势检测 184
8.2 用Dismissible实现滑动删除 186
第9章 资源和图片 189
9.1 添加资源和图片 189
9.1.1 指定asset 189
9.1.2 加载asset 190
9.1.3 平台asset 192
9.2 自定义字体 194
第10章 组件装饰和视觉效果 196
10.1 Opacity(透明度处理) 196
10.2 DecoratedBox(装饰盒子) 197
10.3 RotatedBox(旋转盒子) 204
10.4 Clip(剪裁处理) 205
10.5 案例—自定义画板 209
第11章 路由和持久化 227
11.1 路由的基本应用 227
11.2 Fluro企业级路由 235
11.3 Key-Value存储简介 240
11.3.1 shared_preferences的应用 241
11.3.2 shared_preferences的实现原理 244
11.4 文件存储 246
11.5 Sqflite的应用 249
11.5.1 常用操作方法 249
11.5.2 客户表操作示例 251
第12章 动画 256
12.1 动画的基本概念 256
12.2 Flutter的动画相关类 257
12.2.1 Animation简介 258
12.2.2 AnimationController(动画管理类) 258
12.2.3 CurvedAnimation(非线性动画类) 259
12.2.4 Tween(补间值生成类) 260
12.2.5 Listeners和StatusListeners(动画监听类) 261
12.2.6 动画控制流程 262
12.3 动画示例 262
12.3.1 字体放大动画 262
12.3.2 缓动动画 266
12.3.3 遮罩动画 269
12.3.4 数字变化动画 272
12.3.5 图表动画 274
12.4 动画组件 277
12.4.1 用AnimatedOpacity实现渐变效果 277
12.4.2 用Hero实现页面切换动画 279
第13章 Flutter插件开发 282
13.1 获取系统版本插件 282
13.1.1 新建插件 282
13.1.2 运行插件 285
13.1.3 示例代码分析 286
13.2 电池电量插件 293
13.2.1 新建插件 293
13.2.2 插件上层处理 293
13.2.3 Android原生层处理 295
13.2.4 iOS原生层处理 300
13.2.5 测试插件 304
13.3 Channel详解 308
13.3.1 通道名称 309
13.3.2 通信工具BinaryMessager 309
13.3.3 消息编解码器Codec 309
13.3.4 消息处理器Handler 310
13.4 PlatformView显示原生视图 311
13.4.1 新建插件 311
13.4.2 插件上层处理 311
13.4.3 Android原生层处理 314
13.4.4 iOS原生层处理 317
13.4.5 测试插件 321
第14章 开发工具及使用技巧 324
14.1 IDE集成开发环境 324
14.1.1 Android Studio / IntelliJ 324
14.1.2 Visual Studio Code 330
14.2 Flutter SDK 337
14.3 使用热重载 338
14.4 格式化代码 339
14.5 Flutter组件检查器 340
第15章 测试与发布应用 343
15.1 测试应用 343
15.1.1 简介 343
15.1.2 单元测试 344
15.1.3 Widget测试 345
15.1.4 集成测试 346
15.2 发布Android版App 348
15.2.1 检查App Manifest 348
15.2.2 查看构建配置 349
15.2.3 添加启动图标 350
15.2.4 App签名 350
15.2.5 构建发布版APK并安装在设备上 353
15.3 发布iOS版App 353
15.3.1 准备工作 353
15.3.2 在iTunes Connect上注册应用程序 353
15.3.3 注册一个Bundle ID 354
15.3.4 在iTunes Connect上创建应用程序记录 355
15.3.5 查看Xcode项目设置 355
15.3.6 添加应用程序图标 356
15.3.7 准备发布版本 358
15.3.8 将应用发布到App Store 360
第16章 综合案例 362
16.1 即时通信App界面实现 362
16.1.1 项目介绍 362
16.1.2 项目搭建 363
16.1.3 入口程序 366
16.1.4 加载页面 367
16.1.5 应用页面 368
16.1.6 搜索页面 375
16.1.7 聊天页面 379
16.1.8 好友页面 383
16.1.9 “我的”页面 390
16.2 企业站App实现 394
16.2.1 项目介绍 394
16.2.2 项目搭建 396
16.2.3 入口程序 399
16.2.4 加载页面 401
16.2.5 工具及配置文件处理 402
16.2.6 Fluro路由处理 404
16.2.7 Dio请求方法封装 405
16.2.8 索引页面 406
16.2.9 首页 410
16.2.10 首页轮播图 411
16.2.11 首页最新产品列表 412
16.2.12 产品页面 419
16.2.13 产品详情页面 423
16.2.14 “联系我们”页面 428



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4