Flutter:從0到1構建大前端套用

Flutter:從0到1構建大前端套用

《Flutter:從0到1構建大前端套用》是Flutter從基礎入門到進階實戰的教程書,也是一本面向大前端的新技術書。Flutter是谷歌新推出的一個跨平台的、開源的UI框架,同時支持iOS系統和Android系統開發,並且是谷歌未來新作業系統Fuchsia的默認開發套件。本書共10章,內容包括Flutter簡介、Dart語言入門、一切皆組件、事件處理、動畫、使用網路技術與異步編程、路由、持久化、外掛程式與混合工程和項目實戰。本書不僅介紹了Flutter的基本原理、特性,而且在實戰章節全面展示了打造一個完整的基於Flutter的App的流程,包含具體細節、思想流程和代碼實操。

基本介紹

  • 書名:Flutter:從0到1構建大前端套用
  • 作者:何瑞君
  • ISBN:978-7-121-36179-1
  • 頁數:320
  • 定價:79
  • 出版社:電子工業出版社
  • 出版時間:2019-7
  • 開本:16
內容提要,目錄,作者簡介,

內容提要

適合Flutter初學者,對移動開發(iOS/Android)有一定經驗的人員,以及希望了解Flutter原理並進階實戰的相關技術人員。

目錄

第1章 Flutter簡介 1
1.1 Flutter的優勢 1
1.2 對比其他技術 2
1.3 Flutter架構 3
1.3.1 Flutter Framework 3
1.3.2 Flutter Engine 4
1.4 開發環境搭建 4
1.4.1 Mac上的環境搭建 4
1.4.2 在Mac上獲取SDK並設定環境變數 5
1.4.3 安裝Xcode與運行模擬器 6
1.4.4 安裝Android Studio 7
1.4.5 在Android Studio上安裝Flutter開發外掛程式 8
1.4.6 安裝VSCode與Flutter開發外掛程式 9
1.4.7 IDE的選擇 11
1.4.8 使用Flutter診斷工具檢查Flutter開發環境 11
1.4.9 創建Demo工程並體驗熱重載 12
1.5 Flutter升級 14
本章小結 15
第2章 Dart語言入門 16
2.1 套用場景 16
2.1.1 SDK安裝和升級 17
2.1.2 編寫一個HelloWorld並運行 17
2.2 變數與常量 18
2.2.1 變數 18
2.2.2 常量 18
2.2.3 內置類型 19
2.2.4 數值型 19
2.2.5 數值型操作 20
2.2.6 字元串 21
2.2.7 字元串操作 21
2.2.8 布爾型 23
2.2.9 List與數組 23
2.2.10 Map 24
2.2.11 dynamic和Object 25
2.3 算符 26
2.4 異常捕獲 27
2.5 函式Function 28
2.5.1 main函式 28
2.5.2 可選參數 28
2.5.3 必傳參數 29
2.5.4 可選的位置參數 29
2.5.5 默認參數 29
2.5.6 函式作為參數傳遞 30
2.5.7 函式作為變數 30
2.6 異步編程 30
2.6.1 Future是什麼 31
2.6.2 async和await 31
2.6.3 繼承、接口實現和混合 33
2.6.4 泛型 37
本章小結 39
第3章 一切皆組件 40
3.1 基礎組件(Basic widgets) 42
3.1.1 Text 43
3.1.2 Icon 43
3.1.3 Image 45
3.1.4 Button 45
3.1.5 FlutterLogo 47
3.2 單一子元素組件(Single-child) 48
3.2.1 Container 48
3.2.2 Container的約束 49
3.2.3 SingleChildScrollView 52
3.2.4 FittedBox 53
3.2.5 FractionallySizedBox 54
3.2.6 ConstrainedBox 55
3.2.7 Baseline 56
3.2.8 IntrinsicWidth和IntrinsicHeight 58
3.3 多子元素組件(Multi-child) 58
3.3.1 Scaffold 58
3.3.2 AppBar 59
3.3.3 Row和Column 61
3.3.4 ListView 64
3.3.5 GridView 69
3.3.6 CustomScrollView 70
3.3.7 Flex 73
3.3.8 Wrap 75
3.4 狀態管理 77
3.4.1 Widget樹 78
3.4.2 Context 79
3.4.3 StatelessWidget 80
3.4.4 StatefulWidget 80
3.4.5 StatefulWidget的組成 81
3.4.6 State 82
3.4.7 State生命周期 82
3.4.8 Widget的唯一身份標識:key 88
3.4.9 InheritedWidget 89
3.5 包管理 93
3.6 常用代碼段效果 94
3.6.1 案例一:側滑效果 95
3.6.2 案例二:登錄界面 96
3.6.3 案例三:輪播圖效果 96
3.6.4 案例四:圖片瀏覽器的相冊效果 97
3.6.5 案例五:全局主題設定 97
本章小結 98
第4章 事件處理 99
4.1 原始指針事件 99
4.1.1 基本用法 99
4.1.2 忽略事件 102
4.2 GestureDetector 105
4.2.1 基本用法 105
4.2.2 常用事件 106
4.2.3 拖曳和縮放效果 109
4.2.4 事件競爭與手勢衝突 112
4.2.5 手勢識別器 114
4.3 事件原理與分發機制 117
4.4 事件通知 122
本章小結 125
第5章 動畫 126
5.1 動畫原理及概述 126
5.1.1 Animation 127
5.1.2 Animatable 127
5.1.3 AnimationController 128
5.1.4 Tween 130
5.1.5 Tween.animate 133
5.1.6 Curve 133
5.2 動畫的封裝與簡化 136
5.2.1 AnimatedWidget 136
5.2.2 AnimatedBuilder 137
5.3 Hero動畫 141
5.3.1 基本用法 141
5.3.2 實現原理 143
5.4 交錯動畫 145
5.5 動畫示例 151
5.5.1 自定義載入動畫 151
5.5.2 實現動畫效果 153
5.5.3 Dialog載入框 157
5.5.4 測試載入框效果 159
本章小結 161
第6章 使用網路技術與異步編程 162
6.1 網路協定簡介 162
6.1.1 HTTP協定簡介 163
6.1.2 HTTP 2.0能給我們帶來什麼 164
6.1.3 HTTPS 166
6.2 網路編程 167
6.2.1 HttpClient 167
6.2.2 http庫 170
6.3 JSON解析 171
6.3.1 JSON轉成Dart對象 172
6.3.2 一個完整的例子 173
6.3.3 根據JSON用工具生成實體類 175
6.4 dio庫 176
6.4.1 基本用法 177
6.4.2 dio單例 177
6.4.3 dio攔截器 178
6.4.4 dio攔截器鏈 180
6.4.5 dio適配器 181
6.4.6 dio庫總結 183
6.5 異步編程 184
6.5.1 isolate 184
6.5.2 event loop 184
6.5.3 執行緒模型與isolate 188
6.5.4 創建單獨的isolate 190
6.5.5 Stream事件流 192
本章小結 195
第7章 路由 196
7.1 路由簡介 196
7.1.1 基本用法 197
7.1.2 靜態路由 197
7.1.3 動態路由 200
7.1.4 參數回傳 203
7.2 路由棧 206
7.2.1 路由棧詳解 207
7.2.2 pushReplacementNamed方法 207
7.2.3 popAndPushNamed方法 208
7.2.4 pushNamedAndRemoveUntil方法 209
7.2.5 popUntil方法 210
7.3 自定義路由 210
本章小結 214
第8章 持久化 215
8.1 shared_preferences本地存儲 215
8.1.1 shared_preferences的常用操作 216
8.1.2 shared_preferences舉例 216
8.2 SQLite資料庫 219
8.2.1 sqflite依賴庫簡介 220
8.2.2 封裝SQL Helpers 223
8.2.3 sqflite實現員工打卡示例 225
8.3 檔案形式存儲 232
8.3.1 path_provider簡介 233
8.3.2 一個簡單的日記本示例 233
本章小結 236
第9章 外掛程式與混合工程 237
9.1 package 237
9.1.1 添加package的幾種方式 238
9.1.2 更新package 239
9.1.3 創建自己的package 240
9.1.4 發布package 240
9.2 理解Platform Channel 241
9.2.1 訊息傳遞與編解碼器 242
9.2.2 Platform數據類型支持 243
9.2.3 MethodChannel簡介 243
9.2.4 SharedPreferences外掛程式源碼解析 245
9.3 混合開發 247
9.3.1 創建Flutter模組 248
9.3.2 關聯原生工程 248
9.3.3 編寫混合工程代碼 249
9.3.4 熱重載混合端代碼 251
9.3.5 aar模組化打包 252
9.4 FlutterBoost混合方案 253
9.4.1 框架的由來 253
9.4.2 使用FlutterBoost改進 254
9.4.3 FlutterBoost源碼分析 255
本章小結 263
第10章 項目實戰 264
10.1 實戰一:實現一個招聘類App 264
10.1.1 項目需求與技術選型 264
10.1.2 服務端設計 265
10.1.3 Flutter基礎架構 270
10.1.4 啟動頁面 271
10.1.5 使用dio實現網路請求 273
10.1.6 公司列表與詳情實現 275
10.1.7 用WebSocket實現聊天模組 281
10.2 實戰二:實現異常上報系統 286
10.2.1 實現原理 286
10.2.2 FlutterError.onError和Zone 287
10.2.3 異常上報Flutter的實現 288
10.2.4 異常上報Android端的實現 290
10.2.5 服務端接收異常上報 293
10.3 實戰項目源碼 299
10.4 性能分析與輔助工具 300
本章小結 304

作者簡介

何瑞君,移動端資深架構師,擅長Android、HTML5、React Native、Flutter等技術開發。GitHub重度使用者,熱愛開源項目和技術文章寫作。目前就職於平安銀行。

相關詞條

熱門詞條

聯絡我們