描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111718659丛书名: 移动应用开发技术丛书
1.本书由Flutter中文网社区创始人、网红畅销书《Flutter实战》作者撰写,根据Flutter3.0版本技术迭代对第1版内容进行大量更新和重构,增加一些实例解析核心技术原理,并在进阶篇对Flutter技术中相对较深但很重要的内容进行了深入介绍。另外,书中还添加了一些动态图二维码,方便读者在阅读时扫描二维码体验动态图效果。2.本书适合PC客户端、移动开发或Web前端开发者和想学习Flutter技术更新进阶实战的Flutter初学者阅读参考。3.读者可以免费下载随书源代码:https://github.com/wendux/flutter_in_action_2。另外,由于本书实例中实现了不少通用性较强的组件,为了方便读者复用,作者将通用性较强的组件都添加到了 Flukit 开源项目,它是作者维护的一个Flutter开源组件库,项目地址是:https://github.com/flutterchina/flukit。
本书采用由浅入深的方式介绍Flutter技术原理,分为三篇15章,主要内容如下:
?入门篇(第1章~第5章),包括Flutter技术的出现背景和简介、Flutter的各种类型的Widget以及如何构建UI。通过学习本章,读者可以掌握如何使用Flutter来构建UI界面。
?进阶篇(第6章~第14章),包括可滚动组件、事件机制、动画、自定义组件、文件和网络、国际化以及Flutter核心原理等。通过本章内容,读者可以对Flutter整体构建及原理有一个深入的认识。
?实例篇(第15章),本章主要通过一个简版的Github App来将前面介绍的内容串起来,让开发者对一个完整的Flutter App开发流有个了解。
第一篇 入门篇
第1章 起步 2
1.1 移动开发技术简介 2
1.2 初识Flutter 9
1.3 搭建Flutter开发环境 13
1.4 Dart语言简介 25
第2章 第一个Flutter应用 36
2.1 计数器应用示例 36
2.2 Widget简介 42
2.3 状态管理 57
2.4 路由管理 63
2.5 包管理 71
2.6 资源管理 74
2.7 调试Flutter应用 80
2.8 Flutter异常捕获 87
第3章 基础组件 92
3.1 文本及样式 92
3.2 按钮 97
3.3 图片及ICON 98
3.4 单选开关和复选框 105
3.5 输入框及表单 106
3.6 进度指示器 117
第4章 布局类组件 122
4.1 布局类组件简介 122
4.2 布局原理与约束 123
4.3 线性布局 129
4.4 弹性布局 133
4.5 流式布局 136
4.6 层叠布局 139
4.7 对齐与相对定位 142
4.8 LayoutBuilder、AfterLayout 146
第5章 容器类组件 153
5.1 填充 153
5.2 装饰容器 154
5.3 变换 156
5.4 容器组件 159
5.5 剪裁 161
5.6 空间适配 163
5.7 页面骨架 169
第二篇 进阶篇
第6章 可滚动组件 176
6.1 可滚动组件简介 176
6.2 SingleChildScrollView 181
6.3 ListView 182
6.4 滚动监听及控制 191
6.5 AnimatedList 197
6.6 GridView 199
6.7 PageView与页面缓存 204
6.8 可滚动组件子项缓存 206
6.9 TabBarView 210
6.10 CustomScrollView 和 Sliver 214
6.11 自定义 Sliver 223
6.12 嵌套可滚动组件
NestedScrollView 237
第7章 功能型组件 246
7.1 导航返回拦截 246
7.2 数据共享 247
7.3 跨组件状态共享 252
7.4 颜色和主题 261
7.5 按需重构 266
7.6 异步UI更新 268
7.7 对话框详解 272
第8章 事件处理与通知 290
8.1 原始指针事件处理 290
8.2 手势识别 292
8.3 Flutter事件机制 297
8.4 手势原理与手势冲突 310
8.5 事件总线 318
8.6 通知 319
第9章 动画 326
9.1 Flutter动画简介 326
9.2 动画基本结构及状态监听 330
9.3 自定义路由切换动画 335
9.4 Hero动画 338
9.5 交织动画 343
9.6 动画切换组件 346
9.7 动画过渡组件 353
第10章 自定义组件 362
10.1 自定义组件方法简介 362
10.2 组合现有组件 363
10.3 组合实例:TurnBox 366
10.4 CustomPaint与Canvas 370
10.5 自绘实例:圆形背景渐变
进度条 375
10.6 自绘组件:CustomCheckbox 382
10.7 自绘组件: DoneWidget 393
10.8 水印组件实例:文本绘制与
离屏渲染 396
第11章 文件操作与网络请求 413
11.1 文件操作 413
11.2 通过HttpClient发起HTTP
请求 415
11.3 HTTP请求库dio 422
11.4 实例:HTTP分块下载 424
11.5 使用WebSocket 429
11.6 使用Socket API 432
11.7 JSON转Dart Model类 433
第12章 Flutter 扩展 444
12.1 包和插件 444
12.2 Flutter Web 446
第13章 国际化 449
13.1 让App支持多语言 449
13.2 实现Localizations 453
13.3 使用Intl包 455
13.4 国际化常见问题 459
第14章 Flutter核心原理 461
14.1 Flutter UI框架 461
14.2 Element、BuildContext和RenderObject 463
14.3 Flutter启动流程和渲染管线 468
14.4 布局过程 477
14.5 绘制一:绘制原理及Layer 492
14.6 绘制二:组件树绘制流程 496
14.7 绘制三:Layer 实例 505
14.8 绘制四:Compositing 510
第三篇 实例篇
第15章 一个完整的Flutter应用 524
15.1 GitHub客户端示例 524
15.2 Flutter App代码结构 525
15.3 Model类定义 526
15.4 全局变量及共享状态 529
15.5 网络请求封装 532
15.6 App入口及主页 536
15.7 登录页 547
15.8 多语言和多主题 549
推荐阅读 553
转眼间从《Flutter实战》第1版电子版发布到现在已经接近两年时间,这两年中,第1版实体书出版并成为Flutter技术类畅销书之一,其电子版官网UV用户数超过60万,日访问量长期稳定在3500人左右。当然,取得如此成绩最主要的一个原因是这两年 Flutter 技术热度持续提高,整个 Flutter 生态和社区也发生了翻天覆地的变化,主要体现在:
Flutter稳定版发布到了3.0,现在已经支持移动端、Web端和PC端,通过Flutter 开发的应用程序能够轻松地在各个平台迁移并获得很好的性能。
Flutter 在 GitHub Star 数上排名已经进入了前20,在跨端框架中排名第一。
全球很多公司,比如Google、微软、阿里巴巴、字节跳动、百度、京东等,都已经在商业项目中使用 Flutter,已经有很多成功案例。
Flutter 第三方库数量持续保持高速增长,有越来越多的人为Flutter生态贡献代码。Flutter 相关的教程、图书数量也在高速增长。
综上,可见Flutter 技术从第一个测试版发布到现在,在短短 3 年多时间获得了巨大的成功,主要原因是:使用Flutter 既能保持很高的开发效率,又能获得良好的性能。根据近几年的实践数据,Flutter 相比原生开发,效能提高近一倍,而性能方面可以接近原生开发。
正是因为Flutter 技术发展太快,《Flutter实战》第1版中的部分内容已经过时,在读者朋友们的催促下,才有了第2版。
第2版的变化
相较第1版,本书主要有以下变化:
基于 Flutter 3.0编写。
修改和重构了60% 的内容,添加了更多的示例,对部分章节的顺序进行了调整,使学习的梯度更加合理,以期能够循序渐进地帮助读者了解Flutter。
进阶篇对Flutter技术中相对深入但很重要的内容进行了详细介绍,比如与Sliver布局协议、渲染相关的 Layer,以及通过定义 RenderObject 的方式来定义组件。
在介绍Flutter 核心技术原理时,添加了很多实例来帮助读者理解Flutter的布局、绘制等原理。
聚焦于Flutter技术本身,删除了一些和具体平台相关的内容,比如Android和iOS的插件开发,以及如何进行原生 Flutter混合开发等。这些内容读者可以去Flutter官网查找相应教程。
电子版中添加了一些动图。
修改了第1版中的一些错误。
本书结构
本书由浅入深地介绍Flutter技术原理,分为三篇,共15章,各篇的主要内容如下。
入门篇(第1~5章),包括Flutter技术的出现背景和简介、Flutter的各种Widget以及如何构建UI(User Interface,用户界面)。通过学习本篇内容,读者可以掌握如何使用Flutter来构建UI界面。
进阶篇(第6~14章),包括可滚动组件、事件机制、动画、自定义组件、文件和网络、国际化以及Flutter核心原理等。通过学习本篇内容,读者可以对Flutter整体构建及原理有一个深入的认识。
实例篇(第15章),本篇主要通过一个简版的GitHub App来将前面介绍的内容串起来,让开发者对一个完整的Flutter App开发流程有所了解。
因为Flutter的很多知识点是相互交织的,很难将它们彻底划分开,所以本书中难免会出现一些相互引用的场景,比如在入门篇介绍进度指示器时会用到在进阶篇才介绍的动画相关知识。对于这种情况,会在相应的章节进行说明。读者可以直接跳读相应知识点后再返回,也可以先有个印象,待学习到后面相关章节时再回头来看。
本书特色
我在大学时读过侯捷(真名侯俊杰)写的一些 C 相关的书籍,在他的《深入浅出MFC》一书中,有一句话让我印象非常深刻:“唯有深入,方能浅出。”我非常认同这句话,对于一门技术,只有了解得深入,才能用浅显、通俗的语言描述出来。我在写作本书时,深入浅出就是一个主要目标。所以,本书的目标不仅是想告诉读者如何使用Flutter,而且也非常关注各个知识点的底层实现以及设计思想。从本书章节划分上来看,入门篇为“浅出”,进阶篇则是“深入”。另外,由于PC客户端开发、移动开发、Web开发这些经验我都有,而Flutter本质上是一个UI系统,而UI系统的设计和实现在“大前端”开发下有很多相通之处,所以在阐述本书中的一些知识点时,我也会对比一些其他UI系统(主要是 Android 或 Web)的相应实现,以便有相关开发经验的读者对比理解。
读者对象
至少熟悉一种编程语言的读者。
接触过PC客户端开发、移动开发或Web前端开发的读者。
有一定编程基础的读者。
关于随书源代码
随书源代码网址:https://github.com/wendux/flutter_in_action_2。
由于本书实例中实现了不少通用性较强的组件,为了方便复用,我将通用性较强的组件都添加到了Flukit开源项目中,这是我维护的一个Flutter开源组件库,项目地址是https://github.com/flutterchina/flukit 。
勘误
由于Flutter SDK在不断更新,本书中的部分内容(如类的继承关系、参数等)可能会与新版本的Flutter不一致,建议读者以最新的Flutter SDK为准。另外,由于水平有限,书中难免有错误之处,如果发现错误,可以在本书GitHub项目issue列表中反馈,地址是https:// github.com/flutterchina/flutter-in-action-2nd/issues。另外,你也可以关注本书电子版(https://book.flutterchina.club),电子版中会定期修正错误并更新内容。
评论
还没有评论。