Flutter2 開發實例精解 Flutter Cookbook

[美]西蒙·亞歷山大 等著 於鑫睿 譯

  • Flutter2 開發實例精解-preview-1
  • Flutter2 開發實例精解-preview-2
  • Flutter2 開發實例精解-preview-3
Flutter2 開發實例精解-preview-1

買這商品的人也買了...

商品描述

《Flutter2開發實例精解》詳細闡述了與Flutter 2相關的基本解決方案,主要包括Dart編程語言、微件簡介、佈局和微件樹、向應用程序中添加交互性和導航、基本的狀態管理、異步編程、基於互聯網的數據持久化和通信、基於流的高級狀態管理、使用Flutter包、向應用程序中添加動畫、使用Firebase、基於Firebase ML Kit的機器學習、發布移動應用程序、Flutter Web和桌面應用程序等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。

目錄大綱

目    錄

第1章  開啟Flutter之旅 1

1.1  技術需求 2

1.2  如何使用Git管理Flutter SDK 2

1.3  設置命令行並保存路徑變量 3

1.4  使用Flutter Doctor檢查配置環境 6

1.5  配置iOS SDK 7

1.6  配置Android SDK 11

1.7  選擇IDE/編輯器 16

1.8  選擇正確的通道 19

1.9  創建Flutter應用程序 20

1.10  本章小結 28

第2章  Dart編程語言 29

2.1  技術需求 29

2.2  聲明變量—var、final和const 30

2.3  字符串和字符串插值 35

2.4  編寫函數 40

2.5  利用閉包將函數用作變量 44

2.6  創建類並使用類構造函數的簡潔形式 46

2.7  利用集合分組和操控數據 49

2.8  利用高階函數編寫較少的代碼 54

2.9  使用級聯運算符(..)實現構建器模式 62

2.10  Dart語言中的空安全 65

第3章  微件簡介 73

3.1  技術需求 73

3.2  創建不可變的微件 73

3.3  使用Scaffold 79

3.4  使用Container微件 85

3.5  在屏幕上輸出樣式文本 90

3.6  向應用程序中導入字體和圖像 96

第4章  佈局和微件樹 101

4.1  逐個放置微件 101

4.2  基於Flexible和Expanded微件的成比例間距 108

4.3  利用CustomPaint繪制形狀 116

4.4  嵌套的復雜微件樹 122

4.5  重構微件樹以改進可讀性 127

4.6  應用全局主題 133

第5章  向應用程序中添加交互性和導航 141

5.1  向應用程序中添加狀態 141

5.2  與按鈕交互 147

5.3  生成滾動效果 151

5.4  利用列表構造器處理大型數據集 157

5.5  處理TextField 160

5.6  導航至下一個屏幕 166

5.7  通過名稱調用導航路由 168

5.8  在屏幕上顯示對話框 171

5.9  顯示底部動作條 176

第6章  基本的狀態管理 181

6.1  技術需求 181

6.2  模型-視圖分離 181

6.3  利用InheritedWidget管理數據層 188

6.4  在多個屏幕間使得應用程序狀態可見 192

6.5  設計n層框架(第1部分)—控制器 196

6.6  設計n層框架(第2部分)—存儲庫 202

6.7  設計n層框架(第3部分)—服務 205

第7章  異步編程 213

7.1  技術需求 213

7.2  使用Future 214

7.3  使用async/await移除回調 220

7.4  完成Future 223

7.5  同時引發多個Future 226

7.6  處理異步代碼中的錯誤 228

7.7  基於StatefulWidget的Future應用 231

7.8  使用FutureBuilder管理Future 234

7.9  將導航路由轉換為異步函數 236

7.10  從對話框中獲取結果 240

第8章  基於互聯網的數據持久化和通信 245

8.1  技術需求 245

8.2  將Dart模型轉換為JSON格式 246

8.3  處理與模型不兼容的JSON模式 256

8.4  捕捉常見的JSON錯誤 262

8.5  簡單地利用SharedPreferences保存數據 264

8.6  訪問文件系統(第1部分)—path_provider 269

8.7  訪問文件系統(第2部分)—與目錄協同工作 272

8.8  使用安全存儲保存數據 276

8.9  設計HTTP客戶端並獲取數據 279

8.10  POST數據 285

8.11  PUT數據 292

8.12  DELETE數據 295

第9章  基於流的高級狀態管理 299

9.1  技術需求 299

9.2  如何使用Dart流 300

9.3  使用流控制器和接收器 305

9.4  將數據轉換註入流中 310

9.5  訂閱流事件 313

9.6  支持多重流訂閱 317

9.7  使用StreamBuilder創建響應式用戶界面 320

9.8  使用BLoC模式 324

第10章  使用Flutter包 331

10.1  技術需求 332

10.2  導入包和依賴項 332

10.3  創建自己的包(第1部分) 335

10.4  創建自己的包(第2部分) 341

10.5  創建自己的包(第3部分) 343

10.6  向谷歌地圖中添加應用程序 346

10.7  使用位置服務 351

10.8  向應用程序中添加標記 354

第11章  向應用程序中添加動畫 359

11.1  創建基本的容器動畫 359

11.2  設計動畫(第1部分)—VSync和AnimationController 364

11.3  設計動畫(第2部分)—添加多重動畫 369

11.4  設計自己的動畫(第3部分)—曲線 371

11.5  優化動畫 374

11.6  使用Hero動畫 376

11.7  使用預置動畫轉變 381

11.8  使用AnimatedList微件 385

11.9  利用Dismissible微件實現滑動手勢 391

11.10  使用Flutter動畫包 394

第12章  使用Firebase 399

12.1  配置Firebase應用程序 399

12.2  創建登錄表單 404

12.3  添加谷歌Sign-in 413

12.4  集成Firebase Analytics 419

12.5  使用Firebase Cloud Firestore 424

12.6  利用Firebase Cloud Messaging(FCM)發送Push Notifications 430

12.7  將文件存儲至雲端 434

第13章  基於Firebase ML Kit的機器學習 441

13.1  使用設備的攝像頭 441

13.2  從圖像中識別文本 450

13.3  讀取條形碼 454

13.4  圖像標記功能 456

13.5  構建面部檢測器並檢測面部表情 459

13.6  識別語言 463

13.7  使用TensorFlow Lite 467

第14章  發布移動應用程序 473

14.1  技術需求 474

14.2  在App Store Connect上註冊iOS應用程序 474

14.3  在Google Play上註冊Android應用程序 478

14.4  安裝和配置fastlane 480

14.5  生成iOS代碼簽名許可證書和配置文件 484

14.6  生成Android發布許可證書 486

14.7  自動遞增Android版本號 488

14.8  配置應用程序元數據 491

14.9  向應用程序中添加圖標 493

14.10  在Google Play Store中發布應用程序的beta版本 495

14.11  使用TestFlight發布iOS應用程序的beta版本 498

14.12  將應用程序發布至應用程序商店中 501

第15章  Flutter Web和桌面應用程序 503

15.1  利用Flutter Web創建響應式應用程序 503

15.2  在macOS上運行應用程序 512

15.3  在Windows上運行應用程序 515

15.4  部署Flutter站點 517

15.5  響應Flutter桌面中的鼠標事件 520

15.6  與桌面菜單交互 524