作 者:王睿 著
定 價:119
出 版 社:機械工業出版社
出版日期:2021年07月01日
頁 數:292
裝 幀:平裝
ISBN:9787111683032
《Flutter開發實例解析》融合了移動開發領域資深專家多年一線工作經驗,精心選取的大量實例項目,手把手帶領讀者完成多個Flutter實際應用開發。循序漸進、由淺入深,書中操作部分配有二維碼視頻,使讀者身臨其境,迅速、深入地掌握各種經驗和技巧。
●前言
第1章Flutter基礎知識/1
1.1移動跨端開發技術/2
1.1.1移動端應用開發的一般流程/2
1.1.2原生開發與跨端開發/4
1.1.3移動跨端開發技術的發展歷程/6
1.1.4跨端技術難點/7
1.2Flutter技術/9
1.2.1Flutter技術簡介/9
1.2.2Flutter整體架構/12
1.2.3Flutter與同類方案對比/14
1.3如何安裝FlutterSDK/15
1.4配置Flutter開發環境/19
1.4.1使用Android Studio進行Flutter開發/19
1.4.2使用Visual Studio Code進行Flutter開發/21
1.4.3使用在線環境進行Flutter開發/23
1.5創建第一個Flutter應用HelloWorld/24
1.5.1如何創建Flutter工程/24
1.5.2配置Android模擬器與真機運行/26
1.5.3配置iOS模擬器與真機運行/28
第2章Dart和Flutter核心概念——零基礎開發番茄鐘計時器/30
2.1番茄鐘計時器開發要點/31
2.2Dart語言快速上手/31
2.3什麼是Flutter組件化/32
2.3.1什麼是組件化思想/33
2.3.2無狀態組件StatelessWidget/33
2.3.3有狀態組件StatefulWidget/35
2.3.4組件的生命周期/35
2.3.5Material和Cupertino組件庫/38
2.4初識Flutter工程/39
2.4.1Flutter工程結構特點/39
2.4.2App組件——應用架構的基石/40
2.4.3Scaffold組件——頁面的骨架/41
2.5開發番茄鐘/42
2.5.1使用Center組件進行居中顯示/43
2.5.2Text文本展示組件/44
2.5.3添加Timer定時器/45
2.5.4為按鈕添加單擊事件控制番茄鐘開始/46
2.6番茄鐘知識擴展/48
第3章自定義視圖和動畫——開發精美的擬物時鐘/50
3.1擬物時鐘開發要點/51
3.1.1使用Container定制組件展示效果/51
3.1.2使用CustomPaint創建Flutter自定義視圖/57
3.1.3Flutter動畫入門與擬物時鐘的開發流程/59
3.2基於Canvas和CustomPaint繪制表盤/68
3.2.1使用Container繪制外表盤/68
3.2.2使用Container繪制內表盤/70
3.2.3使用CustomPaint繪制表盤刻度/72
3.3基於CustomPaint繪制指針/74
3.3.1使用CustomPaint繪制時針與分針/74
3.3.2使用rotate Transform偏轉指針/77
3.3.3使用CustomPaint繪制秒針/79
3.3.4使用CustomPaint繪制中心裝飾物/80
3.4讓時針動起來/82
3.4.1使用DataTime獲取時間信息/82
3.4.2通過Timer定時器實現時間自動刷新/84
3.4.3通過RotationTransition實現指針轉動動畫/84
3.5擬物時鐘知識拓展/86
第4章地圖+傳感器——開發軌跡計步器/88
4.1軌跡計步器開發要點/89
4.1.1通過Flutter包管理導入擴展包/90
4.1.2Flutter Channel原生通信機制介紹/92
4.1.3Column、Row橫縱向布局組件介紹/97
4.1.4軌跡計步器開發流程/101
4.2創建軌跡計步器首頁/101
4.2.1創建軌跡計步器項目結構/101
4.2.2創建儀表面板組件/102
4.3基於Pedometer庫實現計步功能/108
4.3.1Pedometer計步器庫介紹/108
4.3.2通過Flutter Stream監聽步數/109
4.3.3實現軌跡計步器的計步功能/110
4.4基於geolocator庫實現定位功能/111
4.4.1geolocator定位庫介紹/112
4.4.2實現軌跡計步器的定位功能/112
4.4.3保存軌跡計步器的定位軌跡歷史/114
4.5基於flutter_map庫實現地圖功能/115
4.5.1flutter_map地圖庫介紹/115
4.5.2使用FlutterMap組件創建地圖/115
4.5.3通過MarkerLayerOptions展示當前位置/117
4.5.4通過PolylineLayerOptions繪制行進軌跡/118
4.6軌跡計步器知識拓展/119
第5章Socket網絡通信——開發屬於自己的“”聊天工具/121
5.1聊天工具開發要點/122
5.1.1Dart Socket網絡通信框架/122
5.1.2Flutter圖片資源管理/124
5.1.3使用ListView展示長列表數據/125
5.1.4通過Navigator進行頁面跳轉/127
5.1.5聊天工具開發流程/130
5.2創建首頁設置頁面/131
5.2.1搭建聊天工具Flutter工程/131
5.2.2基於NetworkInterface展示本機IP地址/133
5.2.3使用TextField實現Server設置項/135
5.2.4使用TextField實現Client設置項/138
5.3建立Socket通信/140
5.3.1創建消息Model並進行JSON序列化/140
5.3.2創建Socket通信基類BaseSocketCS/143
5.3.3基於ServerSocket創建Socket服務器/143
5.3.4基於Socket創建Socket客戶端/145
5.3.5在_MyAppState中接入Socket框架/146
5.3.6雙端Socket通信聯調/152
5.4建立聊天頁面/154
5.4.1基於ListView實現消息列表/155
5.4.2基於Container實現消息組件/156
5.4.3基於Navigator實現頁面跳轉/158
5.4.4使用TextField實現消息輸入組件/159
5.5使用Image組件擴展表情包功能/161
5.6聊天工具知識拓展/165
第6章數據持久化——開發一款支持Markdown的“印像筆記”/166
6.1Markdown筆記開發要點/167
6.1.1Flutter下的Markdown展示方式/167
6.1.2基於flutter_markdown實現Markdown原生渲染/168
6.1.3使用shared_preferences存儲筆記數據/170
6.1.4使用InheritedWidget進行狀態管理/171
6.1.5筆記應用開發流程/174
6.2基於InheritedWidget開發狀態層/175
6.2.1創建筆記Model/176
6.2.2基於基於StatefulWidget創建NoteStore/177
6.2.3在_NoteStoreState中實現筆記增刪改查/178
6.2.4基於InheritedWidget實現_NoteStoreScope/181
6.2.5在NoteStore中完善狀態訪問接口/182
6.3創建筆記應用首頁/183
6.3.1使用didChangeDependencies進行狀態關聯/183
6.3.2基於Scaffold實現首頁抽屜導航布局/184
6.4創建筆記編輯頁/186
6.4.1實現_PageEditorState搭建主要布局/187
6.4.2實現getAppBar編輯頁工具欄/188
6.4.3運行編輯頁調試功能/190
6.4.4使用TextFiel信息編輯頁/191
6.5創建筆記預覽頁/194
6.6創建編輯頁工具欄/195
6.7Markdown筆記應用知識擴展/198
第7章SQLite數據庫——開發一款“奇妙清單”Todo應用/200
7.1Todo應用開發要點/201
7.1.1使用sqflite進行SQLite數據庫開發/201
7.1.2使用Provider進行Flutter復雜狀態管理/204
7.1.3Todo應用的業務流程/208
7.2基於sqflite實現SQLite數據層/210
7.2.1封裝項目Model/210
7.2.2封裝待辦事項Model/211
7.2.3sqflite數據庫初始化/213
7.2.4實現項目數據庫操作類ProjectManager/214
7.2.5實現待辦事項操作類TodoManager/215
7.3基於Provider實現狀態層/216
7.3.1實現待辦事項狀態類TodoState/216
7.3.2實現項目狀態類ProjectState/217
7.3.3使用 ltiProvider對外提供狀態/219
7.4創建Todo應用首頁/219
7.4.1使用Consumer實現項目列表/220
7.4.2創建待辦事項列表項組件/222
7.4.3使用Consumer2實現待辦事項列表/225
7.5創建Todo應用項目編輯頁/227
7.5.1實現項目編輯頁整體Scaffold布局/227
7.5.2使用showDatePicker編輯創建和截止時間/229
7.5.3訪問ProjectState實現項目數據保存/231
7.6創建Todo應用待辦事項編輯頁/232
7.6.1實現待辦事項編輯頁整體Scaffold布局/232
7.6.2通過自定義對話框實現項目選擇/235
7.6.3訪問TodoState實現待辦事項數據保存/236
7.7Todo應用知識擴展/238
第8章Http+WebView——開發“技術頭條”讓技術先人一步/239
8.1技術頭條開發要點/240
8.1.1Flutter http網絡庫介紹/240
8.1.2GitHub API介紹/241
8.1.3使用json_annotation實現高效序列化/242
8.1.4Flutter集成WebView實現網頁瀏覽/244
8.1.5技術頭條的業務流程/245
8.2基於http庫實現網絡層/246
8.2.1基於json_annotation創建Model類/247
8.2.2基於http庫實現GitHub網絡訪問類/252
8.2.3基於Service模式搭建網絡層/254
8.3創建首頁活動Feed流/257
8.3.1基於CustomScrollView搭建首頁Feed流布局/257
8.3.2通過SliverPersistentHeader實現吸頂搜索組件/258
8.3.3通過SliverGrid實現九宮格導航/261
8.3.4通過SliverList實現Feed流內容展示/264
8.3.5接收ScrollNotification事件實現加載更多內容/268
8.4創建GitHub公共活動Feed流/270
8.4.1基於ListView公共活動Feed流布局/270
8.4.2通過listPublicEvents和ScrollNotification加載數據/272
8.5通過xpath爬蟲實現GitHubTrending頁/273
8.5.1通過xpath解析GitHubTrending網頁/274
8.5.2通過ListView對GitHubTrending進行展示/276
8.5.3在createGrid中完成路由跳轉邏輯/277
8.6基於webview_flutter實現WebView頁面/278
8.7技術頭條應用知識擴展/279
Fluter作為一種新興的跨端開發技術,其語言和框架都是全新的,並且知識體繫比較龐大,學習起來有一定的難度。對於初學者來說,最迫切的願望就是能夠快速上手,將理論知識轉化為實際經驗,並在不斷的實踐中擴充完善知識體繫。本書旨在幫助Flutter初學者實現這一願望。本書突出實戰的特點,通過精心選取的大量實例項目,手把手帶領讀者完成多個Fluter實際應用開發。按照循序漸進的順序對這些項目進行介紹,從最初的簡單番茄計時器、擬物時鐘,到後續的筆記應用、Todo應用、技術頭條應用,逐步帶領讀者開發出具備地圖、定位、網絡、數據庫、狀態管理等功能的復雜應用,最終使讀者能夠掌握Flutter的中高級開發能力。本書適合不同層次的移動端開發工程師、前端開發工程師,以及希望快速入門Fluter移動端開發的讀者閱讀學習。