本書是一本可供國內企業參考落地的Flutter技術圖書。閑魚技術團隊在實際的技術落地過程中,既享受了Flutter研發效能帶來的紅利,也經歷了無數的技術挑戰。本書將落地過程中的完整案例通過結構化的梳理回饋行業和社區。本書以閑魚產品為原型,通過線上產品的真實案例,完整地描述了企業級App研發落地所需的技術方案選型,以及關鍵細節和部分代碼實現。無論是構建打包、業務架構設計,還是性能測試標準和線上穩定性保障,都對其進行了詳細的闡述。同時,本書針對實際情況深入討論,切實解決一些在研發落地過程中的問題,填補了領域的空白。無論是國內一線企業的技術負責人,還是創業公司的技術人員,本書都值得閱讀。
于 佳閑魚客戶端負責人,花名宗心。曾參與阿里巴巴集團多款重量級App以及移動中間件的設計與開發。首創基于Flutter的混合架構并推動其在閑魚各業務線的落地。目前同時擔任阿里巴巴集團AliFlutter項目負責人。郭歆伊閑魚項目管理專家,花名鬼才。先后在銀聯、網易和阿里等公司負責產品經理和項目管理工作。對數據產品設計、敏捷研發實踐、技術品牌建設等有豐富的實戰經驗。主導《Flutter技術解析與實戰——閑魚技術演進與創新》和本書的出版。閑魚技術團隊閑魚技術團隊不僅是阿里巴巴集團旗下閑置交易社區的創造者,更是移動與高并發大數據應用新技術的引導者與創新者。閑魚技術團隊與谷歌Flutter小組密切合作,為社區貢獻了多個高Star的項目。閑魚技術團隊也在積極探索深度學習和視覺技術在互動、交易、社區場景的創新應用。閑魚技術團隊與阿里巴巴集團中間件團隊共同打造的FaaS平臺每天支持數以千萬計用戶的高并發訪問場景。一直以來,我們不斷做出技術判斷,通過創新探索更多價值,并將團隊的各項能力與實踐經驗通過多種形式面向國內外進行分享,希望讀者可以代入本書的內容去體會這份定義、思考與解決問題的喜悅。閑魚技術團隊在Flutter方向已提交多個專利及開源項目,包括Fish Redux和Flutter Boost等。團隊出版了圖書《Flutter技術解析與實戰——閑魚技術演進與創新》。歡迎閱讀并通過公眾號給閑魚技術團隊提出建議。
目錄
第1章 Flutter技術簡介與適用場景概要 / 1
1.1 Flutter技術簡介 / 2
1.1.1 Flutter技術的基本原理 / 2
1.1.2 Flutter的來源與演進歷史 / 3
1.1.3 跨平臺技術的日常應用場景 / 4
1.2 Flutter技術的適用場景與案例介紹 / 5
1.2.1 創業團隊的迭代效率與人員成長 / 5
1.2.2 中臺戰略下的企業成本與核心技術沉淀 / 7
1.2.3 云原生及5G時代的研發模式探索 / 8
1.3 總結 / 9
第2章 構建基于Flutter的混合應用 / 10
2.1 Flutter工程和構建 / 11
2.1.1 工程結構 / 11
2.1.2 構建 / 14
2.1.3 私域環境建設 / 19
2.1.4 總結 / 20
2.2 混合架構下的架構設計與應用 / 22
2.2.1 混合架構下的頁面管理 / 22
2.2.2 混合架構下的平臺能力復用 / 27
2.2.3 小結 / 32
第3章 多場景應用架構和設計 / 33
3.1 Flutter編程模型分析和實踐 / 34
3.1.1 架構設計的第一性原理 / 34
3.1.2 Flutter 編程模型分析 / 35
3.1.3 Flutter 編程模型實踐 / 40
3.1.4 小結 / 42
3.2 流式場景下的架構設計與應用 / 42
3.2.1 流式頁面容器架構設計 / 43
3.2.2 協議的設計 / 44
3.2.3 事件中心的設計 / 45
3.2.4 數據中心的設計 / 47
3.2.5 小結 / 50
3.3 Flutter場景下的多媒體架構實踐 / 51
3.3.1 基本概念:外接紋理、Channel、FFI和PlatformView / 51
3.3.2 多媒體消費端實踐:視頻播放器 / 53
3.3.3 多媒體消費端實踐:圖片組件 / 55
3.3.4 Platform線程和EGLContext / 57
3.3.5 小結 / 58
3.4 游戲化場景的架構設計與應用 / 59
3.4.1 技術選型 / 59
3.4.2 引擎總體設計 / 60
3.4.3 游戲系統 / 61
3.4.4 渲染系統 / 61
3.4.5 游戲內界面系統 / 64
3.4.6 事件系統 / 65
3.4.7 生命周期系統 / 66
3.4.8 動畫系統 / 67
3.4.9 資源系統 / 72
3.4.10 小結 / 73
3.5 云端一體化的架構設計與應用 / 73
3.5.1 一體化設計演進 / 73
3.5.2 云端一體化架構升級 / 78
3.5.3 一體化架構設計 / 80
3.5.4 云端一體化研發模式思考 / 81
3.5.5 小結 / 83
第4章 性能優化和高可用體系 / 84
4.1 Flutter高可用標準 / 86
4.1.1 首屏顯示時間 / 86
4.1.2 流暢度 / 88
4.1.3 CPU使用率 / 89
4.1.4 錯誤異常率 / 89
4.1.5 內存使用率 / 91
4.1.6 小結 / 92
4.2 Flutter性能優化最佳實踐 / 93
4.2.1 性能技術優化 / 93
4.2.2 交互體驗優化 / 105
4.2.3 小結 / 112
4.3 Flutter穩定性保障最佳實踐 / 112
4.3.1 異常治理 / 113
4.3.2 內存泄露治理 / 115
4.3.3 CPU使用率治理 / 119
4.3.4 小結 / 120
4.4 可持續發展的高可用體系 / 120
4.4.1 基于錄屏的卡頓分析 / 121
4.4.2 基于錄屏的頁面可交互時長分析 / 123
4.4.3 Flutter代碼規范掃描 / 124
4.4.4 小結 / 128
第5章 高級UI及動畫效果 / 129
5.1 動態布局方案DinamicX / 130
5.1.1 整體架構設計 / 130
5.1.2 DSL渲染的實現 / 132
5.1.3 Flutter Layout的原理 / 132
5.1.4 實際應用場景 / 138
5.2 流式布局PowerScrollView / 138
5.2.1 整體架構設計 / 139
5.2.2 功能完善 / 140
5.2.3 性能優化 / 141
5.2.4 數據對比 / 148
5.2.5 小結 / 149
5.3 轉場動畫 / 149
5.3.1 背景 / 149
5.3.2 Flutter動畫原理 / 149
5.3.3 轉場動畫原理 / 152
5.3.4 總結和優化 / 155
5.4 Lottie / 155
5.4.1 背景 / 155
5.4.2 項目架構 / 156
5.4.3 工作流程 / 156
5.4.4 實現差異 / 159
5.4.5 效果對比 / 162
5.4.6 最佳實踐 / 164
5.4.7 進階用法和可編程能力 / 164
5.5 總結 / 165
第6章 前沿探索與行業案例 / 166
6.1 Flutter For Windows探索 /167
6.1.1 Windows UI框架發展史 / 167
6.1.2 技術選型的思考 / 169
6.1.3 Flutter For Windows技術預研 / 171
6.1.4 小結 / 177
6.2 Flutter引擎定制與優化 / 177
6.2.1 Hummer整體架構總覽 / 178
6.2.2 Hummer引擎性能優化 / 182
6.2.3 Hummer引擎功能增強 / 190
6.2.4 Hummer引擎內存泄露檢測工具 / 197
6.2.5 小結 / 199
6.3 Flutter在ICBU的實踐 / 200
6.3.1 ICBU無線變遷 / 200
6.3.2 跨端技術和Flutter / 201
6.3.3 技術改進 / 203
6.3.4 未來探索的方向 / 208
6.3.5 小結 / 209
6.4 Flutter在淘寶特價版的實踐 / 210
6.4.1 淘寶特價版的業務特點 / 210
6.4.2 使用Flutter的業務場景 / 210
6.4.3 小結 / 224
第7章 Flutter前沿技術與熱點問題 / 225