有趣的Flutter 从0到1构建跨平台App

有趣的Flutter 从0到1构建跨平台App
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2022-01
版次: 1
ISBN: 9787115576507
定价: 99.80
装帧: 平装
页数: 352页
字数: 508千字
2人买过
  • 本书通过一个实际的Flutter App,为大家介绍Flutter相关的知识。书中首先介绍了Flutter的环境配置、各种IDE的工具配置以及怎样运行一个简单的Flutter 程序。然后介绍了Dart语言的一些基本概念。接着利用Flutter基本的容器组件、图片组件以及布局组件,教读者创建一个简单的待办事项应用的原型界面,并介绍Flutter UI的布局思路以及原理。后,介绍如何通过更加复杂的组件的不同组合,让待办事项应用识别复杂的手势以及在精妙的动画和页面之间完成路由跳转。 任宇杰 

    移动开发者,在利用 Flutter 构建跨端容器方面有比较深入的研究。

    王志宇

    移动开发者,具有多年跨端容器开发经验。

    魏国梁

    移动开发者,在 Flutter 底层以及利用Flutter 进行自绘引擎建设上有比较深入的研究。

    臧成威

    移动开发者,经历了从 iOS 5 至今的各个时代,对客户端研发模式、多语言范式有着较深的理解。他是 Flutter 的首批尝鲜者,对 Flutter 底层应用和自绘有着深入的研究。 第 一部分 Flutter 的基础知识

    第 1章 Flutter 概述 2

    1.1 Flutter 的横空出世 2

    1.1.1 Flutter 的前身——Sky 2

    1.1.2 Flutter 版本的历史 2

    1.2 Flutter 的技术亮点 4

    1.2.1 跨平台的精美设计 4

    1.2.2 跨平台的高生产力 6

    1.2.3 跨平台的高效表现 7

    1.2.4 可扩展的开放平台 7

    1.3 小结 8

    第 2章 Dart 语言概述 9

    2.1 基本数据类型 9

    2.1.1 数字 9

    2.1.2 字符串 10

    2.1.3 布尔 10

    2.1.4 列表 10

    2.1.5 集合 11

    2.1.6 映射 11

    2.2 函数 12

    2.2.1 声明 12

    2.2.2 参数 12

    2.2.3 闭包 13

    2.2.4 main 函数 14

    2.2.5 匿名函数 14

    2.3 流程控制 14

    2.3.1 利用 if 来判断 15

    2.3.2 利用 for/while 来循环 15

    2.3.3 利用 switch 来选择 16

    2.4 异常处理 16

    2.4.1 抛出异常 16

    2.4.2 捕获异常 17

    2.4.3 使用 finally 保证代码一定被执行 17

    2.5 类 18

    2.5.1 类的成员变量 18

    2.5.2 类的构造方法 19

    2.5.3 使用 getter 和 setter 20

    2.5.4 继承 20

    2.5.5 抽象机制与抽象类 21

    2.5.6 隐式接口 21

    2.5.7 继承之外的另一种选择:mixin 22

    2.6 泛型 23

    2.6.1 泛型与类型安全 23

    2.6.2 在定义中使用泛型 24

    2.6.3 在函数中使用泛型 24

    2.6.4 限定泛型的类型 25

    2.7 异步 25

    2.7.1 什么是异步 25

    2.7.2 Future 对象与 async/await 关键字 25

    2.7.3 使用 async for 处理 Stream 对象 26

    2.8 引入外部代码 27

    2.8.1 利用 import 关键字引入其他框架中的代码 27

    2.8.2 利用 as 关键字防止外部框架冲突 27

    2.9 小结 28

    第3章 环境搭建 29

    3.1 在 Windows 系统搭建环境 29

    3.1.1 下载开发工具 Android Studio 29

    3.1.2 搭建 Android 开发环境 31

    3.1.3 安装 Flutter SDK 34

    3.2 在 Mac 系统搭建环境 35

    3.2.1 下载开发工具 Android Studio 35

    3.2.2 搭建 Android 开发环境 36

    3.2.3 搭建 iOS 开发环境 37

    3.2.4 安装 Flutter SDK 39

    3.3 小结 39

    第4章 着手做第 一个 Flutter 程序 40

    4.1 第 一个 Flutter 项目 40

    4.2 Flutter 项目的文件结构 42

    4.3 小结 43

    第5章 调试工具 44

    5.1 如何使用断点 44

    5.1.1 普通断点与条件断点 44

    5.1.2 step in 和 step over 46

    5.2 HotReload 和 HotRestart 46

    5.2.1 使用 HotReload 加快 UI 开发 47

    5.2.2 理解 HotRestart 47

    5.3 使用 Android Studio 中的 DevTools 47

    5.3.1 使用 Flutter Inspector 查看 UI 结构 48

    5.3.2 使用 Flutter Outline 查看代码结构 50

    5.4 小结 50

    第6章 Widget 概述 51

    6.1 Widget 的概述 51

    6.1.1 文本展示:Text 组件 52

    6.1.2 文本输入:TextField 组件 57

    6.1.3 图片展示:Image 组件 58

    6.1.4 处理点击:Button 组件 60

    6.2 利用 Widget 实现布局 62

    6.2.1 布局容器:Container 62

    6.2.2 弹性盒子布局:Flex、Row、Column 和 Expanded 64

    6.2.3 流式布局:Wrap 和 Flow 72

    6.2.4 层叠布局:Stack 和 Position 76

    6.3 滚动布局 78

    6.3.1 单列内容滚动:ListView 78

    6.3.2 展示多列内容:GridView 83

    6.4 Material 与 Cupertino 89

    6.4.1 通用样式 Widget 一览 89

    6.4.2 Material 的独有样式 Widget 一览 91

    6.4.3 Cupertino 的独有样式 Widget 一览 93

    6.5 小结 94

    第二部分 动手做一个待办事项应用

    第7章 我们要做一个什么样的应用 96

    7.1 页面一览 96

    7.2 整体技术点一览 100

    第8章 第 一个页面——“登录”页面 102

    8.1 搭建 UI 框架 103

    8.1.1 创建登录页面文件 103

    8.1.2 搭建整体结构 104

    8.1.3 布局文本框组件 106

    8.1.4 继续完善细节 109

    8.2 填充组件 113

    8.2.1 填充图片组件 113

    8.2.2 填充邮箱和密码输入框 117

    8.2.3 登录按钮与注册提示按钮 117

    8.3 为页面增加本地逻辑 123

    8.3.1 处理键盘遮挡问题 123

    8.3.2 处理焦点 131

    8.3.3 为文本输入框增加校验逻辑 136

    8.4 小结 138

    第9章 跳转到第二个页面 139

    9.1 简单的页面跳转 139

    9.1.1 Navigator 初探:简单的路由跳转 140

    9.1.2 Navigator 再探:命名路由 143

    9.1.3 Navigator 终探:路由传参 144

    9.2 为页面跳转添加自定义的过渡效果 146

    9.2.1 实现渐变的页面过渡 146

    9.2.2 了解页面过渡的原理 147

    9.3 完善我们的“注册”页面 150

    9.3.1 处理 “注册”页面中的用户头像 151

    9.3.2 处理“登录”页面与“注册”页面之间的跳转逻辑 155

    9.4 小结 156

    第 10章 待办事项应用的灵魂——“列表”页面 157

    10.1 构建带有 BottomNavigationBar 的页面 157

    10.1.1 创建 BottomNavigationBar 158

    10.1.2 使用 StatefulWidget 完成页面转换 163

    10.1.3 用正确的方式构建 body 165

    10.2 使用 ListView 构建页面 169

    10.2.1 准备数据 169

    10.2.2 用 ListView 展示待办事项 173

    10.3 为 ListView 增加简单的事件交互 178

    10.3.1 为待办事项添加事件回调 178

    10.3.2 添加事件回调的具体逻辑 180

    10.3.3 完善列表的排序功能 183

    10.4 小结 186

    第 11章 添加、编辑、查看 TODO——待办事项编辑页 187

    11.1 构建简单的表单页面 187

    11.1.1 搭建页面框架 187

    11.1.2 封装带有标题的 LabelGroup 组件 189

    11.1.3 构建待办事项的标题和描述文本框 191

    11.2 构建较为复杂的日期选择器组件和时间选择器 195

    11.2.1 了解 DatePicker 和 TimePicker 196

    11.2.2 封装日期选择器和时间选择器 198

    11.2.3 构建日期选择器和时间选择器 200

    11.3 构建优先级展示框 204

    11.3.1 实现优先级展示框 204

    11.3.2 实现优先级弹出菜单 206

    11.4 完善表单细节内容 209

    11.4.1 完善表单中的细节内容 209

    11.4.2 将新创建的待办事项添加到列表中 210

    11.5 小结 213

    第 12章 让我们的应用更加完美 214

    12.1 了解 Flutter 中的动画 214

    12.1.1 Animation 类 214

    12.1.2 AnimationController 类 216

    12.1.3 CurvedAnimation 类 217

    12.1.4 Tween 类 218

    12.2 动手为我们的待办事项应用增加动画 219

    12.2.1 为“登录”页面增加动画 219

    12.2.2 使用 AnimatedWidget 封装动画 221

    12.2.3 为登录 Logo 增加 Hero 动画 224

    12.2.4 为“列表”页面增加动画 231

    12.3 利用 PlatformChannel 实现定位功能 234

    12.3.1 了解 PlatformChannel 的基本模式 234

    12.3.2 使用 PlatformChannel 写 Dart 端代码 235

    12.3.3 使用 PlatformChannel 编写 Android 端代码 239

    12.3.4 使用 PlatformChannel 编写 iOS 端的代码 240

    12.4 利用 PlatformView 实现地址详情功能 241

    12.4.1 了解 PlatformView 的基本模式 241

    12.4.2 在 Dart 端使用 PlatformView 242

    12.4.3 在 Android 端注册 PlatformView 245

    12.4.4 在 iOS 端注册 PlatformView 246

    12.5 使用封装好的 PlatformView 构建隐私策略页面 248

    12.5.1 引入 webview_flutter 249

    12.5.2 使用 webview_flutter 249

    12.6 小结 251

    第 13章 为我们的待办事项应用增加完整的处理逻辑 252

    13.1 完成多页面之间的数据共享 252

    13.1.1 利用公共父页面共享数据 252

    13.1.2 同步数据变化 254

    13.2 为“登录”页面和“注册”页面增加网络请求 257

    13.2.1 HTTP 的基础知识 258

    13.2.2 利用我们提供的服务器完成网络请求 259

    13.2.3 使用 http 模块发送网络请求 260

    13.3 将数据缓存在本地 266

    13.3.1 保存登录状态 266

    13.3.2 保存列表信息 269

    13.4 将本地数据上传到网络 274

    13.4.1 将数据上传到服务器 274

    13.4.2 从服务器获取数据 277

    13.5 小结 281

    第 14章 是时候发布啦 282

    14.1 发布应用前需要了解的一些基础知识 282

    14.2 发布 Android 应用 283

    14.2.1 在各个平台注册开发者账号 283

    14.2.2 发布前检查 283

    14.2.3 修改 Icon 284

    14.2.4 配置应用发布签名 286

    14.3 发布 iOS 应用 290

    14.3.1 加入苹果公司的开发者计划 290

    14.3.2 发布前检查 290

    14.3.3 更改 Icon 和启动图 291

    14.3.4 创建应用的归档 293

    14.3.5 将应用发布到 App Store 295

    14.4 小结 295

    第三部分 Flutter 的扩展功能

    第 15章 深入理解状态管理 298

    15.1 状态管理的理论知识 298

    15.1.1 什么是状态管理 298

    15.1.2 Flutter 中的状态管理 300

    15.2 状态管理的代码实现 301

    15.2.1 了解如何使用 InheritedWidget 301

    15.2.2 InheritedWidget 的原理 303

    15.2.3 使用 Provider 包完成状态管理 306

    15.3 小结 308

    第 16章 你不能错过的优秀工具 309

    16.1 代码静态分析 309

    16.1.1 了解 IDE 中的 Dart Analysis 309

    16.1.2 了解 Dart Analysis 的配置规则 310

    16.2 代码格式化 312

    16.3 Dart DevTools 314

    16.3.1 在 IDE 中打开 Dart DevTools 314

    16.3.2 使用 Timeline 查看应用的性能损耗 316

    16.3.3 使用 Memory 查看应用的内存占用情况 317

    16.4 小结 317

    第 17章 在 Flutter 中如何更好地与后台交互 318

    17.1 数据处理概览 318

    17.1.1 将 JSON 数据解析为 Map 数据 318

    17.1.2 手动创建模型类处理 JSON 数据 319

    17.2 使用工具生成代码 319

    17.2.1 使用 json_serializable 生成代码 319

    17.2.2 了解 json_serializable 的更多功能 321

    17.3 小结 324

    第 18章 编写测试代码 325

    18.1 准备工作 325

    18.1.1 添加依赖 325

    18.1.2 创建测试文件 326

    18.2 单元测试 326

    18.2.1 编写测试代码 326

    18.2.2 使用 Mockito 模拟测试环境 327

    18.2.3 运行单元测试 329

    18.3 Widget 测试 330

    18.3.1 编写测试代码 330

    18.3.2 运行 Widget 测试 332

    18.4 集成测试 332

    18.4.1 添加集成测试的依赖 333

    18.4.2 创建集成测试文件 333

    18.4.3 启动被集成应用 334

    18.4.4 编写集成测试代码 334

    18.4.5 记录性能数据 335

    18.4.6 运行集成测试 336

    18.5 小结 336

    第 19章 性能优化 337

    19.1 性能优化建议 337

    19.1.1 控制 build 方法耗时 337

    19.1.2 控制特效耗时 338

    19.1.3 长列表优化 338

    19.1.4 避免跳帧 338

    19.2 性能分析 339

    19.2.1 通过 profile 模式做性能分析 339

    19.2.2 发现问题 340

    19.2.3 GPU 耗时分析 342

    19.2.4 UI 耗时分析 343

    19.2.5 Widget 重建分析 343

    19.2.6 建立指标 344

    19.3 小结 344

    第 20章 Flutter 的历程与未来 345

    20.1 回顾 Flutter 的历程 345

    20.2 展望 Flutter 的未来 346

    20.3 Flutter for Web 347

    20.3.1 简述 347

    20.3.2 构建环境 348

    20.3.3 使用 Web 运行待办事项应用 348

    20.3.4 初窥 flutter-web 349

    20.4 Flutter For Desktop 351

    20.5 小结 352
  • 内容简介:
    本书通过一个实际的Flutter App,为大家介绍Flutter相关的知识。书中首先介绍了Flutter的环境配置、各种IDE的工具配置以及怎样运行一个简单的Flutter 程序。然后介绍了Dart语言的一些基本概念。接着利用Flutter基本的容器组件、图片组件以及布局组件,教读者创建一个简单的待办事项应用的原型界面,并介绍Flutter UI的布局思路以及原理。后,介绍如何通过更加复杂的组件的不同组合,让待办事项应用识别复杂的手势以及在精妙的动画和页面之间完成路由跳转。
  • 作者简介:
    任宇杰 

    移动开发者,在利用 Flutter 构建跨端容器方面有比较深入的研究。

    王志宇

    移动开发者,具有多年跨端容器开发经验。

    魏国梁

    移动开发者,在 Flutter 底层以及利用Flutter 进行自绘引擎建设上有比较深入的研究。

    臧成威

    移动开发者,经历了从 iOS 5 至今的各个时代,对客户端研发模式、多语言范式有着较深的理解。他是 Flutter 的首批尝鲜者,对 Flutter 底层应用和自绘有着深入的研究。
  • 目录:
    第 一部分 Flutter 的基础知识

    第 1章 Flutter 概述 2

    1.1 Flutter 的横空出世 2

    1.1.1 Flutter 的前身——Sky 2

    1.1.2 Flutter 版本的历史 2

    1.2 Flutter 的技术亮点 4

    1.2.1 跨平台的精美设计 4

    1.2.2 跨平台的高生产力 6

    1.2.3 跨平台的高效表现 7

    1.2.4 可扩展的开放平台 7

    1.3 小结 8

    第 2章 Dart 语言概述 9

    2.1 基本数据类型 9

    2.1.1 数字 9

    2.1.2 字符串 10

    2.1.3 布尔 10

    2.1.4 列表 10

    2.1.5 集合 11

    2.1.6 映射 11

    2.2 函数 12

    2.2.1 声明 12

    2.2.2 参数 12

    2.2.3 闭包 13

    2.2.4 main 函数 14

    2.2.5 匿名函数 14

    2.3 流程控制 14

    2.3.1 利用 if 来判断 15

    2.3.2 利用 for/while 来循环 15

    2.3.3 利用 switch 来选择 16

    2.4 异常处理 16

    2.4.1 抛出异常 16

    2.4.2 捕获异常 17

    2.4.3 使用 finally 保证代码一定被执行 17

    2.5 类 18

    2.5.1 类的成员变量 18

    2.5.2 类的构造方法 19

    2.5.3 使用 getter 和 setter 20

    2.5.4 继承 20

    2.5.5 抽象机制与抽象类 21

    2.5.6 隐式接口 21

    2.5.7 继承之外的另一种选择:mixin 22

    2.6 泛型 23

    2.6.1 泛型与类型安全 23

    2.6.2 在定义中使用泛型 24

    2.6.3 在函数中使用泛型 24

    2.6.4 限定泛型的类型 25

    2.7 异步 25

    2.7.1 什么是异步 25

    2.7.2 Future 对象与 async/await 关键字 25

    2.7.3 使用 async for 处理 Stream 对象 26

    2.8 引入外部代码 27

    2.8.1 利用 import 关键字引入其他框架中的代码 27

    2.8.2 利用 as 关键字防止外部框架冲突 27

    2.9 小结 28

    第3章 环境搭建 29

    3.1 在 Windows 系统搭建环境 29

    3.1.1 下载开发工具 Android Studio 29

    3.1.2 搭建 Android 开发环境 31

    3.1.3 安装 Flutter SDK 34

    3.2 在 Mac 系统搭建环境 35

    3.2.1 下载开发工具 Android Studio 35

    3.2.2 搭建 Android 开发环境 36

    3.2.3 搭建 iOS 开发环境 37

    3.2.4 安装 Flutter SDK 39

    3.3 小结 39

    第4章 着手做第 一个 Flutter 程序 40

    4.1 第 一个 Flutter 项目 40

    4.2 Flutter 项目的文件结构 42

    4.3 小结 43

    第5章 调试工具 44

    5.1 如何使用断点 44

    5.1.1 普通断点与条件断点 44

    5.1.2 step in 和 step over 46

    5.2 HotReload 和 HotRestart 46

    5.2.1 使用 HotReload 加快 UI 开发 47

    5.2.2 理解 HotRestart 47

    5.3 使用 Android Studio 中的 DevTools 47

    5.3.1 使用 Flutter Inspector 查看 UI 结构 48

    5.3.2 使用 Flutter Outline 查看代码结构 50

    5.4 小结 50

    第6章 Widget 概述 51

    6.1 Widget 的概述 51

    6.1.1 文本展示:Text 组件 52

    6.1.2 文本输入:TextField 组件 57

    6.1.3 图片展示:Image 组件 58

    6.1.4 处理点击:Button 组件 60

    6.2 利用 Widget 实现布局 62

    6.2.1 布局容器:Container 62

    6.2.2 弹性盒子布局:Flex、Row、Column 和 Expanded 64

    6.2.3 流式布局:Wrap 和 Flow 72

    6.2.4 层叠布局:Stack 和 Position 76

    6.3 滚动布局 78

    6.3.1 单列内容滚动:ListView 78

    6.3.2 展示多列内容:GridView 83

    6.4 Material 与 Cupertino 89

    6.4.1 通用样式 Widget 一览 89

    6.4.2 Material 的独有样式 Widget 一览 91

    6.4.3 Cupertino 的独有样式 Widget 一览 93

    6.5 小结 94

    第二部分 动手做一个待办事项应用

    第7章 我们要做一个什么样的应用 96

    7.1 页面一览 96

    7.2 整体技术点一览 100

    第8章 第 一个页面——“登录”页面 102

    8.1 搭建 UI 框架 103

    8.1.1 创建登录页面文件 103

    8.1.2 搭建整体结构 104

    8.1.3 布局文本框组件 106

    8.1.4 继续完善细节 109

    8.2 填充组件 113

    8.2.1 填充图片组件 113

    8.2.2 填充邮箱和密码输入框 117

    8.2.3 登录按钮与注册提示按钮 117

    8.3 为页面增加本地逻辑 123

    8.3.1 处理键盘遮挡问题 123

    8.3.2 处理焦点 131

    8.3.3 为文本输入框增加校验逻辑 136

    8.4 小结 138

    第9章 跳转到第二个页面 139

    9.1 简单的页面跳转 139

    9.1.1 Navigator 初探:简单的路由跳转 140

    9.1.2 Navigator 再探:命名路由 143

    9.1.3 Navigator 终探:路由传参 144

    9.2 为页面跳转添加自定义的过渡效果 146

    9.2.1 实现渐变的页面过渡 146

    9.2.2 了解页面过渡的原理 147

    9.3 完善我们的“注册”页面 150

    9.3.1 处理 “注册”页面中的用户头像 151

    9.3.2 处理“登录”页面与“注册”页面之间的跳转逻辑 155

    9.4 小结 156

    第 10章 待办事项应用的灵魂——“列表”页面 157

    10.1 构建带有 BottomNavigationBar 的页面 157

    10.1.1 创建 BottomNavigationBar 158

    10.1.2 使用 StatefulWidget 完成页面转换 163

    10.1.3 用正确的方式构建 body 165

    10.2 使用 ListView 构建页面 169

    10.2.1 准备数据 169

    10.2.2 用 ListView 展示待办事项 173

    10.3 为 ListView 增加简单的事件交互 178

    10.3.1 为待办事项添加事件回调 178

    10.3.2 添加事件回调的具体逻辑 180

    10.3.3 完善列表的排序功能 183

    10.4 小结 186

    第 11章 添加、编辑、查看 TODO——待办事项编辑页 187

    11.1 构建简单的表单页面 187

    11.1.1 搭建页面框架 187

    11.1.2 封装带有标题的 LabelGroup 组件 189

    11.1.3 构建待办事项的标题和描述文本框 191

    11.2 构建较为复杂的日期选择器组件和时间选择器 195

    11.2.1 了解 DatePicker 和 TimePicker 196

    11.2.2 封装日期选择器和时间选择器 198

    11.2.3 构建日期选择器和时间选择器 200

    11.3 构建优先级展示框 204

    11.3.1 实现优先级展示框 204

    11.3.2 实现优先级弹出菜单 206

    11.4 完善表单细节内容 209

    11.4.1 完善表单中的细节内容 209

    11.4.2 将新创建的待办事项添加到列表中 210

    11.5 小结 213

    第 12章 让我们的应用更加完美 214

    12.1 了解 Flutter 中的动画 214

    12.1.1 Animation 类 214

    12.1.2 AnimationController 类 216

    12.1.3 CurvedAnimation 类 217

    12.1.4 Tween 类 218

    12.2 动手为我们的待办事项应用增加动画 219

    12.2.1 为“登录”页面增加动画 219

    12.2.2 使用 AnimatedWidget 封装动画 221

    12.2.3 为登录 Logo 增加 Hero 动画 224

    12.2.4 为“列表”页面增加动画 231

    12.3 利用 PlatformChannel 实现定位功能 234

    12.3.1 了解 PlatformChannel 的基本模式 234

    12.3.2 使用 PlatformChannel 写 Dart 端代码 235

    12.3.3 使用 PlatformChannel 编写 Android 端代码 239

    12.3.4 使用 PlatformChannel 编写 iOS 端的代码 240

    12.4 利用 PlatformView 实现地址详情功能 241

    12.4.1 了解 PlatformView 的基本模式 241

    12.4.2 在 Dart 端使用 PlatformView 242

    12.4.3 在 Android 端注册 PlatformView 245

    12.4.4 在 iOS 端注册 PlatformView 246

    12.5 使用封装好的 PlatformView 构建隐私策略页面 248

    12.5.1 引入 webview_flutter 249

    12.5.2 使用 webview_flutter 249

    12.6 小结 251

    第 13章 为我们的待办事项应用增加完整的处理逻辑 252

    13.1 完成多页面之间的数据共享 252

    13.1.1 利用公共父页面共享数据 252

    13.1.2 同步数据变化 254

    13.2 为“登录”页面和“注册”页面增加网络请求 257

    13.2.1 HTTP 的基础知识 258

    13.2.2 利用我们提供的服务器完成网络请求 259

    13.2.3 使用 http 模块发送网络请求 260

    13.3 将数据缓存在本地 266

    13.3.1 保存登录状态 266

    13.3.2 保存列表信息 269

    13.4 将本地数据上传到网络 274

    13.4.1 将数据上传到服务器 274

    13.4.2 从服务器获取数据 277

    13.5 小结 281

    第 14章 是时候发布啦 282

    14.1 发布应用前需要了解的一些基础知识 282

    14.2 发布 Android 应用 283

    14.2.1 在各个平台注册开发者账号 283

    14.2.2 发布前检查 283

    14.2.3 修改 Icon 284

    14.2.4 配置应用发布签名 286

    14.3 发布 iOS 应用 290

    14.3.1 加入苹果公司的开发者计划 290

    14.3.2 发布前检查 290

    14.3.3 更改 Icon 和启动图 291

    14.3.4 创建应用的归档 293

    14.3.5 将应用发布到 App Store 295

    14.4 小结 295

    第三部分 Flutter 的扩展功能

    第 15章 深入理解状态管理 298

    15.1 状态管理的理论知识 298

    15.1.1 什么是状态管理 298

    15.1.2 Flutter 中的状态管理 300

    15.2 状态管理的代码实现 301

    15.2.1 了解如何使用 InheritedWidget 301

    15.2.2 InheritedWidget 的原理 303

    15.2.3 使用 Provider 包完成状态管理 306

    15.3 小结 308

    第 16章 你不能错过的优秀工具 309

    16.1 代码静态分析 309

    16.1.1 了解 IDE 中的 Dart Analysis 309

    16.1.2 了解 Dart Analysis 的配置规则 310

    16.2 代码格式化 312

    16.3 Dart DevTools 314

    16.3.1 在 IDE 中打开 Dart DevTools 314

    16.3.2 使用 Timeline 查看应用的性能损耗 316

    16.3.3 使用 Memory 查看应用的内存占用情况 317

    16.4 小结 317

    第 17章 在 Flutter 中如何更好地与后台交互 318

    17.1 数据处理概览 318

    17.1.1 将 JSON 数据解析为 Map 数据 318

    17.1.2 手动创建模型类处理 JSON 数据 319

    17.2 使用工具生成代码 319

    17.2.1 使用 json_serializable 生成代码 319

    17.2.2 了解 json_serializable 的更多功能 321

    17.3 小结 324

    第 18章 编写测试代码 325

    18.1 准备工作 325

    18.1.1 添加依赖 325

    18.1.2 创建测试文件 326

    18.2 单元测试 326

    18.2.1 编写测试代码 326

    18.2.2 使用 Mockito 模拟测试环境 327

    18.2.3 运行单元测试 329

    18.3 Widget 测试 330

    18.3.1 编写测试代码 330

    18.3.2 运行 Widget 测试 332

    18.4 集成测试 332

    18.4.1 添加集成测试的依赖 333

    18.4.2 创建集成测试文件 333

    18.4.3 启动被集成应用 334

    18.4.4 编写集成测试代码 334

    18.4.5 记录性能数据 335

    18.4.6 运行集成测试 336

    18.5 小结 336

    第 19章 性能优化 337

    19.1 性能优化建议 337

    19.1.1 控制 build 方法耗时 337

    19.1.2 控制特效耗时 338

    19.1.3 长列表优化 338

    19.1.4 避免跳帧 338

    19.2 性能分析 339

    19.2.1 通过 profile 模式做性能分析 339

    19.2.2 发现问题 340

    19.2.3 GPU 耗时分析 342

    19.2.4 UI 耗时分析 343

    19.2.5 Widget 重建分析 343

    19.2.6 建立指标 344

    19.3 小结 344

    第 20章 Flutter 的历程与未来 345

    20.1 回顾 Flutter 的历程 345

    20.2 展望 Flutter 的未来 346

    20.3 Flutter for Web 347

    20.3.1 简述 347

    20.3.2 构建环境 348

    20.3.3 使用 Web 运行待办事项应用 348

    20.3.4 初窥 flutter-web 349

    20.4 Flutter For Desktop 351

    20.5 小结 352
查看详情
12
您可能感兴趣 / 更多
有趣的Flutter 从0到1构建跨平台App
DCL-32型连续走行捣固车
任宇杰 编