- Flutter組件詳解與實戰
- (加)王浩然編著
- 1563字
- 2023-09-15 17:23:29
前言 FOREWORD
Flutter是谷歌公司推出的一款全新前端框架,主要用于移動應用程序(App)、網頁及桌面應用程序的開發,可實現一份代碼多端運行。Flutter于2021年3月3日推出2.0正式版。同時,Ubuntu操作系統宣布將Flutter作為其首選開發語言。
開發者在使用Flutter時主要通過由多個小組件(widgets)之間的相互配合與嵌套,構建出復雜的程序頁面,因此對于剛入門的Flutter開發者而言,最迫切需要的就是增加Flutter組件知識的儲備,以便在面對錯綜復雜的實戰需求時,會選用最合適的組件。在谷歌公司的官方英文教程中,點擊量最大、評論反響最好的也正是其“每周認識一個新組件”(Widgets of the Week)系列視頻。
例如,Flutter框架已內置一個ReorderableListView組件,借助它,短短幾行代碼就可以實現一個支持拖動排序且可動態加載的列表,然而剛入門的開發者可能并不知道它的存在,遇到類似的業務需求時,第一反應是自己動手做,但那樣就需要多寫很多代碼,浪費時間不說,通常并不能寫好,許多邊界情況考慮不周,可謂“加班加點寫Bug”,勤勞地為自己和團隊挖了一個又一個坑。
本書針對這些“痛點”,并以當今用戶對程序界面和動畫效果的高要求為出發點,秉承Flutter框架“一切皆為組件”的核心設計思想,向讀者系統地介紹Flutter中各種組件,幫助廣大開發者盡量避免“重復發明輪子”。在熟悉并掌握一定數量的Flutter組件后,開發者通常可在短時間內利用更少的代碼實現更多的需求,輕松迭代出美觀、流暢、友好、高效且符合原生系統風格的出色的應用程序。
本書分為基礎篇、進階篇與擴展篇3篇,并配有大量Flutter代碼實例。讀者既可以按順序閱讀全書,以增加和鞏固自身的知識儲備,也可先快速瀏覽并簡單熟悉這些組件后,在實戰或工作中遇到實際需求時再詳細閱讀相關章節。另外,有經驗的開發者還可以通過本書附錄中的索引迅速查詢所有書中提及的Flutter組件。全書主要內容如下:
基礎篇由第1~5章組成。其中,第1章介紹最基本的組件排版與布局概念;第2章詳細介紹用于渲染文字和圖片的組件;第3章講解基礎的文本框和按鈕等組件;第4章介紹與異步操作、事件流及進度條相關的組件;第5章詳細講解大量與滾動列表相關的組件。由于這些都是Flutter框架中較為基礎且常用的組件,因此本書這部分內容較為詳細,涵蓋了40個組件的全部屬性和參數,并同時配有大量實戰經驗、技巧、實例等,既可幫助初學者打好基礎,也適合有一定基礎的Flutter開發者查漏補遺。
進階篇由第6~10章組成。其中,第6章詳細介紹Flutter的布局原理,尤其是尺寸約束方面的知識,建議仔細閱讀并理解;第7章介紹一些簡單的隱式動畫組件,開發者借助這些組件,短短幾行代碼就能實現不錯的動畫效果;第8章介紹包括觸碰、雙擊、平移、拖放、捏拉縮放及立體觸控等與用戶交互相關的組件;第9章和第10章介紹由Overlay主導的對話框、底部彈窗、導航器等功能組件,以及介紹Flutter程序根部組件的作用。
擴展篇由第11~15章組成。其中,第11章按照字母順序,簡單介紹大量Material風格和Cupertino風格的組件,以確保讀者在實戰中遇到類似需求時知道從合適的組件下手;第12章配合大量視頻教材,全面介紹Flutter框架中與動畫相關的知識,包括補間動畫、交錯動畫、動畫控制器及如何在實戰中選擇合適的動畫組件等內容;第13章介紹Sliver機制,也就是Flutter框架中滾動組件的核心機制,可支持多種不同類型的滾動列表及頂部導航條的聯動;第14章主要介紹投影、半透明、矩陣變形、模糊濾鏡及裁剪邊框等修飾性組件;第15章介紹與測量尺寸、提升性能、打破布局約束及深度自定義渲染相關的組件。掌握了這些知識后,相信讀者一定會對Flutter框架有更深的理解。
最后,在此由衷感謝清華大學出版社趙佳霓編輯為本書提出的許多寶貴意見,并為圖書出版付出的辛勤勞動;另外,還要感謝筆者的家人和朋友們,尤其是筆者的妻子,在疫情期間承擔了大部分家務并悉心照料剛出生的寶寶,使筆者可以全身心投入寫作。
由于筆者水平有限,且Flutter框架技術日新月異,書中難免存在不完善之處,望讀者見諒。
王浩然
2021年10月

本書源代碼
- 高手是如何做產品設計的(全2冊)
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Java程序設計實戰教程
- Spring Boot+Spring Cloud+Vue+Element項目實戰:手把手教你開發權限管理系統
- Learning Bayesian Models with R
- YARN Essentials
- HDInsight Essentials(Second Edition)
- PhoneGap:Beginner's Guide(Third Edition)
- Building Microservices with .NET Core
- 機器學習微積分一本通(Python版)
- IDA Pro權威指南(第2版)
- 零基礎學C語言(第4版)
- Sails.js Essentials
- JavaWeb從入門到精通(視頻實戰版)
- Flutter for Beginners