第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
· · · · · · (
收起)