Flutter:從0到1構建大前端應用
  • 推薦1
  • 收藏1
  • 瀏覽465

Flutter:從0到1構建大前端應用

何瑞君 (作者) 

  • 書  號:978-7-121-36179-1
  • 出版日期:2019-07-01
  • 頁  數:320
  • 開  本:16(170*240)
  • 出版狀態:上市銷售
  • 維護人:陳林
本書是Flutter從基礎入門到進階實戰的教程書,也是一本面向大前端的新技術書。Flutter是谷歌新推出的一個跨平臺的、開源的UI框架,同時支持iOS系統和Android系統開發,并且是谷歌未來新操作系統Fuchsia的默認開發套件。本書共10章,內容包括Flutter簡介、Dart語言入門、一切皆組件、事件處理、動畫、使用網絡技術與異步編程、路由、持久化、插件與混合工程和項目實戰。本書不僅介紹了Flutter的基本原理、特性,而且在實戰章節全面展示了打造一個完整的基于Flutter的App的流程,包含具體細節、思想流程和代碼實操。
谷歌全平臺框架,Flutter技術入門、進階實戰
Flutter 1.5.4疑點、難點解析,從基礎學習到上架App
何瑞君,移動端資深架構師,擅長Android、HTML5、React Native、Flutter等技術開發。GitHub重度使用者,熱愛開源項目和技術文章寫作。目前就職于平安銀行。
前 言

開發者的思考
隨著移動開發技術的發展與成熟,移動端所處的萌芽階段也早已結束?,F在,iOS與Android系統已經越來越成熟,各種App之間的系統差異性也越來越小,可以說,移動開發技術已經進入了“下半場”。其中,如何構建大前端的跨平臺方案,是近年來十分火熱的話題之一。
我在工作之余,喜歡瀏覽一些技術類網站,比如掘金、CSDN等。在這些技術網站上,我了解和學習了不少新技術,也在實踐這幾年出現的跨平臺技術,比如Hybrid、React Native、Weex等。
在2018年年初,我第一次了解到谷歌的Flutter技術,經過一番實踐之后,我認為這是一種很有前景的新技術,它可以快速在iOS和Android系統上構建高質量的原生用戶界面。很明顯,Flutter為大前端的跨平臺方案提供了一個全新的思路。為此,我專門做了一些開源項目并發表了一些文章,以便更深入地學習、推廣Flutter技術。非常榮幸,在這個過程中,電子工業出版社的陳林老師找到了我,并希望我寫一本關于Flutter的技術書,這著實讓我受寵若驚,也倍感責任重大。
由于Flutter是一門新技術,大家都處于學習的狀態中。為了便于大家理解,也便于自己的技術積累,我在學習過程中不斷總結,做筆記,逐漸整理和創作了《Flutter:從0到1構建大前端應用》一書。

讀者對象
本書是一本關于Flutter入門的書,從基礎講起,也會涉及與Dart語言相關的內容,以便于讀者快速邁向Flutter開發。同時,本書也會涉及技術原理、思維等拔高內容。
本書通俗易懂,由淺入深,既適合初學者學習,也適合專業人員閱讀。對于在Android、iOS、前端等領域有過相關工作經驗的讀者來說,閱讀體驗會更好。

本書內容
本書內容是非常系統化的,用10個章節講述了學習Flutter必須掌握的知識,內容涉及Flutter簡介、環境搭建、Dart語言簡介、組件、事件處理、動畫、網絡、路由、持久化、插件和實戰項目等。實踐項目會教你如何構建一個Flutter應用,其中會使用Node.js把服務端搭建起來。此外,還會專門寫一個Flutter異常上報的項目,用于錯誤日志的跟蹤。
本書各個章節內容比較獨立,你可以按照順序閱讀,進行從0到1的全面學習;也可以根據需要把本書作為一本工具查詢書,直接跳轉到需要查詢的章節。每章的內容摘要如下所示。
第1章,Flutter簡介:從整體上先介紹移動端近年的發展變化,然后引出Flutter,并介紹Flutter的環境搭建。
第2章,Dart語言入門:介紹要編寫Flutter項目所必須掌握的Dart語言核心語法知識,為學好Flutter做鋪墊。
第3章,一切皆組件:介紹Flutter相關的核心組件和使用場景等。
第4章,事件處理:介紹Flutter的事件處理機制等。
第5章,動畫:介紹Flutter的動畫相關內容與核心原理等。
第6章,使用網絡技術與異步編程:介紹Flutter網絡技術的相關內容、網絡層與服務端的交互,以及Flutter的異步編程等。
第7章,路由:介紹Flutter的路由跳轉方式和原理等。
第8章,持久化:介紹Flutter的幾種持久化存儲方式。
第9章,插件與混合工程:介紹Flutter的插件編寫方式以及如何在現有原生項目里加入Flutter的相關技術。
第10章,項目實戰:第一個項目從服務端與客戶端的角度,介紹一個完整的項目案例;第二個項目介紹Flutter的日志捕獲方式以及服務端采集日志的方式。

目錄

目 錄

第1章 Flutter簡介 1
1.1 Flutter的優勢 1
1.2 對比其他技術 2
1.3 Flutter架構 3
1.3.1 Flutter Framework 3
1.3.2 Flutter Engine 4
1.4 開發環境搭建 4
1.4.1 Mac上的環境搭建 4
1.4.2 在Mac上獲取SDK并設置環境變量 5
1.4.3 安裝Xcode與運行模擬器 6
1.4.4 安裝Android Studio 7
1.4.5 在Android Studio上安裝Flutter開發插件 8
1.4.6 安裝VSCode與Flutter開發插件 9
1.4.7 IDE的選擇 11
1.4.8 使用Flutter診斷工具檢查Flutter開發環境 11
1.4.9 創建Demo工程并體驗熱重載 12
1.5 Flutter升級 14
本章小結 15

第2章 Dart語言入門 16
2.1 應用場景 16
2.1.1 SDK安裝和升級 17
2.1.2 編寫一個HelloWorld并運行 17
2.2 變量與常量 18
2.2.1 變量 18
2.2.2 常量 18
2.2.3 內置類型 19
2.2.4 數值型 19
2.2.5 數值型操作 20
2.2.6 字符串 21
2.2.7 字符串操作 21
2.2.8 布爾型 23
2.2.9 List與數組 23
2.2.10 Map 24
2.2.11 dynamic和Object 25
2.3 算符 26
2.4 異常捕獲 27
2.5 函數Function 28
2.5.1 main函數 28
2.5.2 可選參數 28
2.5.3 必傳參數 29
2.5.4 可選的位置參數 29
2.5.5 默認參數 29
2.5.6 函數作為參數傳遞 30
2.5.7 函數作為變量 30
2.6 異步編程 30
2.6.1 Future是什么 31
2.6.2 async和await 31
2.6.3 繼承、接口實現和混合 33
2.6.4 泛型 37
本章小結 39

第3章 一切皆組件 40
3.1 基礎組件(Basic widgets) 42
3.1.1 Text 43
3.1.2 Icon 43
3.1.3 Image 45
3.1.4 Button 45
3.1.5 FlutterLogo 47
3.2 單一子元素組件(Single-child) 48
3.2.1 Container 48
3.2.2 Container的約束 49
3.2.3 SingleChildScrollView 52
3.2.4 FittedBox 53
3.2.5 FractionallySizedBox 54
3.2.6 ConstrainedBox 55
3.2.7 Baseline 56
3.2.8 IntrinsicWidth和IntrinsicHeight 58
3.3 多子元素組件(Multi-child) 58
3.3.1 Scaffold 58
3.3.2 AppBar 59
3.3.3 Row和Column 61
3.3.4 ListView 64
3.3.5 GridView 69
3.3.6 CustomScrollView 70
3.3.7 Flex 73
3.3.8 Wrap 75
3.4 狀態管理 77
3.4.1 Widget樹 78
3.4.2 Context 79
3.4.3 StatelessWidget 80
3.4.4 StatefulWidget 80
3.4.5 StatefulWidget的組成 81
3.4.6 State 82
3.4.7 State生命周期 82
3.4.8 Widget的唯一身份標識:key 88
3.4.9 InheritedWidget 89
3.5 包管理 93
3.6 常用代碼段效果 94
3.6.1 案例一:側滑效果 95
3.6.2 案例二:登錄界面 96
3.6.3 案例三:輪播圖效果 96
3.6.4 案例四:圖片瀏覽器的相冊效果 97
3.6.5 案例五:全局主題設置 97
本章小結 98

第4章 事件處理 99
4.1 原始指針事件 99
4.1.1 基本用法 99
4.1.2 忽略事件 102
4.2 GestureDetector 105
4.2.1 基本用法 105
4.2.2 常用事件 106
4.2.3 拖曳和縮放效果 109
4.2.4 事件競爭與手勢沖突 112
4.2.5 手勢識別器 114
4.3 事件原理與分發機制 117
4.4 事件通知 122
本章小結 125

第5章 動畫 126
5.1 動畫原理及概述 126
5.1.1 Animation 127
5.1.2 Animatable 127
5.1.3 AnimationController 128
5.1.4 Tween 130
5.1.5 Tween.animate 133
5.1.6 Curve 133
5.2 動畫的封裝與簡化 136
5.2.1 AnimatedWidget 136
5.2.2 AnimatedBuilder 137
5.3 Hero動畫 141
5.3.1 基本用法 141
5.3.2 實現原理 143
5.4 交錯動畫 145
5.5 動畫示例 151
5.5.1 自定義加載動畫 151
5.5.2 實現動畫效果 153
5.5.3 Dialog加載框 157
5.5.4 測試加載框效果 159
本章小結 161

第6章 使用網絡技術與異步編程 162
6.1 網絡協議簡介 162
6.1.1 HTTP協議簡介 163
6.1.2 HTTP 2.0能給我們帶來什么 164
6.1.3 HTTPS 166
6.2 網絡編程 167
6.2.1 HttpClient 167
6.2.2 http庫 170
6.3 JSON解析 171
6.3.1 JSON轉成Dart對象 172
6.3.2 一個完整的例子 173
6.3.3 根據JSON用工具生成實體類 175
6.4 dio庫 176
6.4.1 基本用法 177
6.4.2 dio單例 177
6.4.3 dio攔截器 178
6.4.4 dio攔截器鏈 180
6.4.5 dio適配器 181
6.4.6 dio庫總結 183
6.5 異步編程 184
6.5.1 isolate 184
6.5.2 event loop 184
6.5.3 線程模型與isolate 188
6.5.4 創建單獨的isolate 190
6.5.5 Stream事件流 192
本章小結 195

第7章 路由 196
7.1 路由簡介 196
7.1.1 基本用法 197
7.1.2 靜態路由 197
7.1.3 動態路由 200
7.1.4 參數回傳 203
7.2 路由棧 206
7.2.1 路由棧詳解 207
7.2.2 pushReplacementNamed方法 207
7.2.3 popAndPushNamed方法 208
7.2.4 pushNamedAndRemoveUntil方法 209
7.2.5 popUntil方法 210
7.3 自定義路由 210
本章小結 214

第8章 持久化 215
8.1 shared_preferences本地存儲 215
8.1.1 shared_preferences的常用操作 216
8.1.2 shared_preferences舉例 216
8.2 SQLite數據庫 219
8.2.1 sqflite依賴庫簡介 220
8.2.2 封裝SQL Helpers 223
8.2.3 sqflite實現員工打卡示例 225
8.3 文件形式存儲 232
8.3.1 path_provider簡介 233
8.3.2 一個簡單的日記本示例 233
本章小結 236

第9章 插件與混合工程 237
9.1 package 237
9.1.1 添加package的幾種方式 238
9.1.2 更新package 239
9.1.3 創建自己的package 240
9.1.4 發布package 240
9.2 理解Platform Channel 241
9.2.1 消息傳遞與編解碼器 242
9.2.2 Platform數據類型支持 243
9.2.3 MethodChannel簡介 243
9.2.4 SharedPreferences插件源碼解析 245
9.3 混合開發 247
9.3.1 創建Flutter模塊 248
9.3.2 關聯原生工程 248
9.3.3 編寫混合工程代碼 249
9.3.4 熱重載混合端代碼 251
9.3.5 aar模塊化打包 252
9.4 FlutterBoost混合方案 253
9.4.1 框架的由來 253
9.4.2 使用FlutterBoost改進 254
9.4.3 FlutterBoost源碼分析 255
本章小結 263

第10章 項目實戰 264
10.1 實戰一:實現一個招聘類App 264
10.1.1 項目需求與技術選型 264
10.1.2 服務端設計 265
10.1.3 Flutter基礎架構 270
10.1.4 啟動頁面 271
10.1.5 使用dio實現網絡請求 273
10.1.6 公司列表與詳情實現 275
10.1.7 用WebSocket實現聊天模塊 281
10.2 實戰二:實現異常上報系統 286
10.2.1 實現原理 286
10.2.2 FlutterError.onError和Zone 287
10.2.3 異常上報Flutter的實現 288
10.2.4 異常上報Android端的實現 290
10.2.5 服務端接收異常上報 293
10.3 實戰項目源碼 299
10.4 性能分析與輔助工具 300
本章小結 304

讀者評論

  • 26 頁,測試結果是 1 。
    書上注釋:
    書上注釋

    實際測試結果:
    測試結果

    QingXiaxu發表于 2020/4/3 0:04:40
    • 這個已經在后續版本更改過,另外作者在https://github.com/heruijun/FlutterFrom0To1和QQ群都有具體答疑和錯誤更正,歡迎詢問和咨詢,感謝

      陳林發表于 2020/4/7 15:36:50
  • 這里的用法與舉例不對應。

    QingXiaxu發表于 2020/4/2 23:50:05

  • 這里前后是不是矛盾了,哪一個說法是對的?書上下面的代碼我測試了一下是可以的。

    QingXiaxu發表于 2020/4/2 11:46:47

圖書類別

推薦用戶

相關圖書

對比Excel,輕松學習SQL數據分析

張俊紅 (作者)

本書是《對比Excel,輕松學習Python 數據分析》的姊妹篇,同樣采用對比的方法,降低學習門檻,提高學習效率。全書分為3 篇:第1 篇主要介紹數據分析的基礎...

 

人工智能技術商業應用場景實戰

段云峰 (作者)

本書詳細講述了人工智能大潮中企業如何生存和發展,幫助企業看清人工智能,抓住生產力變革機遇,進行人工智能技術布局。<br>首先,從商業應用角度介紹了人工智能的緣起...

¥79.00

精通模塊化JavaScript

尼古拉斯·貝瓦夸 (作者) 回曉 楊蓉 陳立伸 朱良臻 (譯者)

本書是作者Nicolás Bevacqua所寫的探索JavaScript架構的系列書之一,探討了軟件復雜性的基本原理,以及如何在JavaScript中應用這些原...

 

Python數據可視化之美

張杰 (作者)

本書主要介紹如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等包繪制專業圖表。本書首先介紹Python 語言編...

¥129.00

剖析 iOS 核心知識點在工作中的應用

戴銘 (作者)

本書針對 iOS 應用開發涉及的核心知識點進行詳細剖析,分為 Swift、編譯器、iOS 中的大前端技術三大章,從應用、進階、未來三方面全方位剖析 iOS 開發...

¥79.00

Power BI數據清洗與可視化交互式分析

張偉強 (作者)

本書是Power BI 快速入門工具書,筆者將Power BI 的知識點做了系統整理,并以案例的 方式呈現出來,使讀者學習起來更輕松。全書共7 章,包括Pow...

¥59.00
国际官方棋牌下载中心 澳门娱乐场城网址 短期投资理财产品排行 双彩开奖走势图今晚 湖北十一选五开奖结果查询 股票知识 云南11选五5前三直选一定牛 内蒙快三一定牛走势图 稀土股票 管家婆三肖二码免费 吉林快3最新版本下载