第1章 开启Flutter之旅 1
1.1 Flutter的特点与核心概念 1
1.1.1 一切皆为组件 2
1.1.2 组件嵌套 2
1.1.3 构建 3
1.1.4 处理用户交互 3
1.1.5 状态 4
1.1.6 分层的框架 5
1.2 搭建开发环境 6
1.2.1 Windows环境搭建 6
1.2.2 MacOS环境搭建 12
1.3 写第一个Flutter程序 16
第2章 Flutter基础知识 22
2.1 入口程序 22
2.2 Material Design设计风格 23
2.3 Flutter主题 23
2.3.1 创建应用主题 23
2.3.2 局部主题 25
2.3.3 使用主题 26
2.4 使用包资源 27
2.5 状态管理 31
2.5.1 有状态及无状态组件 31
2.5.2 Provider的使用 33
2.6 HTTP请求 36
2.6.1 HTTP请求方式 37
2.6.2 HttpClient请求方式 38
2.6.3 Dio请求方式 39
第3章 Dart语言简述 47
3.1 Dart的重要概念与常用开发库 47
3.2 变量与基本数据类型 50
3.3 函数 52
3.4 运算符 54
3.5 流程控制语句 58
3.6 异常处理 61
3.7 面向对象 62
3.7.1 实例化成员变量 62
3.7.2 构造函数 63
3.7.3 读取和写入对象 64
3.7.4 重载操作 65
3.7.5 继承类 66
3.7.6 抽象类 67
3.7.7 枚举类型 68
3.7.8 Mixins 69
3.8 泛型 69
3.9 库的使用 70
3.10 异步支持 71
3.11 元数据 71
3.12 注释 73
第4章 常用组件 75
4.1 容器组件 75
4.2 图片组件 77
4.3 文本组件 79
4.4 图标及按钮组件 81
4.4.1 图标组件 81
4.4.2 图标按钮组件 82
4.4.3 凸起按钮组件 83
4.5 列表组件 84
4.5.1 基础列表组件 85
4.5.2 水平列表组件 86
4.5.3 长列表组件 88
4.5.4 网格列表组件 89
4.6 表单组件 90
第5章 Material Design风格组件 94
5.1 App结构和导航组件 95
5.1.1 MaterialApp(应用组件) 95
5.1.2 Scaffold(脚手架组件) 99
5.1.3 AppBar(应用按钮组件) 101
5.1.4 BottomNavigationBar(底部导航条组件) 103
5.1.5 TabBar(水平选项卡及视图组件) 104
5.1.6 Drawer(抽屉组件) 110
5.2 按钮和提示组件 112
5.2.1 FloatingActionButton(悬停按钮组件) 112
5.2.2 FlatButton(扁平按钮组件) 114
5.2.3 PopupMenuButton(弹出菜单组件) 115
5.2.4 SimpleDialog(简单对话框组件) 117
5.2.5 AlertDialog(提示对话框组件) 118
5.2.6 SnackBar(轻量提示组件) 120
5.3 其他组件 121
5.3.1 TextField(文本框组件) 121
5.3.2 Card(卡片组件) 123
第6章 Cupertino风格组件 126
6.1 CupertinoActivityIndicator(加载指示器组件) 126
6.2 CupertinoAlertDialog(对话框组件) 127
6.3 CupertinoButton(按钮组件) 128
6.4 Cupertino(导航组件集) 129
第7章 页面布局 135
7.1 基础布局处理 136
7.1.1 Container(容器布局) 136
7.1.2 Center(居中布局) 139
7.1.3 Padding(填充布局) 140
7.1.4 Align(对齐布局) 142
7.1.5 Row(水平布局) 144
7.1.6 Column(垂直布局) 145
7.1.7 FittedBox(缩放布局) 147
7.1.8 Stack/Alignment 150
7.1.9 Stack/Positioned 152
7.1.10 IndexedStack 154
7.1.11 OverflowBox(溢出父容器显示) 155
7.2 宽高尺寸处理 157
7.2.1 SizedBox(设置具体尺寸) 157
7.2.2 ConstrainedBox(限定最大最小宽高布局) 158
7.2.3 LimitedBox(限定最大宽高布局) 159
7.2.4 AspectRatio(调整宽高比) 161
7.2.5 FractionallySizedBox(百分比布局) 162
7.3 列表及表格布局 163
7.3.1 ListView 163
7.3.2 GridView 166
7.3.3 Table 167
7.4 其他布局处理 169
7.4.1 Transform(矩阵转换) 169
7.4.2 Baseline(基准线布局) 171
7.4.3 Offstage(控制是否显示组件) 172
7.4.4 Wrap(按宽高自动换行布局) 174
7.5 布局综合示例 176
7.5.1 布局分析 176
7.5.2 准备素材 177
7.5.3 编写代码 178
第8章 手势 184
8.1 用GestureDetector进行手势检测 184
8.2 用Dismissible实现滑动删除 186
第9章 资源和图片 189
9.1 添加资源和图片 189
9.1.1 指定asset 189
9.1.2 加载asset 190
9.1.3 平台asset 192
9.2 自定义字体 194
第10章 组件装饰和视觉效果 196
10.1 Opacity(透明度处理) 196
10.2 DecoratedBox(装饰盒子) 197
10.3 RotatedBox(旋转盒子) 204
10.4 Clip(剪裁处理) 205
10.5 案例—自定义画板 209
第11章 路由和持久化 227
11.1 路由的基本应用 227
11.2 Fluro企业级路由 235
11.3 Key-Value存储简介 240
11.3.1 shared_preferences的应用 241
11.3.2 shared_preferences的实现原理 244
11.4 文件存储 246
11.5 Sqflite的应用 249
11.5.1 常用操作方法 249
11.5.2 客户表操作示例 251
第12章 动画 256
12.1 动画的基本概念 256
12.2 Flutter的动画相关类 257
12.2.1 Animation简介 258
12.2.2 AnimationController(动画管理类) 258
12.2.3 CurvedAnimation(非线性动画类) 259
12.2.4 Tween(补间值生成类) 260
12.2.5 Listeners和StatusListeners(动画监听类) 261
12.2.6 动画控制流程 262
12.3 动画示例 262
12.3.1 字体放大动画 262
12.3.2 缓动动画 266
12.3.3 遮罩动画 269
12.3.4 数字变化动画 272
12.3.5 图表动画 274
12.4 动画组件 277
12.4.1 用AnimatedOpacity实现渐变效果 277
12.4.2 用Hero实现页面切换动画 279
第13章 Flutter插件开发 282
13.1 获取系统版本插件 282
13.1.1 新建插件 282
13.1.2 运行插件 285
13.1.3 示例代码分析 286
13.2 电池电量插件 293
13.2.1 新建插件 293
13.2.2 插件上层处理 293
13.2.3 Android原生层处理 295
13.2.4 iOS原生层处理 300
13.2.5 测试插件 304
13.3 Channel详解 308
13.3.1 通道名称 309
13.3.2 通信工具BinaryMessager 309
13.3.3 消息编解码器Codec 309
13.3.4 消息处理器Handler 310
13.4 PlatformView显示原生视图 311
13.4.1 新建插件 311
13.4.2 插件上层处理 311
13.4.3 Android原生层处理 314
13.4.4 iOS原生层处理 317
13.4.5 测试插件 321
第14章 开发工具及使用技巧 324
14.1 IDE集成开发环境 324
14.1.1 Android Studio / IntelliJ 324
14.1.2 Visual Studio Code 330
14.2 Flutter SDK 337
14.3 使用热重载 338
14.4 格式化代码 339
14.5 Flutter组件检查器 340
第15章 测试与发布应用 343
15.1 测试应用 343
15.1.1 简介 343
15.1.2 单元测试 344
15.1.3 Widget测试 345
15.1.4 集成测试 346
15.2 发布Android版App 348
15.2.1 检查App Manifest 348
15.2.2 查看构建配置 349
15.2.3 添加启动图标 350
15.2.4 App签名 350
15.2.5 构建发布版APK并安装在设备上 353
15.3 发布iOS版App 353
15.3.1 准备工作 353
15.3.2 在iTunes Connect上注册应用程序 353
15.3.3 注册一个Bundle ID 354
15.3.4 在iTunes Connect上创建应用程序记录 355
15.3.5 查看Xcode项目设置 355
15.3.6 添加应用程序图标 356
15.3.7 准备发布版本 358
15.3.8 将应用发布到App Store 360
第16章 综合案例 362
16.1 即时通信App界面实现 362
16.1.1 项目介绍 362
16.1.2 项目搭建 363
16.1.3 入口程序 366
16.1.4 加载页面 367
16.1.5 应用页面 368
16.1.6 搜索页面 375
16.1.7 聊天页面 379
16.1.8 好友页面 383
16.1.9 “我的”页面 390
16.2 企业站App实现 394
16.2.1 项目介绍 394
16.2.2 项目搭建 396
16.2.3 入口程序 399
16.2.4 加载页面 401
16.2.5 工具及配置文件处理 402
16.2.6 Fluro路由处理 404
16.2.7 Dio请求方法封装 405
16.2.8 索引页面 406
16.2.9 首页 410
16.2.10 首页轮播图 411
16.2.11 首页最新产品列表 412
16.2.12 产品页面 419
16.2.13 产品详情页面 423
16.2.14 “联系我们”页面 428
· · · · · · (
收起)