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