描述
本書特色
◎ Flutter是Google開發的開源行動應用軟體開發套件
◎ 跨平台支援Android、iOS、Windows、Mac、Linux、Google Fuchsia
◎ Flutter的主要組成:Dart平台、Flutter引擎、基礎庫,客製化設計風格的組件
◎ Flutter框架包含兩套符合特定設計語言的組件
◎ Material Design的組件實現的是同名的Google設計語言
◎ Cupertino的組件模仿了蘋果iOS的設計
◎ 路由及持久化的實作
◎ 動畫及非同步設計
◎ 專案實戰,路由設計、外掛及混合專案模式
內容簡介
Flutter是Google推出的一個跨平台的、開源的UI框架,可以快速在iOS 和Android 系統上建置高品質的原生使用者介面,並且是Google未來新作業系統Fuchsia的預設開發套件。
這是一本Flutter入門的書,內容非常系統化的由淺入深,從基礎講起,通俗易懂。也會涉及與Dart 語言相關的內容,以便於讀者快速邁向Flutter 開發。
全書內容如下:
- 第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 的記錄檔捕捉方式以及服務端擷取記錄檔的方式。
適合讀者群:Flutter初學者,對行動開發(iOS/Android)有一定經驗者,或希望瞭解Flutter原理並進階實戰的相關技術人員。
作者簡介
何瑞君
行動端資深架構師,擅長Android、HTML5、React Native、Flutter等技術開發。GitHub重度使用者,熱愛開源專案和技術文章寫作。目前任職平安銀行。
目錄
前言
01 Flutter 簡介
1.1 Flutter 的優勢
1.2 比較其他技術
1.3 Flutter 架構
1.4 開發環境架設
1.5 Flutter 升級
1.6 本章小結
02 Dart 語言入門
2.1 應用場景
2.2 變數與常數
2.3 運算子
2.4 異常捕捉
2.5 函數Function
2.6 非同步程式設計
2.7 本章小結
03 一切皆元件
3.1 基礎元件(Basic widgets)
3.2 單一子元素元件(Singlechild)
3.3 多子元素元件(Multi-child)
3.4 狀態管理
3.5 套件管理
3.6 常用程式碼片段效果
3.7 本章小結
04 事件處理
4.1 原始指標事件
4.2 GestureDetector
4.3 事件原理與分發機制
4.4 事件通知
4.5 本章小結
05 動畫
5.1 動畫原理及概述
5.2 動畫的封裝與簡化
5.3 Hero 動畫
5.4 交錯動畫
5.5 動畫範例
5.6 本章小結
06 使用網路技術與非同步程式設計
6.1 網路通訊協定簡介
6.2 網路程式設計
6.3 JSON 解析
6.4 dio 函數庫
6.5 非同步程式設計
6.6 本章小結
07 路由
7.1 路由簡介
7.2 路由堆疊
7.3 自訂路由
7.4 本章小結
08 持久化
8.1 shared_preferences 本機存放區
8.2 SQLite 資料庫
8.3 檔案形式儲存
8.4 本章小結
09 外掛程式與混合專案
9.1 package
9.2 了解Platform Channel
9.3 混合開發
9.4 FlutterBoost 混合方案
9.5 本章小結
10 專案實戰
10.1 實戰一:實現一個應徵類別App
10.2 實戰二:實現異常上報系統
10.3 實戰專案原始程式
10.4 效能分析與輔助工具
10.5 本章小結
序
前言
開發者的思考
隨著行動開發技術的發展與成熟,行動端所處的萌芽階段也早已結束。現在,iOS 與Android 系統已經越來越成熟,各種App 之間的系統差異性也越來越小,可以說,行動開發技術已經進入了「下半場」。其中,如何建置大前端的跨平台方案,是近年來十分熱門的話題之一。
我在工作之餘,喜歡瀏覽一些技術類網站,例如掘金、CSDN 等。在這些技術網站上,我了解和學習了不少新技術,也在實作這幾年出現的跨平台技術,例如Hybrid、React Native、Weex 等。
在2018 年年初, 我第一次了解到Google 的Flutter 技術。經過一番實作之後,我認為這是一種很有前景的新技術。它可以快速在iOS 和Android 系統上建置高品質的原生使用者介面。很明顯,Flutter 為大前端的跨平台方案提供了一個全新的想法。為此,我專門做了一些開放原始碼專案並發表了一些文章,以便更深入地學習、推廣Flutter 技術。
Flutter 是一種新技術,大家都處於學習的狀態中。為了便於大家了解,也便於自己的技術累積,我在學習過程中不斷歸納、做筆記,逐漸整理和創作了本書。
適合讀者群
這是一本關於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 的記錄檔捕捉方式以及
服務端擷取記錄檔的方式。
原始程式下載
建議讀者在學習本書的時候先把相關的案例原始程式執行一遍,然後按照自己的想法重寫,這樣可以加深印象。切勿直接複製、貼上、執行原始程式,只有親手實作才會有所收穫。本書原始程式在Flutter 1.5.4 版本中是相容的,讀者可以正常使用和練習。
原始程式下載網址:https://github.com/heruijun/FlutterFrom0To1。
技術交流
這本書雖然是關於新技術的,但也代表作者多年技術經驗的累積和技術思維的沉澱。當然,書中所寫內容難免會有紕漏之處,希望讀者朋友能及時指正,希望我們相互學習、共同進步。
讀者可以加入Flutter 技術交流QQ 群(群號:468010872),群裡有不少技術「高手」和前端專家,也可以在群內回饋和交流本書學習心得。