《Flutter技術解析與實戰――閒魚技術演進與創新》是2020年電子工業出版社出版的圖書,作者是閒魚技術部。
基本介紹
- 中文名:Flutter技術解析與實戰――閒魚技術演進與創新
- 作者:閒魚技術部
- 出版社:電子工業出版社
- 出版時間:2020年3月1日
- 開本:16 開
- ISBN:9787121385377
內容簡介,圖書目錄,作者簡介,
內容簡介
本書將詳細講解閒魚Flutter&FaaS雲端一體化架構,以及閒魚基於Flutter的架構演進與創新,學習一套全面的Flutter架構套用方案。本書介紹閒魚技術團隊利用Flutter技術改造和上線複雜業務的混合工程改造實踐,抽取Flutter依賴到遠程的實現細節,以及使用Plugin橋接獲取設備信息、使用基礎網路庫等混合開發實踐指南。這些實踐遍布閒魚各大業務線和套用場景,為讀者使用Flutter打造自己厚雅陵的研發體系探索一條實踐之路。除了介紹閒魚Flutter套用框架Fish Redux、開發利器AspectD、FlutterBoost等一眾開源工具與開發實踐指南,你還將在本嫌全兆書中學到Flutter的更多套用場景。
圖書目錄
第1章 混合工程 1
1.1 Flutter工程體系 1
1.1.1 混合工程研發體系介紹 1
1.1.2 混合工程下的Flutter研髮結構 2
1.1.3 工程結構 2
1.1.4 構建最佳化 3
1.1.5 Native啟動下的Flutter調試 6
1.1.6 Native啟動下的Flutter熱重載 9
1.1.7 Native與Flutter聯合調試 11
1.1.8 持續蘭辨糠辣集成 11
1.2 混合工程改造實踐 11
1.2.1 項目背景及問題 11
1.2.2 改造目標 12
1.2.3 方案的制訂 12
1.2.4 改造的實現過程 14
1.3 混合工程與持續集成 15
1.3.1 背景思考 15
1.3.2 實現方洪臭法 16
1.3.3 iOS依賴的Flutter庫的抽取 21
1.3.4 Flutter混合工程的持續集成流程 23
1.4 快速完成混合工程搭建 24
1.4.1 flutter-boot簡介 24
1.4.2 工程化設計 25
1.4.3 混合棧 27
1.5 使用混合棧框架開發 29
1.5.1 為什麼需要混合方和照糠案 29
1.5.2 Google官方提出的混合方案 29
1.5.3 第二代混合艱蜜台技術方案 FlutterBoost 31
1.5.4 擴展補充 35
第2章 能力增強 36
2.1 基於原生能力的外掛程式擴展 36
2.1.1 Flutter Plugin 36
2.1.2 Platform Channel 37
2.1.3 獲取剩餘電量Plugin 39
2.1.4 載入Plugin 46
2.1.5 遇到的問題 48
2.1.6 延展討論 49
2.2 基於外接紋理的同層渲染 50
2.2.1 Flutter渲染框架 50
2.2.2 存在的問題 51
2.2.3 解決方法 52
2.3 多媒體能力擴展實踐 58
2.3.1 背景 58
2.3.2 設計思路 58
2.3.3 一些難點 59
2.3.4 總結 60
2.4 富文本能力套用實踐 61
2.4.1 富文循婆幾樂本的原理 61
2.4.2 設計思路 62
2.4.3 關鍵部分代碼實現 64
2.4.4 效果 65
第3章 業務架構設計 66
3.1 套用框架設計實踐 66
3.1.1 Fish Redux開源背景及技術架構 66
3.1.2 Fish Redux技術解析 67
3.2 輕量級動態化渲染引擎的設計 77
3.2.1 背景 77
3.2.2 動態方案 77
3.2.3 模板編譯 78
3.2.4 渲染引擎 81
3.2.5 最終效果 85
3.3 面向切面編程的設計實踐 86
3.3.1 典型的AOP場景 88
3.3.2 面向開發者的API設計 88
3.3.3 AOP代碼的編譯 90
3.3.4 Dill操作 90
3.3.5 AspectD支持的語法 92
3.3.6 構建流程支持 95
3.3.7 實戰與思考 95
3.4 高性能的動態模板渲染實踐 96
3.4.1 為什麼Native可行的方案不適用於Flutter 96
3.4.2 認識三棵樹 97
3.4.3 Flutter在Layout過程中的最佳化 98
3.4.4 如何自定義Widget 100
3.4.5 更多最佳化方向 105
參考文獻 106
第4章 數據統計與性能 107
4.1 數據統計框架的設計 107
4.1.1 用戶行為埋點定義 107
4.1.2 在Flutter上的埋點實現方案 108
4.1.3 曝光坑位 110
4.2 性能穩定性監控方案的設計 113
4.2.1 Flutter性能穩定性目標 113
4.2.2 頁面滑動流暢度 113
4.2.3 頁面載入耗時 116
4.2.4 異常率 118
4.3 高可用框架的設計與實踐 119
4.3.1 為什麼要做Flutter性能監控 119
4.3.2 需要一個什麼樣的SDK 119
4.3.3 從單個指標看整體設計 120
4.3.4 整體結構設計 122
4.3.5 SDK不同的使用方式 126
4.3.6 SDK的落地情況 126
4.4 跨端方案性能對比實踐 127
4.4.1 跨端方案對比 127
4.4.2 對比數據分析 128
4.4.3 總結 131
4.4.4 延伸閱讀 131
第5章 企業級套用實戰 134
5.1 基於Flutter的端架構演進與創新 134
5.1.1 Flutter的優勢與挑戰 134
5.1.2 閒魚的架構演進與創新 135
5.1.3 研發智慧型化在閒魚的套用 140
5.2 Flutter 與 FaaS 雲端一體化架構 142
5.2.1 傳統Native+Web+服務端混合開發的挑戰 142
5.2.2 跨端方案Flutter與React Native的選擇 143
5.2.3 Dart作為FaaS層的第一可選語言 144
5.2.4 一體化的深層思考 146
5.2.5 案例效果 147
作者簡介
閒魚技術部不僅是阿里巴巴集團旗下閒置交易社區的創造者,更是移動與高並發大數據套用新技術的引導者與創新者。我們與Google Flutter和Dart小組密切合作,為社區貢獻了多個高star的項目和大量PR。我們積極探索深度學習和視覺技術在互動、交易、社區場景中的創新套用。閒魚技術團隊與阿里巴巴集團中間件團隊共同打造的FaaS平台每天支持數以千萬級用戶的高並發訪問場景。一直以來,我們不斷做出技術判斷,通過創新探索更多價值,並將團隊的各項能力與實踐經驗以多種形式面向國內外分享。希望讀者在閱讀本書的過程中,去體會這份定義、思考與解決問題的喜悅。
2.2.2 存在的問題 51
2.2.3 解決方法 52
2.3 多媒體能力擴展實踐 58
2.3.1 背景 58
2.3.2 設計思路 58
2.3.3 一些難點 59
2.3.4 總結 60
2.4 富文本能力套用實踐 61
2.4.1 富文本的原理 61
2.4.2 設計思路 62
2.4.3 關鍵部分代碼實現 64
2.4.4 效果 65
第3章 業務架構設計 66
3.1 套用框架設計實踐 66
3.1.1 Fish Redux開源背景及技術架構 66
3.1.2 Fish Redux技術解析 67
3.2 輕量級動態化渲染引擎的設計 77
3.2.1 背景 77
3.2.2 動態方案 77
3.2.3 模板編譯 78
3.2.4 渲染引擎 81
3.2.5 最終效果 85
3.3 面向切面編程的設計實踐 86
3.3.1 典型的AOP場景 88
3.3.2 面向開發者的API設計 88
3.3.3 AOP代碼的編譯 90
3.3.4 Dill操作 90
3.3.5 AspectD支持的語法 92
3.3.6 構建流程支持 95
3.3.7 實戰與思考 95
3.4 高性能的動態模板渲染實踐 96
3.4.1 為什麼Native可行的方案不適用於Flutter 96
3.4.2 認識三棵樹 97
3.4.3 Flutter在Layout過程中的最佳化 98
3.4.4 如何自定義Widget 100
3.4.5 更多最佳化方向 105
參考文獻 106
第4章 數據統計與性能 107
4.1 數據統計框架的設計 107
4.1.1 用戶行為埋點定義 107
4.1.2 在Flutter上的埋點實現方案 108
4.1.3 曝光坑位 110
4.2 性能穩定性監控方案的設計 113
4.2.1 Flutter性能穩定性目標 113
4.2.2 頁面滑動流暢度 113
4.2.3 頁面載入耗時 116
4.2.4 異常率 118
4.3 高可用框架的設計與實踐 119
4.3.1 為什麼要做Flutter性能監控 119
4.3.2 需要一個什麼樣的SDK 119
4.3.3 從單個指標看整體設計 120
4.3.4 整體結構設計 122
4.3.5 SDK不同的使用方式 126
4.3.6 SDK的落地情況 126
4.4 跨端方案性能對比實踐 127
4.4.1 跨端方案對比 127
4.4.2 對比數據分析 128
4.4.3 總結 131
4.4.4 延伸閱讀 131
第5章 企業級套用實戰 134
5.1 基於Flutter的端架構演進與創新 134
5.1.1 Flutter的優勢與挑戰 134
5.1.2 閒魚的架構演進與創新 135
5.1.3 研發智慧型化在閒魚的套用 140
5.2 Flutter 與 FaaS 雲端一體化架構 142
5.2.1 傳統Native+Web+服務端混合開發的挑戰 142
5.2.2 跨端方案Flutter與React Native的選擇 143
5.2.3 Dart作為FaaS層的第一可選語言 144
5.2.4 一體化的深層思考 146
5.2.5 案例效果 147
作者簡介
閒魚技術部不僅是阿里巴巴集團旗下閒置交易社區的創造者,更是移動與高並發大數據套用新技術的引導者與創新者。我們與Google Flutter和Dart小組密切合作,為社區貢獻了多個高star的項目和大量PR。我們積極探索深度學習和視覺技術在互動、交易、社區場景中的創新套用。閒魚技術團隊與阿里巴巴集團中間件團隊共同打造的FaaS平台每天支持數以千萬級用戶的高並發訪問場景。一直以來,我們不斷做出技術判斷,通過創新探索更多價值,並將團隊的各項能力與實踐經驗以多種形式面向國內外分享。希望讀者在閱讀本書的過程中,去體會這份定義、思考與解決問題的喜悅。