《Flutter之旅》是2020年機械工業出版社出版的圖書,作者是張德立。
基本介紹
- 中文名:Flutter之旅
- 作者:張德立
- 出版時間:2020年
- 出版社:機械工業出版社
- ISBN:9787111662341
內容簡介,圖書目錄,
內容簡介
本書從一個Android原生開發者的角度去認識和了解Flutter,本書作者以幽默生動的故事描寫手法,記錄在Flutter學習中所遇見的景色,並呈現給讀者,主要內容包括:Flutter的安裝與基本概念,Dart語法、組件與容器、布局基礎、動畫與手勢、自定義組件、資源與路由、Flutter框架、Flutter與Redux、Flutter與iOS、外掛程式開發、綜合案例等。
● 對調試的認識和對Flutter初始項目的分析。
● Flutter整體認知和Dart常用語法速覽。
● 常用組件的用法介紹和如何自定義繪製組件。
● Flutter動畫、手勢的使用和路由跳轉。
● 從框架層源碼角度進一步認識Flutter渲染機制。
● 異步和流的詳解與檔案操作方法。
● 共享數據的處理方式和狀態管理。
圖書目錄
Day 1 初識Flutter與技能儲備1
1.1 Flutter初始項目分析1
1.1.1 Flutter初始項目結構1
1.1.2 入口檔案及MyApp分析2
1.1.3 MyHomePage與_MyHomePageState分析5
1.1.4 pubspec.yaml檔案6
1.2 基本Debug技能7
1.2.1 斷點和放行7
1.2.2 變數查詢和喚醒程式8
1.2.3 Debug要點補充9
1.3 輔助技能儲備10
1.3.1 三個實用工具10
1.3.2 片段代碼和快速重構12
1.3.3 三個基礎知識QA14
1.4 Widget知識儲備15
1.4.1 命令式UI編程與聲明式UI編程16
1.4.2 認識Widget體系16
1.4.3 Widget源碼初識18
1.4.4 組件的提取抽離21
Day 2 Dart實用語法速覽23
2.1 基礎語法23
2.1.1 常用的數據類型23
2.1.2 變數與常量26
2.1.3 函式的使用27
2.2 通過Size類看Dart中的面向對象30
2.3 其他語法點34
2.3.1 常用符號與關鍵字34
2.3.2 庫的使用和可見性35
2.3.3 泛型36
2.3.4 異步37
2.3.5 異常處理38
Day 3 界面風格和簡單繪製39
3.1 Material風格40
3.1.1 Scaffold和BottomNavigationBar40
3.1.2 TabBar和TabBarView41
3.1.3 標題欄按鈕和選單組件42
3.1.4 彈出對話框43
3.1.5 界面的左右滑頁43
3.1.6 showSnackBar和showBottomSheet44
3.2 Cupertino風格45
3.2.1 CupertinoPageScaffold和CupertinoTabScaffold46
3.2.2 CupertinoNavigationBar和CupertinoTabBar46
3.2.3 CupertinoTabView47
3.2.4 CupertinoAlertDialog和showCupertinoModalPopup47
3.3 認識CustomPainter繪製49
3.3.1 繪製格線49
3.3.2 Canvas初級繪製50
3.3.3 移植繪製n角星52
3.3.4 移植繪製粒子數字54
Day 4 基礎Widget56
4.1 Text組件56
4.1.1 Text的基本使用56
4.1.2 Text的陰影和裝飾線57
4.1.3 文字方向、對齊和溢出處理58
4.1.4 RichText的使用59
4.1.5 RichText與Text.rich60
4.2 Image組件60
4.2.1 Image資源的載入61
4.2.2 圖片的適應模式62
4.2.3 圖片顏色及混合模式63
4.2.4 圖片對齊模式及重複模式63
4.2.5 用centerSlice實現圖片局部放大64
4.3 Container的使用65
4.3.1 Container的基本使用65
4.3.2 Padding的使用66
4.3.3 Container的邊線裝飾66
4.3.4 Container的約束和變換67
4.3.5 Container與布局的淵源68
4.4 常用多子布局71
4.4.1 圖解Flex布局71
4.4.2 Stack布局75
4.4.3 Wrap包裹布局76
Day 5 列表與滑動79
5.1 組件封裝79
5.1.1 靜態布局79
5.1.2 頭像組件封裝80
5.1.3 條目組件封裝81
5.1.4 封裝聊天信息組件82
5.2 ListView的使用84
5.2.1 基本用法85
5.2.2 ListView的構造及分隔線85
5.2.3 ListView的不同樣式87
5.2.4 ListView的上拉與下拉87
5.3 常用滑動組件90
5.3.1 單子滑動組件SingleChildScrollView90
5.3.2 滑動控制器ScrollController92
5.3.3 滑頁組件PageView94
5.3.4 格線組件GridView97
5.4 Sliver家族99
5.4.1 SliverAppBar的使用100
5.4.2 Sliver中的列表布局、格線布局及普通布局101
5.4.3 吸頂效果SliverPersistentHeader103
Day 6 動畫與路由106
6.1 動畫閒談106
6.1.1 FPS106
6.1.2 動畫控制器AnimationController107
6.1.3 運動盒108
6.2 Flutter動畫詳解111
6.2.1 Animation和Animatable111
6.2.2 動畫狀態監聽和Animation方法116
6.2.3 動畫簡化和封裝117
6.2.4 封裝強化版FlutterContainer118
6.3 路由與導航122
6.3.1 打開路由122
6.3.2 路由的傳參125
6.3.3 路由的跳轉動畫128
6.3.4 Hero跳轉動畫130
Day 7 手勢組件與自定義組件132
7.1 手勢組件與使用132
7.1.1 InkWell水波紋的使用132
7.1.2 GestureDetector的使用133
7.1.3 手寫板的實現135
7.2 根據現有組件實現自定義組件137
7.2.1 切換Widget組件137
7.2.2 顏色選擇圓鈕組件ColorChooser139
7.2.3 函式運動組件MathRunner142
7.3 繪製自定義組件143
7.3.1 能力分析組件AbilityWidget143
7.3.2 圖片放大組件BiggerView147
7.3.3 波紋線RhythmView150
Day 8 Flutter渲染機制153
8.1 認識三棵樹153
8.1.1 漫談Widget、Element、RenderObject154
8.1.2 認識RenderObject和Element156
8.1.3 三棵樹結構158
8.1.4 三個根結點的初始化159
8.2 Element的裝配162
8.2.1 RenderObjectToWidget-Element的裝配162
8.2.2 StatelessElement和StatefulElement的裝配164
8.2.3 多子元素掛載166
8.3 State類全解析168
8.3.1 State的生命周期回調169
8.3.2 State切換和跳轉時生命周期測試173
8.3.3 setState做了什麼175
Day 9 異步與資源 178
9.1 認識異步與流 178
9.1.1 Dart中的異步任務 178
9.1.2 Dart中的流 181
9.2 檔案中的異步與流 184
9.2.1 檔案的簡單操作 184
9.2.2 檔案讀寫的異步操作 186
9.2.3 檔案讀寫的流操作 188
9.2.4 使用檔案打造圖示轉換工具 190
9.3 網路請求與json解析 193
9.3.1 使用GitHub開放API 測試網路訪問 193
9.3.2 json解析 197
9.3.3 異步方法的基本使用 199
Day 10 數據共享與狀態管理 202
10.1 數據共享和參數傳遞 202
10.1.1 數據共享的傳統實現方式 202
10.1.2 用InheritedWidget實現數據共享 204
10.2 狀態管理的原始處理過程 207
10.2.1 數據準備與界面說明 207
10.2.2 FutureBuilder與StreamBuilder的使用 209
10.3 使用外掛程式進行狀態管理 213
10.3.1 BLoC對數據狀態的管理 213
10.3.2 Provider對數據狀態的管理 219
10.3.3 Redux對數據狀態的管理 225
Day 11 數據持久化和讀取 230
11.1 Flutter中的資料庫存儲 230
11.1.1 資料庫的初始化 231
11.1.2 使用sqflite進行增刪改查 234
11.1.3 資料庫數據與UI界面的對接 237
11.2 表單與數據持久化 240
11.2.1 表單註冊頁 240
11.2.2 持久化json數據和讀取 241
11.2.3 持久化XML數據和讀取 243
Day 12 外掛程式及混合開發 245
12.1 Flutter和平台間的通信方式 246
12.1.1 Flutter/Dart端 246
12.1.2 Android/Kotlin端 247
12.1.3 用toast連線兩個世界 248
12.1.4 Flutter向平台傳參 250
12.1.5 外掛程式的使用和上傳 253
12.2 Flutter常見外掛程式的使用 255
12.2.1 路徑外掛程式和許可權外掛程式 255
12.2.2 音頻播放外掛程式audioplayer 257
12.2.3 視頻播放外掛程式video_player 259
12.2.4 圖片拾取器image_picker 261
12.2.5 通過webview_flutter使用已有Web頁面 262
12.3 Flutter的混合開發 264
12.3.1 Flutter和Android混合開發 264
12.3.2 Flutter和iOS混合開發 269
12.3.3 讓Android視圖加入Flutter 271