商品簡介
本書由淺入深的介紹了Flutter技術和開發流程。本書包含不僅包含大量示例、圖片,還有配套的示例源碼,可幫助讀者循序漸進的掌握Flutter開發技術。本書分為入門、進階、實例三大篇,其中入門篇(第1章~第7章)主要介紹了Flutter技術產生的背景、常用的組件以及佈局方式,通過入門篇的學習,讀者可以掌握如何使用Flutter來構建UI界面。進階篇(第8章~第14章),包括Flutter中的事件機制、動畫、自定義組件、文件和網絡、插件、國際化以及Flutter核心原理等。通過本章內容,讀者可以對Flutter整體構建及原理有一個深入的認識。實例篇(第15張),本章主要通過一個簡版的Github APP來將前面介紹的內容串起來,讓開發者對一個完整的Flutter APP開發流有個瞭解。
作者簡介
杜文(網名wendux),現就職於字節跳動,掘金知名專欄作者、Flutter中文網社區創始人、Flutter中文社區開源項目發起人、GitHub社區知名開發者,也是dio、fly、DSBridge等多個知名開源項目作者。多年從事PC桌面開發、移動端開發以及Web開發,對大前端方向有著廣泛的涉獵及豐富的開發經驗。
名人推薦
Flutter中文網社區創始人傾力撰寫;從入門、進階到實戰詳細闡述Flutter跨平臺開發技術。
目次
前 言
第一篇 入門篇
第1章 起步 2
1.1 移動開發技術簡介 2
1.1.1 原生開發與跨平臺技術 2
1.1.2 Hybrid技術簡介 3
1.1.3 React Native、Weex及快應用 5
1.1.4 QT Mobile 7
1.1.5 Flutter問世 8
1.1.6 總結 9
1.2 初識Flutter 10
1.2.1 Flutter簡介 10
1.2.2 Flutter框架結構 12
1.2.3 如何學習Flutter 13
1.3 搭建Flutter開發環境 14
1.3.1 安裝Flutter 14
1.3.2 IDE配置與使用 19
1.3.3 連接設備運行Flutter應用 21
1.3.4 Android Studio常見配置問題 24
1.4 Dart語言簡介 26
1.4.1 變量聲明 27
1.4.2 函數 28
1.4.3 異步支持 30
1.4.4 Stream 34
1.4.5 Dart與Java及JavaScript的對比 35
第2章 第一個Flutter應用 36
2.1 計數器應用示例 36
2.1.1 創建Flutter應用模板 36
2.1.2 首頁 39
2.2 路由管理 42
2.2.1 一個簡單示例 43
2.2.2 MaterialPageRoute 44
2.2.3 Navigator 45
2.2.4 路由傳值 45
2.2.5 命名路由 47
2.2.6 路由生成鉤子 50
2.2.7 總結 50
2.3 包管理 51
2.4 資源管理 55
2.5 調試Flutter應用 60
2.6 Flutter異常捕獲 67
2.6.1 Dart單線程模型 67
2.6.2 異常捕獲 69
第3章 基礎組件 73
3.1 Widget簡介 73
3.1.1 概念 73
3.1.2 Widget與Element 73
3.1.3 Widget主要接口 74
3.1.4 StatelessWidget 75
3.1.5 StatefulWidget 77
3.1.6 State 78
3.1.7 在Widget樹中獲取State對象 84
3.1.8 Flutter SDK內置組件庫介紹 85
3.2 狀態管理 87
3.2.1 Widget管理自身狀態 88
3.2.2 父Widget管理子Widget的狀態 89
3.2.3 混合狀態管理 91
3.2.4 全域狀態管理 93
3.3 文本及樣式 94
3.3.1 Text 94
3.3.2 TextStyle 95
3.3.3 TextSpan 95
3.3.4 DefaultTextStyle 96
3.3.5 字體 97
3.4 按鈕 99
3.4.1 Material組件庫中的按鈕 99
3.4.2 自定義按鈕外觀 100
3.5 圖片及ICON 102
3.5.1 圖片 102
3.5.2 ICON 107
3.6 單選開關和複選框 109
3.6.1 屬性及外觀 110
3.6.2 總結 110
3.7 輸入框及表單 110
3.7.1 TextField 110
3.7.2 Form 118
3.8 進度指示器 122
3.8.1 LinearProgressIndicator 122
3.8.2 CircularProgressIndicator 123
3.8.3 自定義尺寸 124
3.8.4 顏色動畫 125
3.8.5 自定義進度指示器樣式 126
第4章 佈局類組件 127
4.1 佈局類組件簡介 127
4.2 線性佈局(Row和Column) 128
4.3 彈性佈局(Flex) 133
4.4 流式佈局 136
4.4.1 Wrap 136
4.4.2 Flow 137
4.5 層疊佈局 139
4.6 對齊與相對定位(Align) 141
4.6.1 Align 142
4.6.2 Align與Stack對比 144
4.6.3 Center組件 145
第5章 容器類組件 146
5.1 填充(Padding) 146
5.2 尺寸限制類容器 147
5.2.1 ConstrainedBox 147
5.2.2 SizedBox 148
5.2.3 多重限制 149
5.2.4 UnconstrainedBox 150
5.2.5 其他尺寸限制類容器 152
5.3 裝飾容器(DecoratedBox) 152
5.4 變換(Transform) 153
5.5 Container 156
5.6 Scaffold、AppBar和底部導航 158
5.6.1 Scaffold 158
5.6.2 AppBar 160
5.6.3 抽屜菜單 163
5.6.4 FloatingActionButton 165
5.6.5 底部導航欄 165
5.7 剪裁(Clip) 166
第6章 可滾動組件 169
6.1 可滾動組件簡介 169
6.2 SingleChildScrollView 171
6.3 ListView 172
6.4 GridView 179
6.5 CustomScrollView 184
6.6 滾動監聽及控制 187
6.6.1 ScrollController 187
6.6.2 滾動監聽 191
第7章 功能型組件 194
7.1 導航返回攔截(WillPopScope) 194
7.2 數據共享(InheritedWidget) 195
7.3 跨組件狀態共享(Provider) 200
7.4 顏色和主題 210
7.4.1 顏色 210
7.4.2 主題 212
7.5 異步UI更新 215
7.5.1 FutureBuilder 216
7.5.2 StreamBuilder 218
7.6 對話框詳解 219
7.6.1 使用對話框 219
7.6.2 打開動畫及遮罩 224
7.6.3 對話框實現原理 226
7.6.4 對話框狀態管理 227
7.6.5 其他類型的對話框 235
第二篇 進階篇
第8章 事件處理與通知 242
8.1 原始指針事件處理 242
8.2 手勢識別 245
8.2.1 GestureDetector 245
8.2.2 GestureRecognizer 249
8.2.3 手勢競爭與衝突 251
8.3 事件總線 253
8.4 Notification 255
第9章 動畫 261
9.1 Flutter動畫簡介 261
9.2 動畫基本結構及狀態監聽 265
9.2.1 動畫基本結構 265
9.2.2 動畫狀態監聽 270
9.3 自定義路由切換動畫 270
9.4 Hero動畫 273
9.5 交織動畫 275
9.6 通用切換動畫組件 278
9.6.1 AnimatedSwitcher 279
9.6.2 AnimatedSwitcher的高級用法 282
9.7 動畫過渡組件 286
9.7.1 自定義動畫過渡組件 286
9.7.2 Flutter預置的動畫過渡組件 293
第10章 自定義組