Flutter从0基础到App上线
作者:萧文翰 编著
出版时间: 2020年版
内容简介
在移动互联网高速发展的今天,跨平台的移动开发框架层出不穷。为了帮助广大开发者快速掌握跨平台的移动开发并降低互联网公司的产品研发成本,《Flutter从0基础到App上线》从开发环境的搭建、Dart编程语言基础和高级应用、Flutter框架中的组件(包括通用组件、Android风格和iOS风格的组件)、Flutter App中的数据持久化方案、多语言国际化、使用设备传感器、和原生代码通信、App的测试和Dart调试技巧及App上线流程等方面,全面阐述了Flutter框架的开发技巧。在多个章节后面都附有练习题,你可以通过练习来巩固相应知识。 此外,《Flutter从0基础到App上线》还具有很强的工具属性。它既可以作为入门书籍来使用,也可以用于在必要时随时查阅某一个知识点;既适合零基础的学员,也适合有一定开发基础的朋友。
目录
第1章 Flutter简介 1
1.1 移动App开发的前世今生 2
1.2 为什么选择Flutter 3
1.2.1 Flutter的优势 3
1.2.2 Flutter强大的跨平台特性 4
1.2.3 Flutter的明天 5
1.3 Flutter的体系结构 6
第2章 初次遇见Flutter 8
2.1 开发环境搭建 8
2.1.1 下载JDK 9
2.1.2 安装JDK 9
2.1.3 安装和配置Xcode 10
2.1.4 下载Flutter SDK 11
2.1.5 配置Flutter SDK 11
2.1.6 配置必备组件 12
2.2 集成开发环境的选择 12
2.2.1 配置Android Studio 13
2.2.2 配置Visual Studio Code 17
2.3 第一个程序——Hello World 18
2.3.1 运行自诊断脚本 18
2.3.2 启动Android模拟器 19
2.3.3 将项目运行在模拟器上 21
2.3.4 探索Flutter热修复特性 22
2.4 升级Flutter 23
2.5 练习 24
第3章 Dart语言基础 25
3.1 Dart语言简介 25
3.1.1 Dart发展史 25
3.1.2 Dart重要概念 26
3.1.3 Hello Dart 27
3.2 变量与常量 29
3.2.1 变量 29
3.2.2 常量 30
3.3 基本数据类型 31
3.3.1 数值型 31
3.3.2 字符串 32
3.3.3 布尔 34
3.3.4 集合 34
3.3.5 UTF-32编码表示法 39
3.4 方法 39
3.4.1 定义一个方法 39
3.4.2 参数 40
3.4.3 主方法 42
3.4.4 作用域 42
3.4.5 闭包 42
3.4.6 检查两个方法是否相等 43
3.4.7 返回值 43
3.5 运算符 43
3.5.1 算术运算符 45
3.5.2 关系运算符 46
3.5.3 类型判定运算符 47
3.5.4 赋值运算符 48
3.5.5 逻辑运算符 49
3.5.6 位操作运算符 50
3.5.7 条件表达式 51
3.5.8 级联运算符 52
3.5.9 其他运算符 52
3.6 流程控制 52
3.6.1 if-else条件语句 53
3.6.2 for循环 53
3.6.3 while循环和do-while循环 54
3.6.4 break语句和continue语句 55
3.6.5 switch-case条件语句 56
3.6.6 断言 58
3.7 异常 59
3.7.1 Throw 59
3.7.2 Catch 60
3.7.3 Finally 62
3.8 练习 62
第4章 Dart语言的面向对象应用 63
4.1 类 63
4.1.1 类的实例化 63
4.1.2 实例变量 65
4.1.3 getter()方法和setter()方法 66
4.1.4 静态变量 67
4.1.5 构造方法 67
4.1.6 实例方法 73
4.1.7 静态方法 73
4.1.8 扩展类 74
4.1.9 可复写的运算符 77
4.1.10 抽象方法 78
4.1.11 抽象类 80
4.1.12 接口 80
4.1.13 利用Mixin特性扩展类 82
4.1.14 枚举 83
4.2 泛型 84
4.2.1 泛型的作用 84
4.2.2 泛型的使用示例 85
4.2.3 限制泛型类型范围 85
4.2.4 使用泛型方法 86
4.3 练习 87
第5章 Dart语言的高级使用技巧 88
5.1 库 88
5.1.1 使用库 89
5.1.2 创建库 91
5.2 异步处理 91
5.2.1 声明异步的方法 92
5.2.2 使用await表达式 93
5.2.3 异步在循环中的使用 93
5.3 可调用的类 93
5.4 Dart的isolates运行模式 94
5.5 方法类型定义 94
5.6 元数据 96
5.7 注释 96
5.7.1 单行注释 96
5.7.2 多行注释 97
5.7.3 文档注释 97
5.8 编写更有效的Dart代码 97
5.9 练习 98
第6章 绘制赏心悦目的界面 99
6.1 第一个Flutter项目 99
6.1.1 Flutter项目的结构 100
6.1.2 日志工具的使用 100
6.2 Flutter基础 101
6.2.1 Flutter框架结构 101
6.2.2 App启动入口 101
6.2.3 一切皆为组件 102
6.2.4 组件的组合运用 102
6.2.5 何为状态 103
6.2.6 自定义组件 114
6.3 基本组件 120
6.3.1 基本组件简介 120
6.3.2 文本组件 120
6.3.3 按钮组件 124
6.3.4 图片组件 126
6.3.5 开关和复选框组件 129
6.3.6 单选框组件 130
6.3.7 输入框组件和表单组件 131
6.4 多元素布局组件 147
6.4.1 布局类组件 147
6.4.2 线性布局 149
6.4.3 堆叠布局 152
6.4.4 弹性布局 155
6.4.5 流式布局 156
6.5 容器类组件 159
6.5.1 内边距 159
6.5.2 约束 160
6.5.3 装饰 161
6.5.4 变换 164
6.5.5 容器 165
6.6 滚动列表组件 166
6.6.1 滚动列表组件简介 166
6.6.2 单个子组件的滚动视图 166
6.6.3 线性列表组件 168
6.6.4 网格列表组件 174
6.6.5 自定义滚动组件 177
6.6.6 滚动的控制及实时状态监听 178
6.7 其他重要的组件 181
6.7.1 拦截返回键 181
6.7.2 在组件树之间共享数据 183
6.7.3 触摸事件监听 186
6.7.4 手势识别 188
6.7.5 通知组件 190
6.7.6 全局事件广播 193
6.8 App资源管理 196
6.8.1 放置资源 196
6.8.2 使用资源 197
6.8.3 跨平台使用共享资源 197
6.9 动画 200
6.9.1 基本概念 200
6.9.2 补间动画 200
6.9.3 物理模拟动画 202
6.9.4 非线性动画 202
6.9.5 共享元素过渡动画 203
6.9.6 多个动画的叠加 206
6.10 字体 210
6.10.1 放置字体 210
6.10.2 使用字体 211
6.11 主题 211
6.11.1 使用主题 211
6.11.2 全局主题 212
6.11.3 局部主题 212
6.11.4 扩展现有主题 213
6.12 练习 213
第7章 数据的传递和持久化保存 214
7.1 页面跳转 214
7.1.1 页面的跳转和返回 214
7.1.2 数据的传递和返回 216
7.2 本地文件 221
7.2.1 本地文件的路径 222
7.2.2 本地文件的读写 222
7.3 网络请求 225
7.3.1 发起HTTP请求 226
7.3.2 Json解析 228
7.4 保存用户设置 239
7.5 数据库操作 240
7.6 练习 248
第8章 使用设备硬件实现更多功能 249
8.1 GPS定位技术 249
8.2 相机 252
8.3 蓝牙 254
8.4 音视频 259
8.4.1 音频录放 259
8.4.2 视频录放 262
8.5 距离传感器 263
8.6 NFC近场通信 265
8.7 练习 269
第9章 使App更加通用——国际化的实现 270
9.1 识别当前系统的首选语言 270
9.2 使App支持多语言环境 272
9.3 练习 276
第10章 与原生代码交互 277
10.1 平台通道 277
10.1.1 平台通道的概念 278
10.1.2 平台通道支持的数据类型和解码器 278
10.2 与Android原生代码交互 279
10.2.1 使用Java语言实现 283
10.2.2 使用Kotlin语言实现 285
10.3 与iOS原生代码交互 287
10.3.1 使用Objective-C语言实现 287
10.3.2 使用Swift语言实现 289
10.4 练习 290
第11章 Material Design(Android)风格设计 291
11.1 脚手架组件 291
11.2 顶部程序栏组件 294
11.3 水平选项卡与内容视图组件 296
11.4 底部导航栏组件 298
11.5 抽屉组件 300
11.6 浮动悬停按钮组件 302
11.7 扁平按钮组件 303
11.8 图标按钮组件 303
11.9 浮动动作按钮组件 305
11.10 弹出式菜单组件 305
11.11 滑块组件 307
11.12 日期时间选择组件 309
11.13 简单对话框 312
11.14 提示框 314
11.15 可展开的列表组件 315
11.16 底部提示组件 317
11.17 标签组件 318
11.18 帮助提示组件 320
11.19 卡片组件 320
11.20 水平和圆形进度组件 322
11.21 练习 323
……