Flutter 入門經典 (Beginning Flutter : A Hands On Guide To App Development)
內容描述
主要內容
● 闡釋Flutter的細節,包括開發者可用的所有框架、Widget和工具。
● 即使你是沒有經驗的開發新手,也可跨越式前進,在移動軟件領域大顯身手。
● 分享Flutter提供的各種快捷的現代方法,使用熱重載、富有表現力的靈活UI、快速流暢的動畫進行開發。
● 揭示加快開發應用的訣竅:將用於跨平臺應用的所有代碼保持在單個代碼庫 中。
● 本書示例豐富,呈現解決常見問題的多種妙招。
目錄大綱
目 錄
第 I 部分 Flutter編程基礎
第1章 Flutter入門 3
1.1 Flutter簡介 4
1.2 理解Widget生命周期事件 5
1.2.1 StatelessWidget生命周期 5
1.2.2 StatefulWidget生命周期 6
1.3 理解Widget樹和Element樹 8
1.3.1 StatelessWidget和Element樹 9
1.3.2 StatefulWidget和Element樹 10
1.4 安裝Flutter SDK 13
1.4.1 在macOS上進行安裝 13
1.4.2 在Windows上進行安裝 15
1.4.3 在Linux上進行安裝 17
1.5 配置Android Studio編輯器 19
1.6 本章小結 20
1.7 本章知識點回顧 20
第2章 創建一個Hello World應用 23
2.1 設置項目 23
2.2 使用熱重載 27
2.3 使用主題將應用樣式化 30
2.3.1 使用全局應用主題 30
2.3.2 將主題用於應用的局部 32
2.4 理解StatelessWidget和StatefulWidget 34
2.5 使用外部包 36
2.5.1 搜索包 36
2.5.2 使用包 37
2.6 本章小結 38
2.7 本章知識點回顧 38
第3章 學習Dart基礎知識 39
3.1 為何使用Dart? 39
3.2 代碼註釋 40
3.3 運行main()入口點 41
3.4 變量引用 41
3.5 變量聲明 42
3.5.1 數字 43
3.5.2 String 43
3.5.3 Boolean 43
3.5.4 List 44
3.5.5 Map 44
3.5.6 Runes 45
3.6 使用運算符 45
3.7 使用流程語句 47
3.7.1 if和else 47
3.7.2 三元運算符 48
3.7.3 for循環 48
3.7.4 while和do-while 49
3.7.5 while和break 50
3.7.6 continue 50
3.7.7 switch和case 51
3.8 使用函數 52
3.9 導入包 53
3.10 使用類 54
3.10.1 類繼承 57
3.10.2 類混合 57
3.11 實現異步編程 58
3.12 本章小結 59
3.13 本章知識點回顧 60
第4章 創建一個初學者項目模板 61
4.1 創建和組織文件夾與文件 61
4.2 結構化Widget 64
4.3 本章小結 69
4.4 本章知識點回顧 70
第5章 理解Widget樹 71
5.1 Widget介紹 71
5.2 構建完整的Widget樹 73
5.3 構建淺層Widget樹 80
5.3.1 使用常量進行重構 80
5.3.2 使用方法進行重構 81
5.3.3 使用Widget類進行重構 87
5.4 本章小結 95
5.5 本章知識點回顧 95
第 II 部分 充當媒介的Flutter:具象化一個應用
第6章 使用常用Widget 99
6.1 使用基礎Widget 99
6.1.1 SafeArea 103
6.1.2 Container 104
6.1.3 Text 108
6.1.4 RichText 109
6.1.5 Column 111
6.1.6 Row 112
6.1.7 Button 117
6.2 使用圖片和圖標 129
6.2.1 AssetBundle 129
6.2.2 Image 129
6.2.3 Icon 131
6.3 使用裝飾 134
6.4 使用Form Widget驗證文本框 139
6.5 檢查設備方向 143
6.6 本章小結 150
6.7 本章知識點回顧 150
第7章 為應用添加動畫效果 151
7.1 使用AnimatedContainer 151
7.2 使用AnimatedCrossFade 155
7.3 使用AnimatedOpacity 160
7.4 使用AnimationController 164
7.5 本章小結 175
7.6 本章知識點回顧 176
第8章 創建應用的導航 177
8.1 使用Navigator 178
8.2 使用Hero(飛行)動畫 189
8.3 使用BottomNavigationBar 194
8.4 使用BottomAppBar 201
8.5 使用TabBar和TabBarView 205
8.6 使用Drawer和ListView 211
8.7 本章小結 221
8.8 本章知識點回顧 222
第9章 創建滾動列表和效果 223
9.1 使用Card 223
9.2 使用ListView和ListTile 225
9.3 使用GridView 232
9.3.1 使用GridView.count 234
9.3.2 使用GridView.extent 235
9.3.3 使用GridView.builder 236
9.4 使用Stack 240
9.5 使用Sliver(薄片)自定義CustomScrollView 247
9.6 本章小結 256
9.7 本章知識點回顧 256
第10章 構建佈局 257
10.1 佈局的概要視圖 257
10.1.1 天氣區域佈局 259
10.1.2 標簽佈局 259
10.1.3 頁腳圖片佈局 260
10.1.4 最終佈局 260
10.2 創建佈局 261
10.3 本章小結 269
10.4 本章知識點回顧 269
第11章 應用交互性 271
11.1 設置GestureDetector:基本處理 271
11.2 實現Draggable和DragTarget Widget 278
11.3 使用GestureDetector檢測移動和縮放 282
11.4 使用InkWell和InkResponse手勢 293
11.5 使用Dismissible Widget 299
11.6 本章小結 306
11.7 本章知識點回顧 307
第12章 編寫平臺原生代碼 309
12.1 理解平臺通道 309
12.2 實現客戶端平臺通道應用 310
12.3 實現iOS主機端平臺通道 315
12.4 實現Android主機端平臺通道 319
12.5 本章小結 323
12.6 本章知識點回顧 324
第 III 部分 創建可用於生產環境的應用
第13章 使用本地持久化保存數據 327
13.1 理解JSON格式 328
13.2 使用數據庫類來寫入、讀取和序列化JSON 330
13.3 格式化日期 331
13.4 對日期列表進行排序 332
13.5 使用FutureBuilder檢索數據 333
13.6 構建日記應用 335
13.6.1 添加日記數據庫類 339
13.6.2 添加日記條目頁 345
13.6.3 完成日記主頁面 362
13.7 本章小結 377
13.8 本章知識點回顧 378
第14章 添加Firebase和Firestore後端 381
14.1 Firebase和Cloud Firestore是什麽? 382
14.1.1 對Cloud Firestore進行結構化和數據建模 383
14.1.2 查看Firebase身份驗證能力 385
14.1.3 查看Cloud Firestore安全規則 387
14.2 配置Firebase項目 388
14.3 添加一個Cloud Firestore數據庫並實現安全規則 395
14.4 構建客戶端日記應用 398
14.4.1 將身份驗證和Cloud Firestore包添加到客戶端應用 399
14.4.2 為客戶端應用添加基礎佈局 405
14.4.3 為客戶端應用添加類 409
14.5 本章小結 412
14.6 本章知識點回顧 413
第15章 為Firestore客戶端應用添加狀態管理 415
15.1 實現狀態管理 416
15.1.1 實現一個抽象類 417
15.1.2 實現InheritedWidget 419
15.1.3 實現模型類 420
15.1.4 實現服務類 421
15.1.5 實現BLoC模式 422
15.1.6 實現StreamController、Stream、Sink和StreamBuilder 423
15.2 構建狀態管理 425
15.2.1 添加Journal模型類 427
15.2.2 添加服務類 428
15.2.3 添加Validators類 435
15.2.4 添加BLoC模式 436
15.3 本章小結 455
15.4 本章知識點回顧 455
第16章 為Firestore客戶端應用頁面添加BLoC 457
16.1 添加登錄頁 458
16.2 修改主頁面 464
16.3 修改主頁 468
16.4 添加編輯日記頁面 476
16.5 本章小結 489
16.6 本章知識點回顧 490
作者介紹
Marco L. Napoli
是Pixolini有限公司的CEO,也是一位經驗豐富的移動端、Web和桌面端應用開發者。
他在可視化開發優雅美觀且易於使用的系統方面已得到了業內的廣泛認可。
早在2008年他就編寫了自己的s個原生iOS應用。
www.pixolini.com上展示了其工作成果和已發布的應用。
Marco兒時就迷戀上了計算機。
他的父親注意到了這一點並給他買了一台PC(個人計算機),從那時起他就開始開發軟件了。
他曾就讀於邁阿密大學攻讀建築學學位,但當時他就已經開始經營自己的商業業務了,並在四年後他認定建築學並不適合自己。
他為各種各樣的行業開發過系統,其中包括銀行業、醫療保健行業、房地產行業、教育行業、貨運業、娛樂業等。
不久之後,一家業內領先的銀行業軟件公司收購了他的MLN Enterprises公司。
MLN Enterprises公司的主要產品是抵押貸款銀行業務軟件、運算處理業務軟件以及市場營銷軟件。
接下來,他開啟了諮詢顧問的生涯,並在不久後創建了IdeaBlocks有限公司。
該公司的主營業務是軟件開發諮詢,曾經為一個銷售酒店服務軟件的客戶開發了移動端、桌面端和Web平台,
主要產品包括酒店營銷軟件、餐飲軟件、網絡空間軟件、客戶服務軟件以及維護軟件;
這些產品通過雲服務器使用Microsoft SQL Server和應用於敏感數據的加密處理進行數據同步。
其客戶端的用戶包括凱悅嘉軒&嘉寓酒店、希爾頓酒店、假日酒店、希爾頓歡朋酒店、萬豪酒店、
貝斯特韋斯特酒店、麗笙酒店、喜來登酒店、豪生酒店、希爾頓合博套房酒店等。
在該公司的合同都完成後,他就關閉了IdeaBlocks。
如今,他將重心放在Pixolini的運營上。
Pixolini開發了用於iOS、macOS、Android、Windows以及Web的移動端、桌面端和Web應用。
他同時也在Udemy在線教育網站上授課,主要講解如何使用他開發的一款Web應用來分析房地產投資。
他已經開發並在各大應用商店中發布了十幾款應用。
“離開了意大利的特濃咖啡卡布奇諾,我就無法寫代碼了,並且我熱愛中國武術。”
Marco和妻子Carla共同養育了三個出色的孩子。