買這商品的人也買了...
-
$414深入理解 Android 網絡編程-技術詳解與最佳實踐 -
$534Android 深度探索(捲 2)-系統應用源代碼分析與 ROM 定製(附光盤) -
$534Android 安全攻防權威指南 -
Python 駭客密碼|加密、解密與破解實例應用 Cracking Codes with Python$520$468 -
$330網絡設備配置與調試項目實訓(第4版) -
Oracle 19c 從入門到精通 (視頻教學超值版)$534$507 -
$300反爬蟲 AST 原理與還原混淆實戰 (微課視頻版) -
突破困境!企業開源虛擬化管理平台:使用 Proxmox Virtual Environment (iThome鐵人賽系列書)$620$527 -
建構微服務|設計細微化的系統, 2/e (Building Microservices: Designing Fine-Grained Systems, 2/e)$880$695 -
$652Azure、DevOps 和微服務軟件架構實戰, 2/e -
$300Docker 快速入門 -
GitLab CI/CD 從入門到實戰$479$455 -
ASP.NET Core 7 MVC 跨平台範例實戰演練$860$679 -
$331Web 滲透測試與防護 (慕課版) -
ASP.NET Core + Vue.js 全棧開發訓練營$594$564 -
$458C# 項目開發全程實錄, 5/e -
大數據 SQL 優化 : 原理與實踐$594$564 -
C# 12 和.NET 8 入門與跨平臺開發, 8/e$1,188$1,128 -
ASP.NET MVC 高效構建 Web 應用$834$792 -
$414惡意代碼分析與檢測技術 -
Web 漏洞分析與防範實戰:卷2$774$735 -
微服務架構設計與實戰$594$564 -
$336Bootstrap 響應式網站開發任務式教程 (微課版) -
7天上手!駭客特訓班 - 使用 TryHackMe$520$410 -
$600解決問題的流程
相關主題
商品描述
本書是一本系統且實用的Flutter全棧開發指南,內容涵蓋Flutter框架原理、Dart語言核心特性和開發環境搭建等基礎知識,以及UI構建、路由管理、動畫處理與網絡請求等關鍵技術講解。同時,本書通過一個完整的圖書閱讀App項目,實戰演示企業級架構設計、狀態管理和混合開發方案,並引入測試驅動開發(TDD)提升代碼質量。全書理論結合實戰,致力於幫助讀者從零掌握商業級應用開發全流程。
本書適合移動開發初學者及希望系統提升Flutter技術能力的工程師閱讀學習。
目錄大綱
第1章 Flutter簡介001
1.1 跨端技術的發展歷史002
1.1.1 原生開發002
1.1.2 Hybrid 003
1.1.3 中間層開發+原生渲染005
1.1.4 自渲染框架006
1.2 Flutter 是什麼009
1.2.1 為什麼是Dart 009
1.2.2 Flutter 的框架結構012
1.2.3 Flutter App 結構剖析014
1.2.4 聲明式、響應式UI 014
第2章 Flutter開發環境搭建018
2.1 安裝必要的軟件工具019
2.1.1 系統要求019
2.1.2 安裝Java 019
2.1.3 安裝Android Studio 019
2.1.4 安裝Android SDK 019
2.1.5 安裝Flutter SDK 020
2.1.6 安裝Flutter 開發插件020
2.2 運行App 及問題排查021
2.2.1 創建第一個Flutter 項目021
2.2.2 真機運行App 022
2.2.3 Flutter 環境問題排查023
2.2.4 Android 原生問題排查024
2.3 Android 模擬器使用方法024
第3章 Dart語言基礎026
3.1 Dart 簡介027
3.2 DartPad 027
3.3 重要概念027
3.3.1 註釋027
3.3.2 萬物皆對象029
3.3.3 強類型語言029
3.3.4 泛型029
3.3.5 全局函數030
3.3.6 全局變量030
3.3.7 成員訪問控制030
3.3.8 空安全031
3.4 內置類型031
3.4.1 數字032
3.4.2 字符串032
3.4.3 布爾類型034
3.4.4 數組035
3.4.5 Set 036
3.4.6 Map 037
3.5 變量和常量039
3.5.1 變量定義039
3.5.2 變量初始化041
3.5.3 常量042
3.6 函數(基本語法) 042
3.6.1 函數的兩種形式042
3.6.2 參數043
3.6.3 Lambda 表達式044
3.6.4 返回值045
3.7 運算符045
3.7.1 運算符的優先級及關聯性045
3.7.2 類型判斷運算符046
3.7.3 賦值運算符046
3.7.4 條件表達式047
3.8 流程控制047
3.8.1 條件語句047
3.8.2 循環語句050
3.8.3 跳轉語句050
3.8.4 斷言051
3.9 異常處理051
3.9.1 拋出異常051
3.9.2 捕獲異常052
3.9.3 finally 053
3.9.4 自定義異常053
3.10 面向對象編程054
3.10.1 類和對象054
3.10.2 繼承057
3.10.3 對象中的方法059
3.10.4 抽象類061
3.10.5 接口063
3.10.6 類擴展065
3.10.7 Mixin 067
3.10.8 靜態變量和方法071
3.10.9 枚舉072
3.10.10 泛型074
3.11 函數式編程076
3.11.1 什麼是函數式編程076
3.11.2 Dart 語言中的函數式特性076
3.11.3 可疊代集合078
3.12 空安全080
3.12.1 為什麼要設計空安全081
3.12.2 空安全的邏輯081
3.12.3 非空類型體系中的限制081
3.12.4 可空類型085
3.13 異步和流088
3.13.1 異步與並發的區別088
3.13.2 Future 088
3.13.3 async 和await 092
3.13.4 Dart 異步實現原理094
3.13.5 Stream 094
3.14 並發112
3.14.1 isolate 基本概念112
3.14.2 主isolate 113
3.14.3 後臺isolate 113
3.15 庫和可見性116
3.15.1 使用庫116
3.15.2 實現庫117
3.16 高效Dart 語言指南118
3.16.1 代碼風格119
3.16.2 設計模式120
3.16.3 性能優化120
3.16.4 錯誤處理121
3.16.5 測試121
第4章 Flutter開發基礎122
4.1 基礎概念123
4.1.1 Flutter 項目目錄結構123
4.1.2 聲明式UI 124
4.1.3 萬物皆Widget 124
4.1.4 Flutter 項目的代碼結構126
4.1.5 Material Design 簡介128
4.2 常用組件129
4.2.1 基礎組件130
4.2.2 裝飾組件145
4.2.3 布局組件154
4.2.4 可滾動組件167
4.2.5 自定義組件初探:StatelessWidget 和StatefulWidget 183
4.2.6 Flutter 渲染原理初探189
4.2.7 功能型組件190
4.3 路由管理198
4.3.1 定義頁面198
4.3.2 路由管理器199
4.3.3 匿名路由199
4.3.4 命名路由200
4.3.5 動態生成路由202
4.3.6 對話框204
4.4 手勢識別與事件處理208
4.4.1 常用手勢識別208
4.4.2 手勢識別原理211
4.5 通知215
4.5.1 Notification 的使用方法215
4.5.2 實際應用場景217
4.6 動畫219
4.6.1 動畫基本原理219
4.6.2 動畫速度曲線221
4.6.3 Transition 動畫222
4.6.4 屬性切換動畫223
4.6.5 疊加動畫225
4.6.6 交織動畫227
4.6.7 路由切換動畫229
4.6.8 Hero 動畫231
4.6.9 動畫監聽233
4.7 Flutter 渲染原理235
4.7.1 顯示器、GPU、CPU 和操作系統235
4.7.2 Flutter UI 框架236
4.7.3 傳說中的三棵樹(Framework 內部原理) 237
4.7.4 布局約束241
4.8 自定義組件259
4.8.1 CustomPaint 組件259
4.8.2 CustomPainter 繪制器260
4.8.3 包含 child 的場景262
4.8.4 使用RepaintBoundary 避免重繪263
4.9 網絡請求264
4.9.1 dio 庫264
4.9.2 搭建mock 服務器267
4.9.3 json 數據解析269
第5章 實戰項目說明272
5.1 項目UI 273
5.1.1 發現頁273
5.1.2 書架頁274
5.1.3 個人中心頁275
5.2 標註講解276
5.2.1 密度無關像素:dp 276
5.2.2 字體尺寸的處理277
5.2.3 顏色代碼278
第6章 架構設計279
6.1 業務邏輯分層280
6.1.1 數據層:構建可靠的數據基礎設施282
6.1.2 邏輯層287
6.1.3 UI 層289
6.2 輔助功能292
6.2.1 日誌管理模塊292
6.2.2 路由管理增強293
6.2.3 異常捕獲體系294
第7章 實戰項目啟動296
7.1 項目初始化297
7.1.1 目錄結構設計297
7.1.2 命名路由配置298
7.1.3 設置狀態欄樣式298
7.2 App 首頁框架299
7.3 搜索欄組件301
7.4 發現頁303
7.4.1 卡片封裝303
7.4.2 發現頁面306
第8章 個人中心頁面308
8.1 個人中心頁面工作流程309
8.1.1 工作流程描述309
8.1.2 使用Mockoon 模擬接口309
8.2 開發個人中心頁面310
8.2.1 創建用戶模型310
8.2.2 定義頁面狀態310
8.2.3 定義個人中心頁面Bloc 311
8.2.4 實現個人中心頁面312
第9章 書架頁面315
9.1 書架頁面業務邏輯316
9.1.1 書架頁數據結構316
9.1.2 本地緩存方案316
9.1.3 在書架頁面中使用KeyValueStorage 317
9.2 書架頁面UI 開發319
第10章 閱讀頁面322
10.1 如何找到合適的三方庫325
10.2 集成epub_view 326
10.3 封裝三方庫328
10.3.1 BookReader 組件328
10.3.2 BookReaderPage 頁面331#VH AA
第11章 Bug分析及調試334
11.1 常見Bug 示例335
11.1.1 UI 布局問題335
11.1.2 狀態管理問題335
11.1.3 異步操作問題336
11.2 建立Bug 的系統思考框架338
11.2.1 發現Bug 的時機338
11.2.2 不同時機發現Bug 的處理思路338
11.3 調試工具的使用340
11.3.1 Flutter Inspector 340
11.3.2 通過IDE 調試器調試應用341
第12章 混合開發方案設計346
12.1 為什麼要混合開發347
12.2 Flutter 與原生系統通信的兩種方式347
12.2.1 通過dart 的FFI 調用C/C++代碼347
12.2.2 通過MethodChannel 調用平臺原生代碼349
12.2.3 FFI 與MethodChannel 對比351
12.3 混合開發的三種模式351
12.3.1 通過Dart 的FFI 調用本地代碼351
12.3.2 通過PlatformView 在Flutter 頁面中展示原生視圖351
12.3.3 Flutter 加原生混合開發模式352
第13章 測試驅動開發359
13.1 為什麼要做TDD 360
13.1.1 瀑布模型的問題360
13.1.2 TDD 如何做的361
13.1.3 TDD 的核心價值362
13.2 Flutter 中的TDD 方案設計363
13.2.1 Flutter 中單元測試的特點363
13.2.2 架構與TDD 的測試範圍363
13.3 Flutter 單元測試框架365
13.3.1 Dart 單元測試366
13.3.2 Widget 組件測試372
13.3.3 集成測試378
13.3.4 構建你的測試策略378
13.4 實戰案例:購物車頁面開發378
13.4.1 需求描述378
13.4.2 將需求拆解為任務379
13.4.3 任務拆解為測試用例379
13.4.4 紅燈、綠燈、重構380
13.4.5 集成與端到端測試382
