總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
 
 
 
 
Flutter技術入門與實戰(附線上配套資源)
 作  者: 亢少軍
 出版單位: 機械工業
 出版日期: 2019.01
 進貨日期: 2019/3/21
 ISBN: 9787111617976
 開  本: 16 開    
 定  價: 593
 售  價: 474
  會 員 價: 435
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

本書由資深架構師撰寫,非常詳細地講解Flutter基本概念和使用技巧。既有基礎知識,又有豐富示例,並包括詳細案例的操作步驟,實操性強。還提供了配套網站提供完整案例代碼和視頻課程,可?明讀者輕鬆掌握基礎知識,快速進入實戰。本書共16章。第1-7章介紹Flutter的基本概念,以及組件與佈局,第8~16章介紹Flutter的高級用法,包括手勢、路由、裝飾、動畫、外掛程式開發、工具使用、測試與發佈,以及綜合案例。


內容簡介:

第1章介紹Flutter的基本概念,並搭建一個Flutter程式,來感受一下Flutter之美。

第2章介紹幾個重要知識點,如入口程式、Material Design、Flutter主題、無狀態元件和有狀態元件、使用包資源、Http請求。

第3章簡單介紹Dart語言。Dart語言是Flutter SDK指定的語言,我們很有必要補充一下它的基礎知識,包括語法特性、基本語句、物件導向等。

第4章介紹常用組件。Flutter裡有一個非常重要的核心理念:一切皆為元件,本章主要講解開發中用得*頻繁的元件,如容器元件、圖片元件、文本元件、圖示元件和表單元件等。

第5章介紹Material Design風格的元件,Material Design風格是一種非常有質感的設計風格,並提供一些默認的交互動畫。本章將分類介紹這些組件。

第6章介紹Cupertino風格的組件,這是一類iOS風格的組件,如CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView等。

第7章介紹頁面配置的基礎知識和技巧,如基礎佈局處理、寬高尺寸處理、清單及表格佈局等,*後通過一個綜合佈局示例來演示如何編寫複雜的頁面。

第8章介紹如何處理手勢,如輕擊、拖動和縮放等。Flutter中提供GestureDetector進行手勢檢測,並為手勢檢測提供了相應的監聽。

第9章介紹如何載入、處理、展示資源和圖片,如添加資源和圖片、自訂字體等。

第10章介紹路由及導航是如何處理的,包括頁面的渲染以及資料傳遞。

第11章介紹元件裝飾和視覺效果的處理,如Opacity(透明度處理)、DecoratedBox(裝飾盒子)、RotatedBox(旋轉盒子)、Clip(剪裁處理)和CustomPainter(自訂畫板)。

第12章介紹動畫效果的製作,包含兩個動畫元件的使用:用AnimatedOpacity實現漸變效果、用Hero實現頁面切換動畫。

第13章介紹Flutter外掛程式開發的入門知識。Flutter外掛程式可以和原生程式打交道,比如調用藍牙、啟用WIFI、打開手電筒,等等。

第14章介紹開發工具及使用技巧,介紹幾款常用的IDE工具,從代碼的編寫、協助工具、程式調試、性能分析等多方面講解工具及使用技巧。

第15章介紹測試與發佈應用,包括:測試應用、發佈Android版和iOS版App。

第16章通過一個綜合案例介紹如何使用Flutter實現即時通訊App的介面。


作者簡介:

亢少軍

捷智雲視訊會議系統聯合創始人,從事流媒體技術研發工作多年,對於Android、iOS等開發技術有比較深入的研究和應用,作為主要程式師開發了多個應用專案,涉及醫療、交通、銀行等領域。


圖書目錄:

前言

第1章 開啟Flutter之旅 1

1.1 Flutter的特點與核心概念 1

1.1.1 一切皆為組件 2

1.1.2 組件嵌套 2

1.1.3 構建Widget 3

1.1.4 處理用戶交互 4

1.1.5 什麼是狀態 4

1.1.6 分層的框架 5

1.2 開發環境搭建 5

1.2.1 Windows環境搭建 5

1.2.2 MacOS環境搭建 11

1.3 第一個Flutter程式 17

第2章 Flutter基礎知識 23

2.1 入口程式 23

2.2 Material Design設計風格 24

2.3 Flutter主題 24

2.3.1 創建應用主題 24

2.3.2 局部主題 26

2.3.3 使用主題 27

2.4 無狀態元件和有狀態元件 28

2.5 使用包資源 31

2.6 Http請求 34

第3章 Dart語言簡述 40

3.1 Dart重要概念與常用開發庫 40

3.2 變數與基底資料型別 43

3.3 函數 46

3.4 運運算元 47

3.5 流程控制語句 51

3.6 異常處理 54

3.7 物件導向 55

3.7.1 產生實體成員變數 55

3.7.2 構造函數 56

3.7.3 讀取和寫入物件 57

3.7.4 重載操作 58

3.7.5 繼承類 59

3.7.6 抽象類別 60

3.7.7 枚舉類型 62

3.7.8 Mixins 62

3.8 泛型 63

3.9 庫的使用 64

3.10 非同步支援 65

3.11 中繼資料 65

3.12 注釋 67

第4章 常用組件 68

4.1 容器組件 68

4.2 圖片元件 70

4.3 文本元件 72

4.4 圖示及按鈕元件 74

4.4.1 圖示元件 74

4.4.2 圖示按鈕元件 75

4.4.3 凸起按鈕元件 77

4.5 清單組件 78

4.5.1 基礎清單組件 78

4.5.2 水準清單組件 80

4.5.3 長清單組件 82

4.5.4 網格清單組件 83

4.6 表單組件 84

第5章 MaterialDesign風格組件 88

5.1 App結構和導航元件 89

5.1.1 MaterialApp(應用組件) 89

5.1.2 Scaffold(腳手架組件) 94

5.1.3 AppBar(應用按鈕元件) 95

5.1.4 BottomNavigationBar(底部

導航條組件) 97

5.1.5 TabBar(水準選項卡及視圖

元件) 99

5.1.6 Drawer(抽屜組件) 104

5.2 按鈕和提示元件 107

5.2.1 FloatingActionButton(懸停

按鈕元件) 107

5.2.2 FlatButton(扁平按鈕元件) 109

5.2.3 PopupMenuButton(彈出功能表

元件) 110

5.2.4 SimpleDialog(簡單對話方塊

元件) 112

5.2.5 AlertDialog(提示對話方塊

組件) 113

5.2.6 SnackBar(輕量提示組件) 115

5.3 其他組件 116

5.3.1 TextField(文字方塊組件) 117

5.3.2 Card(卡片元件) 119

第6章 Cupertino風格組件 122

6.1 CupertinoActivityIndicator

組件 122

6.2 CupertinoAlertDialog對話方塊

組件 123

6.3 CupertinoButton按鈕元件 124

6.4 Cupertino導航組件集 125

第7章 頁面配置 132

7.1 基礎佈局處理 133

7.1.1 Container(容器佈局) 133

7.1.2 Center(居中佈局) 137

7.1.3 Padding(填充佈局) 138

7.1.4 Align(對齊佈局) 140

7.1.5 Row(水準佈局) 143

7.1.6 Column(垂直佈局) 144

7.1.7 FittedBox(縮放佈局) 146

7.1.8 Stack/Alignment 149

7.1.9 Stack/Positioned 151

7.1.10 IndexedStack 153

7.1.11 OverflowBox溢出父容器

顯示 155

7.2 寬高尺寸處理 156

7.2.1 SizedBox(設置具體尺寸) 156

7.2.2 ConstrainedBox(限定最大

最小寬高佈局) 158

7.2.3 LimitedBox(限定最大寬

高佈局) 159

7.2.4 AspectRatio(調整寬高比) 160

7.2.5 FractionallySizedBox(百分比

佈局) 162

7.3 清單及表格佈局 163

7.3.1 ListView 164

7.3.2 GridView 166

7.3.3 Table 167

7.4 其他佈局處理 169

7.4.1 Transform(矩陣轉換) 169

7.4.2 Baseline(基準線佈局) 171

7.4.3 Offstage(控制是否顯示

元件) 172

7.4.4 Wrap(按寬高自動換行

佈局) 174

7.5 佈局綜合示例 177

7.5.1 佈局分析 177

7.5.2 準備素材 179

7.5.3 編寫代碼 180

第8章 手勢 185

8.1 用GestureDetector進行手勢

檢測 185

8.2 用Dismissible實現滑動刪除 187

第9章 資源和圖片 190

9.1 添加資源和圖片 190

9.1.1 指定assets 190

9.1.2 載入assets 191

9.1.3 平臺assets 193

9.2 自訂字體 195

第10章 路由及導航 198

10.1 頁面跳轉基本使用 198

10.2 頁面跳轉發送資料 201

10.3 頁面跳轉返回資料 204

第11章 元件裝飾和視覺效果 208

11.1 Opacity(透明度處理) 208

11.2 DecoratedBox(裝飾盒子) 210

11.3 RotatedBox(旋轉盒子) 217

11.4 Clip(剪裁處理) 217

11.5 案例—自訂畫板 222

第12章 動畫 241

12.1 用AnimatedOpacity實現漸變

效果 241

12.2 用Hero實現頁面切換動畫 243

第13章 Flutter外掛程式開發 246

13.1 新建外掛程式 246

13.2 運行外掛程式 249

13.3 示例代碼分析 250

第14章 開發工具及使用技巧 259

14.1 IDE整合式開發環境 259

14.1.1 Android Studio / IntelliJ 259

14.1.2 Visual Studio Code 267

14.2 Flutter SDK 274

14.3 使用熱重載 275

14.4 格式化代碼 276

14.5 Flutter元件檢查器 278

第15章 測試與發佈應用 281

15.1 測試應用 281

15.1.1 簡介 281

15.1.2 單元測試 282

15.1.3 Widget測試 283

15.1.4 集成測試 284

15.2 發佈Android版App 286

15.2.1 檢查App Manifest 287

15.2.2 查看構建配置 287

15.2.3 添加啟動圖示 288

15.2.4 App簽名 290

15.2.5 構建發佈版APK並安裝在

設備上 291

15.3 發佈iOS版App 291

15.3.1 準備工作 291

15.3.2 在iTunes Connect上註冊

應用程式 292

15.3.3 註冊一個Bundle ID 292

15.3.4 在iTunes Connect上創建

應用程式記錄 293

15.3.5 查看Xcode專案設置 294

15.3.6 添加應用程式圖示 295

15.3.7 準備發佈版本 297

15.3.8 將應用發佈到App Store 300

第16章 綜合案例—即時通訊App

介面實現 301

16.1 項目介紹 301

16.2 項目搭建 302

16.2.1 新建項目 302

16.2.2 添加源碼目錄及檔 305

16.3 入口程式 306

16.4 載入頁面 307

16.5 應用頁面 309

16.6 搜尋網頁面 316

16.6.1 佈局拆分 316

16.6.2 請求獲取焦點 316

16.6.3 自訂TouchCallBack

組件 316

16.6.4 返回文本元件 318

16.6.5 組裝實現搜尋網頁面 318

16.7 聊天頁面 321

16.7.1 準備聊天消息資料 321

16.7.2 聊天消息清單項實現 322

16.7.3 聊天消息清單實現 325

16.8 好友頁面 325

16.8.1 準備好友清單資料 326

16.8.2 好友列表項實現 327

16.8.3 好友列表頭實現 329

16.8.4 ContactSiderList類 329

16.8.5 Contacts類 332

16.9 我的頁面 333

16.9.1 通用列表項實現 334

16.9.2 Personal類 335


章節試讀:

現在,主流的移動開發平臺是Android和iOS,每個平臺上的開發技術不太一樣,針對每個平臺開發應用需要特定的人員,但這樣一來開發效率低下,因而需要進行跨平臺開發。跨平臺技術從最開始的Hybrid混合開發技術,到ReactNative的橋接技術,一直在演進。

Hybrid開發主要依賴於WebView。但WebView是一個重量級的控制項,很容易產生記憶體問題,而且複雜的UI在WebView上顯示的性能不好。React Native技術拋開了WebView,利用JavaScript Core來做橋接,將JavaScript調用轉為Native調用。React Native最終會生成對應的自訂原生控制項。這種策略將框架本身和App開發者綁在系統的控制項上,不僅框架本身需要處理大量平臺相關的邏輯,隨著系統版本變化和API的變化,開發者可能也需要處理不同平臺的差異,甚至有些特性只能在部分平臺上實現,這樣使得跨平臺特性大打折扣。

Flutter是最新的跨平臺開發技術,可以橫跨Android、iOS、MacOS、Windows、Linux等多個系統。Flutter採用了更為徹底的跨平臺方案,即自己實現了一套UI框架,然後直接在GPU上渲染UI頁面。

筆者最早接觸的跨平臺技術是Adobe Air技術,寫一套Action Script代碼可以運行在PC、Android及iOS三大平臺上。目前,筆者與朋友開發視訊會議產品,需要最大化地減少前端的開發及維護工作量,所以,我們先後考察過Cordova、React Native及Flutter等技術。我們覺得Flutter方案更加先進,效率更高,後來就嘗試用Flutter開發了全球第一個開源的WebRTC外掛程式(可在GitHub上搜索Flutter WebRTC)。

寫作本書的目的是想傳播Flutter知識(因為Flutter確實優秀),想為Flutter社區做點貢獻的同時也為我們的產品打下堅實的技術基礎。通過寫作本書,筆者查閱了大量的資料,使得知識體系擴大了不少,收穫良多。


閱讀建議

本書是一本基礎入門加實戰的書籍,既有基礎知識,又有豐富示例,包括詳細的操作步驟,實操性強。由於Flutter大量使用元件,所以本書對元件的講解很詳細,包括基本概念、屬性及代碼示例。每個元件都配有小例子,力求精簡,還提供了配套網站提供完整代碼,複製完整代碼就可以立即看到效果。這樣會給讀者信心,在輕鬆掌握基礎知識的同時快速進入實戰。

如果你正在使用類似React Native等跨平臺的技術,那麼學習Flutter相對輕鬆很多。使用Flutter構建應用時,需要Android和iOS知識,因為Flutter依賴移動作業系統提供眾多功能和配置。Flutter是一種為移動設備構建使用者介面的新方式,但它有一個外掛程式機制可與Android和iOS進行資料及任務通信。本書有一章專門講解Flutter的外掛程式開發技術,可以作為進一步學習的起點。

Flutter引用了大量Web開發的知識,比如FlexBox佈局方式、盒模型等,這些都引用了CSS的一些思想。所以從UI介面的實現角度來說,只需要熟悉Dart語言就能輕鬆上手Flutter。本書專門有一章介紹Dart語言的基礎知識。

建議讀者在一開始先把第1∼3章基礎理論通讀一遍。到第4章時實際操作並運行每個例子,這樣就能開發Flutter最簡單的介面了。

第5章和第6章通讀即可。第7章介紹的構建頁面配置都是開發中常用的佈局方法,建議讀者仔細閱讀、實際操作並運行每個例子。尤其是最後的佈局綜合例子,按步驟都走一遍,就能理解佈局的思路。

第8∼12章涵蓋Flutter的高級用法,在開發中也經常使用。可以根據實際專案開發和學習的需要閱讀。第13章介紹Flutter外掛程式開發。這需要具備原生開發的知識,比如Java、Objective-C 等相關知識。如果讀者不需要開發外掛程式可以略過。第14∼16章實操性很強,讀者只要根據書中的步驟仔細操作,就能快速掌握。
關於隨書代碼

本書所列代碼力求完整,但由於篇幅所限,代碼沒有全放在書裡。完整代碼在以下網址:

http://www.flutter100.net

https://github.com/kangshaojun
致謝

首先感謝機械工業出版社吳怡編輯的耐心指點,以及推動了本書的出版。

感謝朋友段偉偉工程師,江湖人稱“魚老大”,國內骨灰級WebRTC開發者、視訊會議產品合作者。在這裡感謝魚老大的技術分享及幫助。

感謝陳波及陳志紅兩位好友。在本書交稿壓力最大的時侯,從內容安排及語言潤色方面,都提供了一些非常有用的建議。還感謝高文翠老師對本書大綱的指導。

最後還要感謝我的家人。感謝我的母親及妻子,在我寫作過程中承擔了全部的家務並照顧小孩兒,使我可以全身心地投入寫作工作。在寫作那段時間,正好家裡閣樓裝修,感謝我的父親,他親自管理裝修工程,幫我節省了很多時間和精力。我愛你們,和你們在一起是幸運的事情!



亢少軍

2018年12月


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。