作 者:张益珲 著
定 价:69
出 版 社:清华大学出版社
出版日期:2019年11月01日
页 数:279
装 帧:平装
ISBN:9787302539049
●第1章Flutter开发环境搭建1
1.1认识Flutter1
1.1.1Flutter的前世今生与应用场景2
1.1.2安装Flutter开发框架2
1.2配置iOS开发环境3
1.2.1进行AppID的申请4
1.2.2获取Xcode开发工具4
1.3配置Android开发环境5
1.3.1获取AndroidStudio开发工具5
1.3.2为AndroidStudio添加Flutter插件7
1.4你的第一个Flutter应用9
第2章Dart语言基础12
2.1Dart开发环境搭建13
2.1.1安装DartSDK13
2.1.2配置Dart编辑器14
2.2Dart中的变量17
2.2.1使用变量17
2.2.2不可变变量18
2.3Dart中的内置数据类型18
2.3.1数值类型18
2.3.2字符串类型21
2.3.3布尔类型23
2.3.4列表类型23
2.3.5字典类型25
2.4Dart中的运算符26
2.4.1算数运算符27
2.4.2比较运算符28
2.4.3类型运算符28
2.4.4复合运算符29
2.4.5逻辑运算符29
2.4.6位运算符30
2.4.7条件运算符31
2.4.8级联运算符32
2.4.9点运算符33
2.5Dart中的流程控制语句33
2.5.1条件分支语句33
2.5.2循环语句35
2.5.3中断语句36
2.5.4多分支选择语句37
2.5.5异常处理39
第3章Dart高级进阶42
3.1使用函数43
3.1.1关于main函数43
3.1.2自定义函数43
3.1.3定义可选参数的函数45
3.1.4函数可选参数的默认值46
3.1.5匿名函数47
3.1.6词法作用域47
3.1.7关于闭包48
3.2Dart中的类49
3.2.1自定义类与构造方法49
3.2.2实例方法51
3.2.3抽象类与抽象方法53
3.2.4类的继承54
3.2.5运算符重载55
3.2.6noSuchMethod方法56
3.2.7枚举类型57
3.2.8扩展类的功能——Mixin特性58
3.2.9类属性与类方法61
3.3泛型61
3.3.1使用泛型62
3.3.2约束泛型与泛型函数63
3.4异步编程技术64
3.4.1async与await关键字64
3.4.2异步与回调65
3.4.3使用Future对象66
3.5模块的使用67
3.5.1模块的应用67
3.5.2模块命名68
3.6可调用类与注释69
3.6.1可调用类69
3.6.2关于注释69
第4章Flutter基础组件71
4.1Image图片组件的应用71
4.1.1图片资源的加载72
4.1.2Image组件的属性配置73
4.1.3关于Alignment对象75
4.1.4关于BoxFit对象75
4.1.5关于ImageRepeat对象76
4.2Text文本组件的应用76
4.2.1使用Text组件76
4.2.2自定义文本风格77
4.3Icon图标组件的应用78
4.3.1使用Icon组件79
4.3.2Flutter内置的Icon样式79
4.4按钮相关组件的应用80
4.4.1按钮组件的基类MaterialButton81
4.4.2RaisedButton的应用81
4.4.3FlatButton的应用81
4.4.4下拉选择按钮DropdownButton组件的应用82
4.4.5悬浮按钮组件的应用84
4.4.6图标按钮IconButton组件的应用85
4.5界面脚手架Scaffold组件86
4.5.1Scaffold组件概览86
4.5.2Scaffold属性使用示例86
4.5.3AppBar组件的应用87
4.5.4使用ButtomNavigationBar组件88
4.6FlutterLogo组件的应用90
4.7Placeholder占位符组件的应用91
4.8单组件布局容器组件的应用91
4.8.1Container容器组件91
4.8.2Padding容器组件95
4.8.3Center容器组件95
4.8.4Align容器组件96
4.8.5FittedBox容器组件97
4.8.6AspectRatio容器组件97
4.8.7ConstrainedBox容器组件98
4.8.8IntrinsicHeight与IntrinsicWidth容器98
4.8.9LimitedBox容器99
4.8.10Offstage容器99
4.8.11OverflowBox容器99
4.8.12SizeBox容器100
4.8.13Transform容器组件100
4.9多组件布局容器组件的应用101
4.9.1Row容器组件101
4.9.2Column容器组件102
4.9.3Flex与Expanded组件103
4.9.4Stack与 itioned容器组件104
4.9.5IndexedStack容器组件105
4.9.6Wrap容器组件106
4.9.7更多内容可滚动的布局容器107
第5章Flutter组件进阶108
5.1表单组件的应用108
5.1.1关于表单容器108
5.1.2TextFormField详解109
5.1.3关于InputDecoration类112
5.1.4下拉选择框DropdownButtonFormField组件的应用113
5.1.5RawKeyboardListener自定义组件接收键盘事件113
5.2Flutter布局技术114
5.2.1再看Container容器组件114
5.2.2Padding布局116
5.2.3Center布局117
5.2.4FittedBox布局118
5.2.5ConstrainedBox布局118
5.2.6抽屉布局119
5.3高级用户交互组件120
5.3.1复选按钮Checkbox组件120
5.3.2单选按钮Radio组件121
5.3.3切换按钮Switch组件122
5.3.4滑块按钮Slider组件的应用123
5.3.5日期时间选择弹窗124
5.3.6各种样式的弹窗组件127
5.3.7扩展面板组件的应用130
5.3.8按钮组相关组件131
5.3.9Card组件133
5.3.10指示类视图组件135
5.4对组件进行绘制与修饰136
5.4.1Opacity组件136
5.4.2DecoratedBox组件137
5.4.3裁剪相关组件137
5.4.4CustomPaint组件140
5.5内容可滚动组件144
5.5.1GridView组件的应用144
5.5.2ListView组件的应用148
5.5.3SingleChildScrollView组件的应用148
5.5.4Table组件的应用149
5.5.5Flow流式布局组件150
第6章动画与手势152
6.1补间动画的应用152
6.1.1关于Animation对象153
6.1.2AnimationController动画控制器153
6.1.3Tween补间对象154
6.1.4线性动画与曲线动画158
6.1.5Curve时间曲线函数159
6.1.6动画组件161
6.1.7同时执行多个动画162
6.1.8更多补间动画163
6.2物理动画的应用164
6.2.1摩擦减速动画示例164
6.2.2弹簧减速动画示例166
6.2.3重力动画示例167
6.3列表动画168
6.3.1关于AnimatedList类168
6.3.2进行列表操作动画168
6.4使用帧动画170
6.4.1一个简单的帧动画示例170
6.4.2GIF图——另一种帧动画172
6.5共享元素的动画173
6.5.1共享元素动画示例173
6.5.2关于Hero对象175
6.6Lottie动画175
6.6.1引入lottie_flutter插件175
6.6.2使用Lottie动画176
6.7Flare动画178
6.7.1引入Flare插件178
6.7.2使用Flare动画179
6.8手势交互180
6.8.1触摸事件180
6.8.2手势事件182
6.8.3下拉刷新与上拉加载183
第7章网络技术与数据解析185
7.1Flutter中的网络技术186
7.1.1使用互联网上的接口服务186
7.1.2使用HTTPClient进行网络请求187
7.1.3HttpClient相关方法188
7.1.4关于HttpClientRequest请求对象190
7.1.5关于HttpClientResponse回执对象191
7.1.6请求方法192
7.2JSON数据解析193
7.2.1手动解析JSON数据193
7.2.2将网络数据渲染到页面194
7.3数据持久化存储197
7.3.1插件的使用197
7.3.2使用shared_preferences插件199
7.3.3进行文件的读写201
7.4Flutter中的页面切换203
7.4.1使用Navigator进行页面跳转203
7.4.2正向页面传值205
7.4.3反向页面传值208
第8章用Flutter进行新闻客户端的开发210
8.1新闻客户端需求分析与开发前的准备210
8.1.1新闻客户端应用需要具备的功能210
8.1.2开发前的技术准备211
8.1.3应用项目搭建212
8.2新闻客户端主页的开发215
8.2.1搭建首页框架215
8.2.2“热门新闻”页面开发217
8.2.3开发下拉刷新与上拉加载更多功能220
8.3首页网络请求与数据填充223
8.3.1进行首页数据请求223
8.3.2定义数据模型与数据解析224
8.3.3填充首页数据226
8.4分类模块的开发229
8.4.1新闻分类主页开发229
8.4.2开发分类列表231
8.5新闻详情页开发236
8.5.1使用flutter_native_web插件进行网页渲染236
8.5.2添加收藏功能239
8.5.3实现收藏列表241
第9章用Flutter开发“棍子传奇”小游戏245
9.1游戏开始页面开发245
9.1.1在Flutter中引入自定义字体245
9.1.2游戏首页的搭建246
9.2游戏核心逻辑开发251
9.2.1“棍子”道具开发252
9.2.2英雄移动与胜负判定253
9.2.3游戏的循环机制257
9.2.4对游戏进行计分259
9.2.5游戏的重开259
9.3对游戏体验进行优化261
9.3.1为游戏添加音效261
9.3.2修改应用图标262
9.3.3更多可优化的方向264
第10章将Flutter用于iOS、Android项目和Web应用程序265
10.1将Flutter模块植入已有的iOS工程中265
10.1.1将Flutter模块集成进iOS原生项目265
10.1.2在iOS原生工程中打开Flutter页面268
10.2将Flutter模块植入已有的Android工程中270
10.2.1集成Flutter模块到Android原生项目270
10.2.2在Android原生页面中打开Flutter页面274
10.3使用Flutter开发Web应用程序275
10.3.1运行第一个FlutterWeb应用程序276
10.3.2将Flutter移动端工程修改为Web应用程序277
本书从入门到实践对谷歌移动UI框架Flutter应用进行了全面的介绍。本书从逻辑上可以分为四部分。第一部分(第1~3章)从开发环境的搭建入手,主要介绍Dart语言基础与高级应用,从基础语法到函数、泛型、异步编程、模块使用等高级内容。第二部分(第4、5章)主要介绍Flutter的核心组件,除了介绍开发Flutter应用推荐的图片、文本、图标、按钮等基础组件外,还详细介绍了表单组件、布局技术、交互组件、组件的绘制与修饰、可滚动组件等高级内容。第三部分(第6、7章)重点介绍了Flutter的动画与手势、网络技术及数据解析等内容。第四部分(第8~10章)主要演示了两个完整案例的开发过程,包括新闻客户端的开发和游戏开发,此外,还介绍了如何将Flutter应用于iOS、Android项目及Web应用程序,旨在帮助读者将Flutter快速应用于自己的实际项目。
为使读者高效地掌握本书内容,本等
张益珲 著
张益珲,TicTalk合伙人,博客笔名珲少,曾就职于唯品会,参与特卖项目《唯品会》、唯品会美妆项目《唯美》、唯品会返利项目《唯享客》,51CTO学院、CSDN学院签约讲师,麦子学院金牌讲师。撰写关于iOS、Swift、Objective-C、JavaScript语言、Android等相关技术博文300余篇。开源中国高手问答栏目受邀技术专家,博客访问量90W+。