前言
Flutter是Google推出的新興跨平臺(tái)移動(dòng)開發(fā)技術(shù)方案,由于其開發(fā)效率高,性能優(yōu)秀,并且有Google的大力支持,因此發(fā)展迅速,收獲了許多關(guān)注。
Flutter不僅前期表現(xiàn)亮眼,其未來規(guī)劃也值得我們期待。它的目標(biāo)是實(shí)現(xiàn)移動(dòng)端、Web端、PC端、服務(wù)器后端等平臺(tái)的應(yīng)用開發(fā),成為真正的高性能、跨平臺(tái)技術(shù)方案。
目前在Google內(nèi)部,F(xiàn)lutter已被廣泛應(yīng)用于多個(gè)產(chǎn)品,比如Google Ads產(chǎn)品的iOS版本和Android版本都使用Flutter開發(fā)。全世界也有多家大型公司開始使用Flutter來開發(fā)應(yīng)用,包括Abbey Road Studios、阿里巴巴、Capital One、Groupon、Hamilton、京東、騰訊等。
表現(xiàn)突出的Flutter同樣贏得了許多開發(fā)者的青睞,很多開發(fā)者轉(zhuǎn)型學(xué)習(xí)Flutter開發(fā)。在眾多青睞者的努力下,F(xiàn)lutter社區(qū)越來越完善。有許多熱情的學(xué)習(xí)者提供了關(guān)于Flutter的文檔、資源、第三方插件庫,F(xiàn)lutter官方也提供了Dart Pub插件庫平臺(tái)來幫助開發(fā)者提高開發(fā)效率。在GitHub最受歡迎開源軟件排行榜中,F(xiàn)lutter排名前20。所以我們有理由相信,F(xiàn)lutter會(huì)變得越來越好,它勢必成為未來的主流跨平臺(tái)開發(fā)技術(shù)方案。
基于此,我想要將自己的實(shí)際開發(fā)經(jīng)驗(yàn)和對Flutter開發(fā)的心得體會(huì),總結(jié)成書,幫助開發(fā)者和學(xué)習(xí)者從零開始,全面、細(xì)致地學(xué)習(xí)Flutter相關(guān)技術(shù)。這本書從大綱策劃,到實(shí)際寫作,再到后期內(nèi)容完善,我都十分認(rèn)真地對待,投入了非常多的心血。本書的內(nèi)容幾乎覆蓋了Flutter開發(fā)涉及的全部知識(shí)點(diǎn),體現(xiàn)了從零開始學(xué)習(xí)Flutter開發(fā)到進(jìn)行實(shí)戰(zhàn)的過程。
衷心希望大家能夠認(rèn)真學(xué)習(xí)Flutter,因?yàn)閷τ谝婚T新興的、有前景的技術(shù)而言,如果你能成為第一批學(xué)習(xí)者,那么你將極有可能成為該技術(shù)的引領(lǐng)者,實(shí)現(xiàn)收獲最大化。
很希望通過這本書和大家一起成長、進(jìn)步,讓我們一同期待Flutter更好的未來!
本書內(nèi)容
本書內(nèi)容全面,基本涵蓋了Flutter開發(fā)涉及的所有知識(shí)點(diǎn)。全書共分18章,每章的內(nèi)容簡介如下。
第1章 認(rèn)識(shí)Flutter
Flutter是Google公司推出的開源跨平臺(tái)移動(dòng)開發(fā)技術(shù)方案,本章將簡單介紹跨平臺(tái)開發(fā)技術(shù),然后圍繞Flutter的架構(gòu)、特點(diǎn)、主流平臺(tái)和未來展望帶領(lǐng)讀者全面認(rèn)識(shí)Flutter。
第2章 Dart語言基礎(chǔ)
學(xué)習(xí)一門編程語言,一定要了解它的特性,本章將首先介紹Dart語言的基礎(chǔ)知識(shí)和特性,然后介紹Dart的數(shù)據(jù)類型與操作符、流程控制語句、類與方法、異步操作與導(dǎo)入類,為Flutter開發(fā)打下堅(jiān)實(shí)的理論基礎(chǔ)。
第3章 Flutter開發(fā)入門
從本章開始將正式進(jìn)入Flutter開發(fā)環(huán)節(jié),本章內(nèi)容涉及開發(fā)環(huán)境搭建、項(xiàng)目結(jié)構(gòu)分析、配置文件詳解、組件分類,以及創(chuàng)建Flutter應(yīng)用。
第4章 Flutter開發(fā)規(guī)范
本章將著重講解Flutter開發(fā)規(guī)范,主要內(nèi)容包括Flutter的項(xiàng)目結(jié)構(gòu)規(guī)范、命名規(guī)范、代碼格式規(guī)范、注釋規(guī)范,以及代碼使用規(guī)范。
第5章 Flutter常用組件(上)
本章將介紹Flutter中的常用組件。在Flutter中,幾乎所有的對象都可以看成組件,組件不單單是UI控件,也具備一些邏輯操作功能。本章將主要介紹文本類組件、圖片類組件、導(dǎo)航類組件。
第6章 Flutter常用組件(下)
在上一章內(nèi)容的基礎(chǔ)上,本章將繼續(xù)介紹Flutter中的表單類組件、列表滾動(dòng)組件、Dialog組件、表格組件。
第7章 Flutter常用布局組件
在Flutter中,布局也可以看作一個(gè)組件。本章將對Flutter常用布局組件中的典型布局組件進(jìn)行講解,并結(jié)合案例深入實(shí)踐,內(nèi)容涉及容器類布局、層疊類布局、線性布局、彈性布局和流式布局等組件。
第8章 Flutter路由與生命周期
在Flutter中,路由負(fù)責(zé)頁面跳轉(zhuǎn)和數(shù)據(jù)傳遞,是非常重要的概念。本章將主要講解Flutter中路由的概念、使用方法,路由跳轉(zhuǎn)的實(shí)現(xiàn),參數(shù)傳遞,按鍵監(jiān)聽,以及Flutter的生命周期。
第9章 Flutter HTTP網(wǎng)絡(luò)請求
Flutter中HTTP網(wǎng)絡(luò)請求的實(shí)現(xiàn)方法主要有三種:通過io.dart里的HttpClient實(shí)現(xiàn)、通過Dart原生HTTP請求庫實(shí)現(xiàn)、通過第三方庫實(shí)現(xiàn)。本章將詳細(xì)講解這三種方法的特點(diǎn)和區(qū)別,并擴(kuò)展介紹JSON編解碼和WebSocket的使用方法。
第10章 Flutter文件操作與數(shù)據(jù)庫操作
實(shí)際開發(fā)中離不開文件操作,F(xiàn)lutter也提供了相關(guān)的文件操作API,同時(shí)支持?jǐn)?shù)據(jù)庫操作。本章將結(jié)合實(shí)例介紹Flutter的文件操作、數(shù)據(jù)庫操作,同時(shí)介紹Flutter的手勢操作。
第11章 Flutter自定義組件與方法封裝
在開發(fā)過程中,有些需求無法通過現(xiàn)有的Flutter組件實(shí)現(xiàn),這時(shí)就要自定義組件。本章將介紹Flutter中自定義組件的幾種方式,同時(shí)也會(huì)講解Flutter方法的封裝。
第12章 Flutter動(dòng)畫的實(shí)現(xiàn)
如果想讓應(yīng)用或產(chǎn)品的用戶體驗(yàn)變得更好,動(dòng)畫效果是一個(gè)很重要的因素。本章將介紹Flutter中動(dòng)畫的基本使用方法和特點(diǎn),涉及基礎(chǔ)動(dòng)畫、Hero動(dòng)畫、交錯(cuò)動(dòng)畫。
第13章 Flutter主題與應(yīng)用國際化
Flutter中也有“主題”這一概念。國際化可以讓應(yīng)用支持多種語言。本章將主要介紹Flutter中主題的多種實(shí)現(xiàn),以及應(yīng)用國際化的實(shí)現(xiàn)。
第14章 Flutter數(shù)據(jù)共享與傳遞
本章將配合實(shí)例詳細(xì)介紹Flutter中數(shù)據(jù)共享與傳遞的方法:通過InheritedWidget組件、通過ScopedModel庫、通過Redux庫、通過EventBus庫。同時(shí)也會(huì)介紹一些與數(shù)據(jù)交互相關(guān)的插件庫。
第15章 Flutter與原生API交互及插件庫開發(fā)
在使用Flutter進(jìn)行開發(fā)的過程中,有時(shí)需要編寫插件來實(shí)現(xiàn)相應(yīng)的交互功能。本章將介紹Flutter與原生API交互的方法,F(xiàn)lutter插件庫開發(fā)方法,以及常見插件庫的用法,并配合實(shí)例詳細(xì)說明。
第16章 Flutter調(diào)試與應(yīng)用打包發(fā)布
在使用不同的開發(fā)語言進(jìn)行開發(fā)時(shí),一般都會(huì)用到調(diào)試功能。Flutter也支持調(diào)試和單元測試。本章將介紹在Flutter中進(jìn)行調(diào)試和單元測試的方法,同時(shí)介紹Flutter應(yīng)用打包與發(fā)布的流程。
第17章 Flutter拓展:Dart Web
Dart除了可以用于Flutter移動(dòng)應(yīng)用開發(fā),還可以用于Web開發(fā)。本章將拓展介紹Dart Web相關(guān)開發(fā)知識(shí),包括Dart Web開發(fā)環(huán)境搭建、Dart?Web項(xiàng)目的創(chuàng)建與運(yùn)行等。
第18章 Flutter實(shí)戰(zhàn)
本章將基于前面章節(jié)的內(nèi)容進(jìn)行實(shí)戰(zhàn):實(shí)現(xiàn)一個(gè)簡易備忘錄應(yīng)用,以及編寫一個(gè)TV應(yīng)用。通過這兩個(gè)示例,讀者可以鞏固之前學(xué)過的知識(shí),高效查缺補(bǔ)漏。
閱讀準(zhǔn)備
要想運(yùn)行本書中的示例代碼,需要配置和安裝如下系統(tǒng)環(huán)境和軟件。
?操作系統(tǒng):Windows、macOS、Linux均可。
?Dart環(huán)境:建議安裝最新穩(wěn)定版本的Dart SDK。
?Flutter環(huán)境:建議安裝最新穩(wěn)定版本的Flutter SDK。
?開發(fā)環(huán)境:Android Studio或Visual Studio Code均可。