Flutter开发实战详解
第1章 跨平台开发的发展/1
1.1 跨平台开发的演进/2
1.2 Cordova/2
1.3 React Native/3
1.4 Flutter/4
1.5 综合对比/6
1.5.1 开发环境/6
1.5.2 实现原理/7
1.5.3 开发语言/7
1.5.4 界面开发/8
查看完整
1.1 跨平台开发的演进/2
1.2 Cordova/2
1.3 React Native/3
1.4 Flutter/4
1.5 综合对比/6
1.5.1 开发环境/6
1.5.2 实现原理/7
1.5.3 开发语言/7
1.5.4 界面开发/8
查看完整
郭树煜作者拥有5年以上的移动端开发经验,长期负责移动端的技术架构与业务实现,在跨平台领域从 React Native到Flutter拥有丰富的线上项目开发经历。目前作者在GitHub的开源项目收获30k 的star,其中的Flutter实战项目gsy_github_app_flutter、Flutter学习演示项目gsy_flutter_demo和Flutter电子书项目gsy_flutter_book已收获了超过14000的star,并且gsy_github_app_flutter项目更是位居GitHub个人Flutter开源项目star数名。作者长期活跃于掘金(恋猫de小郭)、知乎(恋猫)等技术平台,并维护有GSYTech公众号,持续产出着各类移动领域相关的技术文章,欢迎交流互动。
本书以实战为导向,由浅入深地介绍了Flutter开发过程中的基础体系、实战技巧和源码分析。通过本书,读者可以快速掌握Flutter的开发技能,并通过实战学习Flutter的源码设计。同时,本书还配套全面的学习例程与完整的开源项目,真正做到为读者的Flutter学习旅程披荆斩棘。
本书适合有一定开发经验的学生、研究者或从业者,尤其是 Android、iOS或前端开发人员阅读。
本书适合有一定开发经验的学生、研究者或从业者,尤其是 Android、iOS或前端开发人员阅读。
第1章 跨平台开发的发展/1
1.1 跨平台开发的演进/2
1.2 Cordova/2
1.3 React Native/3
1.4 Flutter/4
1.5 综合对比/6
1.5.1 开发环境/6
1.5.2 实现原理/7
1.5.3 开发语言/7
1.5.4 界面开发/8
1.5.5 插件开发/11
1.5.6 编译和产物/12
1.5.7 热更新和支持平台/12
第2章 走进Flutter的世界/14
2.1 开发环境/15
2.1.1 前置准备 15
2.1.2 安装Flutter开发环境/17
2.1.3 配置编辑器/18
2.2 Dart语言/24
2.2.1 基础语法/24
2.2.2 setter/getter/25
2.2.3 final/const/26
2.2.4 import/26
2.2.5 基础数据类型/26
2.2.6 逻辑语句与操作符/29
2.2.7 var与dynamic/31
2.2.8 函数方法/32
2.2.9 类、接口和继承/32
2.2.10 mixins/34
2.2.11 构造方法/36
2.2.12 异常处理/36
2.2.13 Isolate/37
2.2.14 Zone/38
2.2.15 异步执行/39
2.2.16 拓展方法/41
2.3 Flutter控件介绍/42
2.3.1 无状态控件(StatelessWidget)/42
2.3.2 有状态控件(StatefulWidget)/43
2.3.3 Flutter常用控件/45
2.3.4 Flutter页面/50
2.3.5 路由跳转/53
2.4 Flutter常见开发技巧/55
2.4.1 常见的问题处理/55
2.4.2 Widget Key/58
2.4.3 获取状态栏高度和字体缩放/61
2.4.4 状态栏颜色和图标颜色/62
2.4.5 控件圆角裁剪/62
2.4.6 懒加载/64
2.4.7 ChangeNotifier/65
第3章 Flutter的灵魂:Widget/68
3.1 配置文件Widget/69
3.2 大脑仓库Element/71
3.2.1 Element的大脑中枢/72
3.2.2 Element的仓库存储/73
3.2.3 Element的分类/75
3.2.4 Element桥接连通/76
3.3 绘制实例RenderObject/77
3.3.1 RenderObject的子类/77
3.3.2 RenderPadding/80
3.3.3 RenderObject的绘制/83
3.4 渲染图层Layer/86
第4章 Flutter Widget分类对比/90
4.1 Widget的状态分类/91
4.2 Element分类/98
4.3 RenderObject分类/101
4.3.1 RenderBox/102
4.3.2 RenderSliver/104
4.3.3 ViewPort/107
4.4 单元素与多元素分类/122
4.4.1 自定义MultiChildRenderObjectWidget/123
4.4.2 CustomMultiChildLayout/130
4.5 InheritedWidget共享状态/133
4.6 ErrorWidget异常处理/136
第5章 Flutter Framework/138
5.1 线程模型/139
5.2 动画实现/145
5.2.1 路由动画/149
5.2.2 Hero动画/150
5.2.3 Flare动画/153
5.3 手势与触摸/157
5.3.1 事件流程/158
5.3.2 hitTest/159
5.3.3 dispatchEvent/160
5.3.4 事件竞争/161
5.3.5 PointerDownEvent/161
5.3.6 开始竞争/163
5.3.7 滑动事件/165
5.4 滑动Physic/166
5.4.1 ScrollConfiguration/167
5.4.2 ScrollPhysics的工作原理/169
5.4.3 applyPhysicsToUserOffset/171
5.4.4 applyBoundaryConditions/172
5.4.5 createBallisticSimulation/172
5.4.6 Simulation/174
5.5 图片加载/175
5.6 网络请求/188
第6章 Flutter状态管理/190
6.1 Flutter中的状态管理/191
6.2 Stream/193
6.2.1 Stream的简单使用/193
6.2.2 Stream的工作流程 194
6.2.3 Stream中的同步和异步/197
6.2.4 Stream中的广播和非广播/198
6.2.5 Stream的变换/199
6.2.6 StreamBuilder/199
6.2.7 RxDart/200
6.3 BLoC/201
6.4 scoped_model/204
6.5 flutter_redux/206
6.6 Provider/212
6.7 总结对比/218
第7章 混合开发 220
7.1 Flutter混合开发/221
7.2 Flutter工程集成原生插件/225
7.2.1 MethodChannel/227
7.2.2 PlatformView/231
7.2.3 新版Android Plugin/242
7.3 原生工程集成Flutter项目/244
7.4 FlutterBoost/249
第8章 Flutter开发实战/253
8.1 Flutter开发中的入口/254
8.1.1 程序入口/254
8.1.2 应用入口/254
8.1.3 页面入口/256
8.2 基础控件/258
8.2.1 TabWidget/258
8.2.2 AppBar/265
8.2.3 下拉刷新和底部加载更多/268
8.2.4 输入框/274
8.2.5 矢量图库/281
8.2.6 自定义绘制/282
8.2.7 Align和Positioned/285
8.2.8 控件小技巧/288
8.3 路由跳转/291
8.4 状态管理/293
8.4.1 BLoC另类的实现/293
8.4.2 redux的拦截处理/296
8.4.3 scoped_model的局部共享数据/299
8.5 网络请求/302
8.5.1 序列化/307
8.5.2 built_value序列化/309
8.6 多语言与主题/310
8.6.1 主题/312
8.6.2 多语言/313
8.7 多环境配置/317
8.8 完整项目实战/320
第9章 调试打包/322
9.1 JIT与AOT/323
9.2 Android打包/324
9.3 iOS打包/326
9.4 Web和PC打包/328
9.5 性能调试/328
9.6 开发工具/332
9.6.1 DartPad/332
9.6.2 Supernova/332
9.6.3 Hot UI/334
9.6.4 Layout Explorer/335
^ 收 起
1.1 跨平台开发的演进/2
1.2 Cordova/2
1.3 React Native/3
1.4 Flutter/4
1.5 综合对比/6
1.5.1 开发环境/6
1.5.2 实现原理/7
1.5.3 开发语言/7
1.5.4 界面开发/8
1.5.5 插件开发/11
1.5.6 编译和产物/12
1.5.7 热更新和支持平台/12
第2章 走进Flutter的世界/14
2.1 开发环境/15
2.1.1 前置准备 15
2.1.2 安装Flutter开发环境/17
2.1.3 配置编辑器/18
2.2 Dart语言/24
2.2.1 基础语法/24
2.2.2 setter/getter/25
2.2.3 final/const/26
2.2.4 import/26
2.2.5 基础数据类型/26
2.2.6 逻辑语句与操作符/29
2.2.7 var与dynamic/31
2.2.8 函数方法/32
2.2.9 类、接口和继承/32
2.2.10 mixins/34
2.2.11 构造方法/36
2.2.12 异常处理/36
2.2.13 Isolate/37
2.2.14 Zone/38
2.2.15 异步执行/39
2.2.16 拓展方法/41
2.3 Flutter控件介绍/42
2.3.1 无状态控件(StatelessWidget)/42
2.3.2 有状态控件(StatefulWidget)/43
2.3.3 Flutter常用控件/45
2.3.4 Flutter页面/50
2.3.5 路由跳转/53
2.4 Flutter常见开发技巧/55
2.4.1 常见的问题处理/55
2.4.2 Widget Key/58
2.4.3 获取状态栏高度和字体缩放/61
2.4.4 状态栏颜色和图标颜色/62
2.4.5 控件圆角裁剪/62
2.4.6 懒加载/64
2.4.7 ChangeNotifier/65
第3章 Flutter的灵魂:Widget/68
3.1 配置文件Widget/69
3.2 大脑仓库Element/71
3.2.1 Element的大脑中枢/72
3.2.2 Element的仓库存储/73
3.2.3 Element的分类/75
3.2.4 Element桥接连通/76
3.3 绘制实例RenderObject/77
3.3.1 RenderObject的子类/77
3.3.2 RenderPadding/80
3.3.3 RenderObject的绘制/83
3.4 渲染图层Layer/86
第4章 Flutter Widget分类对比/90
4.1 Widget的状态分类/91
4.2 Element分类/98
4.3 RenderObject分类/101
4.3.1 RenderBox/102
4.3.2 RenderSliver/104
4.3.3 ViewPort/107
4.4 单元素与多元素分类/122
4.4.1 自定义MultiChildRenderObjectWidget/123
4.4.2 CustomMultiChildLayout/130
4.5 InheritedWidget共享状态/133
4.6 ErrorWidget异常处理/136
第5章 Flutter Framework/138
5.1 线程模型/139
5.2 动画实现/145
5.2.1 路由动画/149
5.2.2 Hero动画/150
5.2.3 Flare动画/153
5.3 手势与触摸/157
5.3.1 事件流程/158
5.3.2 hitTest/159
5.3.3 dispatchEvent/160
5.3.4 事件竞争/161
5.3.5 PointerDownEvent/161
5.3.6 开始竞争/163
5.3.7 滑动事件/165
5.4 滑动Physic/166
5.4.1 ScrollConfiguration/167
5.4.2 ScrollPhysics的工作原理/169
5.4.3 applyPhysicsToUserOffset/171
5.4.4 applyBoundaryConditions/172
5.4.5 createBallisticSimulation/172
5.4.6 Simulation/174
5.5 图片加载/175
5.6 网络请求/188
第6章 Flutter状态管理/190
6.1 Flutter中的状态管理/191
6.2 Stream/193
6.2.1 Stream的简单使用/193
6.2.2 Stream的工作流程 194
6.2.3 Stream中的同步和异步/197
6.2.4 Stream中的广播和非广播/198
6.2.5 Stream的变换/199
6.2.6 StreamBuilder/199
6.2.7 RxDart/200
6.3 BLoC/201
6.4 scoped_model/204
6.5 flutter_redux/206
6.6 Provider/212
6.7 总结对比/218
第7章 混合开发 220
7.1 Flutter混合开发/221
7.2 Flutter工程集成原生插件/225
7.2.1 MethodChannel/227
7.2.2 PlatformView/231
7.2.3 新版Android Plugin/242
7.3 原生工程集成Flutter项目/244
7.4 FlutterBoost/249
第8章 Flutter开发实战/253
8.1 Flutter开发中的入口/254
8.1.1 程序入口/254
8.1.2 应用入口/254
8.1.3 页面入口/256
8.2 基础控件/258
8.2.1 TabWidget/258
8.2.2 AppBar/265
8.2.3 下拉刷新和底部加载更多/268
8.2.4 输入框/274
8.2.5 矢量图库/281
8.2.6 自定义绘制/282
8.2.7 Align和Positioned/285
8.2.8 控件小技巧/288
8.3 路由跳转/291
8.4 状态管理/293
8.4.1 BLoC另类的实现/293
8.4.2 redux的拦截处理/296
8.4.3 scoped_model的局部共享数据/299
8.5 网络请求/302
8.5.1 序列化/307
8.5.2 built_value序列化/309
8.6 多语言与主题/310
8.6.1 主题/312
8.6.2 多语言/313
8.7 多环境配置/317
8.8 完整项目实战/320
第9章 调试打包/322
9.1 JIT与AOT/323
9.2 Android打包/324
9.3 iOS打包/326
9.4 Web和PC打包/328
9.5 性能调试/328
9.6 开发工具/332
9.6.1 DartPad/332
9.6.2 Supernova/332
9.6.3 Hot UI/334
9.6.4 Layout Explorer/335
^ 收 起
郭树煜作者拥有5年以上的移动端开发经验,长期负责移动端的技术架构与业务实现,在跨平台领域从 React Native到Flutter拥有丰富的线上项目开发经历。目前作者在GitHub的开源项目收获30k 的star,其中的Flutter实战项目gsy_github_app_flutter、Flutter学习演示项目gsy_flutter_demo和Flutter电子书项目gsy_flutter_book已收获了超过14000的star,并且gsy_github_app_flutter项目更是位居GitHub个人Flutter开源项目star数名。作者长期活跃于掘金(恋猫de小郭)、知乎(恋猫)等技术平台,并维护有GSYTech公众号,持续产出着各类移动领域相关的技术文章,欢迎交流互动。
本书以实战为导向,由浅入深地介绍了Flutter开发过程中的基础体系、实战技巧和源码分析。通过本书,读者可以快速掌握Flutter的开发技能,并通过实战学习Flutter的源码设计。同时,本书还配套全面的学习例程与完整的开源项目,真正做到为读者的Flutter学习旅程披荆斩棘。
本书适合有一定开发经验的学生、研究者或从业者,尤其是 Android、iOS或前端开发人员阅读。
本书适合有一定开发经验的学生、研究者或从业者,尤其是 Android、iOS或前端开发人员阅读。
比价列表