Flutter 從0基礎到 App 上線
內容描述
在移動互聯網高速發展的今天,跨平台的移動開發框架層出不窮。
為了幫助廣大開發者快速掌握跨平台的移動開發並降低互聯網公司的產品研發成本,
《Flutter從0基礎到App上線》從開發環境的搭建、Dart編程語言基礎和高級應用、
Flutter框架中的組件(包括通用組件、Android風格和iOS風格的組件)、
Flutter App中的數據持久化方案、多語言國際化、使用設備傳感器、
和原生代碼通信、App的測試和Dart調試技巧及App上線流程等方面,全面闡述了Flutter框架的開發技巧。
在多個章節後面都附有練習題,你可以通過練習來鞏固相應知識。
此外,《Flutter從0基礎到App上線》還具有很強的工具屬性。
它既可以作為入門書籍來使用,也可以用於在必要時隨時查閱某一個知識點;
既適合零基礎的學員,也適合有一定開發基礎的朋友。
目錄大綱
第1章Flutter簡介 1
1.1 移動App開發的前世今生 2
1.2 為什麼選擇Flutter 3
1.2.1 Flutter的優勢 3
1.2.2 Flutter強大的跨平台特性 4
1.2.3 Flutter的明天 5
1.3 Flutter的體系結構 6
第2章初次遇見Flutter 8
2.1 開發環境搭建 8
2.1.1 下載JDK 9
2.1.2 安裝JDK 9
2.1.3 安裝和配置Xcode 10
2.1.4 下載Flutter SDK 11
2.1.5 配置Flutter SDK 11
2.1.6 配置必備組件12
2.2 集成開發環境的選擇12
2.2.1 配置Android Studio 13
2.2.2 配置Visual Studio Code 17
2.3 第一個程序——Hello World 18
2.3.1 運行自診斷腳本18
2.3.2 啟動Android模擬器19
2.3.3 將項目運行在模擬器上21
2.3.4 探索Flutter熱修復特性22
2.4 升級Flutter 23
2.5 練習24
第3章Dart語言基礎25
3.1 Dart語言簡介25
3.1.1 Dart發展史25
3.1.2 Dart重要概念26
3.1.3 Hello Dart 27
3.2 變量與常量29
3.2.1 變量29
3.2.2 常量30
3.3 基本數據類型31
3.3.1 數值型31
3.3.2 字符串32
3.3.3 布爾34
3.3.4 集合34
3.3.5 UTF-32編碼表示法39
3.4 方法39
3.4.1 定義一個方法39
3.4.2 參數40
3.4.3 主方法42
3.4.4 作用域42
3.4.5 閉包42
3.4.6 檢查兩個方法是否相等43
3.4.7 返回值43
3.5 運算符43
3.5.1 算術運算符45
3.5.2 關係運算符46
3.5.3 類型判定運算符47
3.5.4 賦值運算符48
3.5.5 邏輯運算符49
3.5.6 位操作運算符50
3.5.7 條件表達式51
3.5.8 級聯運算符52
3.5.9 其他運算符52
3.6 流程控制52
3.6.1 if-else條件語句53
3.6.2 for循環53
3.6.3 while循環和do-while循環54
3.6.4 break語句和continue語句55
3.6.5 switch-case條件語句56
3.6.6 斷言58
3.7 異常59
3.7.1 Throw 59
3.7.2 Catch 60
3.7.3 Finally 62
3.8 練習62
第4章Dart語言的面向對象應用63
4.1 類63
4.1.1 類的實例化63
4.1.2 實例變量65
4.1.3 getter()方法和setter()方法66
4.1.4 靜態變量67
4.1.5 構造方法67
4.1.6 實例方法73
4.1.7 靜態方法73
4.1.8 擴展類74
4.1.9 可複寫的運算符77
4.1.10 抽象方法78
4.1.11 抽像類80
4.1.12 接口80
4.1.13 利用Mixin特性擴展類82
4.1.14 枚舉83
4.2 泛型84
4.2.1 泛型的作用84
4.2.2 泛型的使用示例85
4.2.3 限制泛型類型範圍85
4.2.4 使用泛型方法86
4.3 練習87
第5章Dart語言的高級使用技巧88
5.1 庫88
5.1.1 使用庫89
5.1.2 創建庫91
5.2 異步處理91
5.2.1 聲明異步的方法92
5.2.2 使用await表達式93
5.2.3 異步在循環中的使用93
5.3 可調用的類93
5.4 Dart的isolates運行模式94
5.5 方法類型定義94
5.6 元數據96
5.7 註釋96
5.7.1 單行註釋96
5.7.2 多行註釋97
5.7.3 文檔註釋97
5.8 編寫更有效的Dart代碼97
5.9 練習98
第6章繪製賞心悅目的界面99
6.1 第一個Flutter項目99
6.1.1 Flutter項目的結構100
6.1.2 日誌工具的使用100
6.2 Flutter基礎101
6.2.1 Flutter框架結構101
6.2.2 App啟動入口101
6.2.3 一切皆為組件102
6.2.4 組件的組合運用102
6.2.5 何為狀態103
6.2.6 自定義組件114
6.3 基本組件120
6.3.1 基本組件簡介120
6.3.2 文本組件120
6.3.3 按鈕組件124
6.3.4 圖片組件126
6.3.5 開關和復選框組件129
6.3.6 單選框組件130
6.3.7 輸入框組件和表單組件131
6.4 多元素佈局組件147
6.4.1 佈局類組件147
6.4.2 線性佈局149
6.4.3 堆疊佈局152
6.4.4 彈性佈局155
6.4.5 流式佈局156
6.5 容器類組件159
6.5.1 內邊距159
6.5.2 約束160
6.5.3 裝飾161
6.5.4 變換164
6.5.5 容器165
6.6 滾動列表組件166
6.6.1 滾動列表組件簡介166
6.6.2 單個子組件的滾動視圖166
6.6.3 線性列表組件168
6.6.4 網格列表組件174
6.6.5 自定義滾動組件177
6.6.6 滾動的控制及實時狀態監聽178
6.7 其他重要的組件181
6.7.1 攔截返回鍵181
6.7.2 在組件樹之間共享數據183
6.7.3 觸摸事件監聽186
6.7.4 手勢識別188
6.7.5 通知組件190
6.7.6 全局事件廣播193
6.8 App資源管理196
6.8.1 放置資源196
6.8.2 使用資源197
6.8.3 跨平台使用共享資源197
6.9 動畫200
6.9.1 基本概念200
6.9.2 補間動畫200
6.9.3 物理模擬動畫202
6.9.4 非線性動畫202
6.9.5 共享元素過渡動畫203
6.9.6 多個動畫的疊加206
6.10 字體210
6.10.1 放置字體210
6.10.2 使用字體211
6.11 主題211
6.11.1 使用主題211
6.11.2 全局主題212
6.11.3 局部主題212
6.11.4 擴展現有主題213
6.12 練習213
第7章數據的傳遞和持久化保存214
7.1 頁面跳轉214
7.1.1 頁面的跳轉和返回214
7.1.2 數據的傳遞和返回216
7.2 本地文件221
7.2.1 本地文件的路徑222
7.2.2 本地文件的讀寫222
7.3 網絡請求225
7.3.1 發起HTTP請求226
7.3.2 Json解析228
7.4 保存用戶設置239
7.5 數據庫操作240
7.6 練習248
第8章使用設備硬件實現更多功能249
8.1 GPS定位技術249
8.2 相機252
8.3 藍牙254
8.4 音視頻259
8.4.1 音頻錄放259
8.4.2 視頻錄放262
8.5 距離傳感器263
8.6 NFC近場通信265
8.7 練習269
第9章使App更加通用——國際化的實現270
9.1 識別當前系統的首選語言270
9.2 使App支持多語言環境272
9.3 練習276
第10章與原生代碼交互277
10.1 平台通道277
10.1.1 平台通道的概念278
10.1.2 平台通道支持的數據類型和解碼器278
10.2 與Android原生代碼交互279
10.2.1 使用Java語言實現283
10.2.2 使用Kotlin語言實現285
10.3 與iOS原生代碼交互287
10.3.1 使用Objective-C語言實現287
10.3.2 使用Swift語言實現289
10.4 練習290
第11章Material Design(Android)風格設計291
11.1 腳手架組件291
11.2 頂部程序欄組件294
11.3 水平選項卡與內容視圖組件296
11.4 底部導航欄組件298
11.5 抽屜組件300
11.6 浮動懸停按鈕組件302
11.7 扁平按鈕組件303
11.8 圖標按鈕組件303
11.9 浮動動作按鈕組件305
11.10 彈出式菜單組件305
11.11 滑塊組件307
11.12 日期時間選擇組件309
11.13 簡單對話框312
11.14 提示框314
11.15 可展開的列表組件315
11.16 底部提示組件317
11.17 標籤組件318
11.18 幫助提示組件320
11.19 卡片組件320
11.20 水平和圓形進度組件322
11.21 練習323
……
作者介紹
蕭文翰
Android架構師/技術顧問。
從2013年開始從事移動前端開發工作,主攻Android和跨平台開發技術,具有豐富的實戰項目經驗。
蕭文翰是國內7項專利的共同發明人,從2017年年底至2019年年底,
在擔任天津/廣州三星通信研究院代碼優化工程師期間,
6次當選Best Technical-Report,曾推動App性能優化活動,
實現性能類別解決方案同比增長60%,總體解決方案領先於全球研究院。
他還是CSDN博客專家&認證講師、知乎專欄作家。