內容簡介
本書由淺入深地帶領讀者進入Flutter開發的世界,從Flutter的起源講起,逐步深入Flutter進階實戰,並在最後配合項目實戰案例,讓讀者不但可以系統地學習Flutter編程的相關知識,而且還能對Flutter套用開發有更為深入的理解。
本書分為三部分:第一部分為入門篇(第1~4章),主要介紹Flutter技術的誕生背景、特點、語言及常用組件的使用,通過對本篇的學習,讀者可以掌握如何使用Flutter來搭建UI界面;第二部分為進階篇(第5~11章),主要包含Flutter的手勢和事件處理、動畫、自定義組件、檔案操作和網路請求、路由導航和存儲、混合跨平台開發、國際化等,通過對本篇的學習,讀者可以對Flutter的整體流程及原理有一個深入的認識;第三部分為實戰篇(第12~14章),主要通過一個實戰項目把前面介紹的內容整合起來,並且結合Flutter套用發布和Flutter App升級等一條線流程,讓讀者對開發一個完整的Flutter App有一個整體的了解。
本書內容不僅包含大量示例、圖片、表格,還有對應的配套示例原始碼,可幫助讀者循序漸進地掌握Flutter開發技術,而且通俗易懂,內容豐富,實用性強,特別適合Flutter語言的入門讀者和進階讀者閱讀,也適合移動開發的其他編程愛好者閱讀。另外,本書還適合作為相關培訓機構的教材使用。
圖書目錄
第1章 Flutter概述
1.1 移動端開發的發展史 2
1.2 Flutter簡介3
1.3 Flutter框架3
1.4 為什麼使用Flutter4
1.5 小結4
第2章 初識Flutter
2.1 搭建開發環境6
2.1.1 下載Flutter SDK6
2.1.2 設定鏡像地址及環境變數7
2.1.3 安裝與設定Android Studio8
2.1.4 安裝Visual Studio Code與Flutter開發外掛程式9
2.1.5 IDE的使用和配置10
2.1.6 安裝Xcode10
2.1.7 檢查Flutter開發環境11
2.2 Flutter升級11
2.3 創建Flutter示例項目11
2.4 項目目錄結構說明14
2.5 程式調試14
2.5.1 iOS手機調試14
2.5.2 Android手機調試16
2.6 體驗熱重載18
2.7 小結18
第3章 Dart語言簡介
3.1 Dart語言20
3.1.1 Dart是什麼20
3.1.2 Dart的特性20
3.1.3 Dart的機制20
3.2 Dart的內置數據類型20
3.2.1 字元串類型21
3.2.2 數值類型21
3.2.3 布爾類型21
3.2.4 列表類型22
3.2.5 字典類型22
3.3 變數和常量的聲明22
3.4 函式定義23
3.4.1 普通函式23
3.4.2 可選參數23
3.4.3 匿名函式24
3.4.4 箭頭函式24
3.5 條件表達式和運算符24
3.5.1 判定操作符25
3.5.2 三目運算表達式25
3.5.3 級聯運算符25
3.5.4 非空判斷符25
3.6 分支和循環26
3.6.1 if…else26
3.6.2 switch26
3.6.3 for循環和while循環27
3.6.4 List遍歷28
3.6.5 Map遍歷28
3.7 定義類28
3.7.1 構造函式28
3.7.2 運算符重載29
3.7.3 extends、with、implements、abstract的用法30
3.7.4 定義私有變數31
3.8 導入包31
3.9 異常捕獲32
3.10 異步操作33
3.11 泛型34
3.12 注釋35
3.13 小結35
第4章 Flutter組件
4.1 Widget37
4.1.1 Widget的概念37
4.1.2 Widget和Element37
4.1.3 StatelessWidget37
4.1.4 StatefulWidget38
4.1.5 State40
4.2 狀態管理41
4.3 基礎組件41
4.3.1 Text組件41
4.3.2 TextField組件45
4.3.3 Image組件46
4.3.4 Button組件47
4.3.5 Container組件48
4.3.6 Row和Column組件49
4.3.7 Flex組件50
4.4 Material風格組件51
4.4.1 MaterialApp51
4.4.2 Scaffold52
4.4.3 AppBar53
4.4.4 BottomNavigationBar54
4.4.5 TabBar56
4.4.6 Drawer(抽屜)57
4.5 Cupertino風格組件58
4.5.1 CupertinoActivityIndicator58
4.5.2 CupertinoAlertDialog58
4.5.3 CupertinoButton59
4.5.4 CupertinoSlider60
4.5.5 CupertinoSwitch61
4.6 容器組件62
4.6.1 Padding(填充)62
4.6.2 Center(居中)62
4.6.3 Align(對齊)63
4.6.4 AspectRatio(固定寬高比例)63
4.6.5 Transform(變換)64
4.6.6 Stack(重疊)64
4.6.7 Wrap(流布局)64
4.6.8 Flow65
4.7 滾動組件66
4.7.1 ListView66
4.7.2 GridView66
4.7.3 Table69
4.7.4 ExpansionTile(摺疊)70
4.8 小結71
第5章 手勢和事件處理
5.1 原始指針73
5.2 GestureDetector73
5.3 GestureRecognizer76
5.4 事件匯流排78
5.5 小結79
第6章 動畫
6.1 Flutter動畫簡介81
6.2 動畫基本使用82
6.3 動畫狀態監聽84
6.4 交織動畫85
6.5 Hero動畫87
6.6 AnimatedList動畫89
6.7 小結91
第7章 自定義組件
7.1 自定義組件方法介紹93
7.2 組裝現有組件93
7.3 CustomPaint與Canvas結合使用95
7.4 小結97
第8章 檔案操作和網路請求
8.1 獲取iOS和Android檔案路徑99
8.2 資料夾日常操作99
8.3 檔案日常操作100
8.4 HTTPClient網路請求101
8.5 dio庫簡介及使用102
8.6 JSON轉Model類103
8.7 小結105
第9章 路由導航和存儲
9.1 路由導航107
9.2 命名路由規則108
9.3 使用shared_preferences存儲數據110
9.4 使用SQLite存儲數據111
9.5 小結115
第10章 混合跨平台開發
10.1 開發Package117
10.2 平台通道介紹117
10.3 Flutter外掛程式的開發117
10.4 Android端外掛程式API的實現121
10.5 iOS端外掛程式API的實現121
10.6 小結122
第11章 國際化
11.1 讓開發的App支持多語言124
11.2 監聽系統語言切換124
11.3 讓開發的UI支持多語言125
11.4 使用Intl包127
11.5 小結130
第12章 項目實戰
12.1 套用介紹132
12.2 套用數據133
12.3 主體樣式134
12.4 路由管理136
12.5 狀態管理方案137
12.6 登錄界面139
12.7 訊息展示界面142
12.8 待辦事項界面143
12.9 考勤打卡界面148
12.10 個人中心界面151
12.11 小結157
第13章 發布Flutter套用
13.1 JIT和AOT159
13.2 Android端的打包159
13.3 iOS端的打包163
13.4 性能調試166
13.5 開發輔助工具使用166
13.6 App上架167
13.7 小結168
第14章 App升級功能
14.1 App升級功能預覽及功能分析170
14.2 Android平台跳轉到套用市場進行更新170
14.3 iOS平台跳轉到App Store進行更新171
14.4 小結172
作者簡介
陳政
----------------------------
陳政,筆名:三掌柜,CSDN部落格專家,CSDN上海城市開發者社區主理人,CSDN人工智慧技術開發者社區主理人,InfoQ寫作平台首批簽約作者,阿里雲技術社區專家博主,51CTO社區部落格專家,騰訊雲開發者社區2022年度“優秀作者”,友盟問答官。
大前端領域優質創作者,“大前端系列”專欄,文章內容通俗易懂,由淺入深,旨在幫助有需要的人;深耕大前端領域多年,理論結合實踐,有著豐富的大前端開發經驗。