Flutter 框架推出至今,已經在超過 50萬個應用中使用,從 2019 年到現在一直保持著強勁的增長趨勢。優秀的性能、跨平臺能力和活躍的技術社區使得其愈發受到廣大開發者的青睞。
而隨著 Flutter 的普及和廣泛應用,越來越多的企業和開發者對自動高效的埋點提出了更高要求,對于承接大量埋點需求的 Flutter 框架開發者而言,這無疑是一個棘手的難題:Flutter 官方并沒有提供相應的 AOP(Aspect Oriented Programming,面向切面編程),也就無法提供統一標準的邏輯用于簡化埋點流程,導致埋點成本很高,大量的埋點需求無法及時響應。
目前,業內可視化全埋點大多只支持 Web 或 App 原生埋點。針對 Flutter 開發者的痛點,神策的可視化全埋點繼支持 Web、App、React Native 等框架后,繼續突破創新,專項技術攻關,最終全面支持 Flutter 框架。開發者可以通過可視化的方式定義事件,僅需三步就可以合規采集頁面任意可見元素內容作為事件屬性,同時快速驗證可視化自定義屬性埋點數據是否正確。
關注神策數據公眾號,查看神策可視化全埋點更多能力解讀。
三大突破
快速響應Flutter平臺的埋點需求
一、可視化升級,為提升埋點效率加碼
神策在突破 Flutter 全埋點的基礎上,結合可視化全埋點的業務邏輯,實現了 Flutter 可視化全埋點。廣泛支持 Flutter 可點擊控件,并針對不同的業務場景,支持多維度的埋點需求。
1.支持可點擊元素
在 Flutter 框架中可點擊的元素,本質上是 GestureDetector,針對 GestureDetector 實現的元素點擊均支持可視化全埋點,比如常見的 TextButton、Switch、Radio 等元素。除此之外,還可以支持 Flutter 內嵌 H5 可點擊元素,實現不同場景下的埋點需求。
2.支持列表、多級列表等復雜的場景
Flutter 中的 ListView 和 GridView 兩類元素被處理成列表元素,針對列表元素,支持限制「元素位置」定義事件,從而避免相似內容多次重復定義事件,提高了埋點效率。如下圖所示:
圖 神策可視化全埋點功能截圖示例
同時,神策可視化全埋點還支持限制「元素內容」定義事件,從而針對元素內容可能發生變化的情況,滿足可配置的個性化埋點需求,覆蓋更多分析場景。
二、定義屬性,屬性采集所見即所得
1.支持自定義屬性
支持開發者通過可視化的方式,采集頁面任何可見元素內容作為事件屬性,大幅度拓展可視化全埋點的應用場景,降低接入門檻,提高埋點效率。同時,文本內容支持多種不同的處理規則,還可以自定義正則表達式解析內容。
圖 神策可視化全埋點功能截圖示例
2.支持埋點校驗
埋點校驗功能支持開發者通過當前手機點擊定義的元素,實時上報合規采集的全埋點事件和自定義屬性,業務人員一人就可以獨立完成埋點、測試、上線的全過程,省去前后溝通的時間,顯著提升工作效率,降低開發依賴。
圖 神策可視化全埋點功能截圖示例
三、致力于為開發者帶來極致體驗
1.集成簡單
集成簡單,方便客戶快速體驗,大大降低客戶接入門檻。下載并執行腳本,再引入相關模塊,即可快速集成 Flutter 全埋點 SDK,通過初始化開關配置即可開啟可視化全埋點功能。
2.定義事件精準匹配
在 Flutter 開發者進行埋點的過程中,可能會面臨的問題是,一個元素由多個 Widget 組成,在查找元素路徑時需要一直向上遞歸查找直到根節點位置,往往造就了極為冗長的元素標識路徑,這為開發者對不同元素的識別帶來了巨大挑戰。
而通過神策可視化全埋點,在 Flutter 中可以篩選開發者自己項目中創建的 Widget,元素路徑也只采用項目中定義的 Widget 組成,從而實現元素路徑構建的優化。優化后的路徑更加簡單清晰,也更準確標識 App 中的某個元素,從而實現事件定義和屬性采集的精準匹配。
3.性能優越
在掃碼連接可視化全埋點階段,SDK 會進行元素遍歷,以實現上傳頁面元素信息。在 Flutter 框架中,一切皆由 Widget 組成,并且項目中各種元素也會包含大量系統自動創建的 Widget,直接遍歷可能導致 App 頁面卡頓,影響用戶體驗。
神策 SDK 在元素遍歷過程中,從 Flutter 實現原理著手,只遍歷項目創建的元素和可視化需要用到的關鍵元素,忽略系統自動創建的各種 Widget,從而極大地優化了遍歷性能,提升元素信息上傳速度。神策針對 Flutter 界面刷新機制也做了專門的優化,實現了只有頁面發生變化才會遍歷更新頁面元素信息,確保用戶無感知的使用體驗。即使面對復雜的商業項目 App,我們的元素遍歷也不會造成頁面卡頓,為用戶帶來更佳的使用體驗。
對于廣大 Flutter 跨平臺框架開發者來說,神策的 Flutter 可視化全埋點為埋點設計提供了另一種模式,可以讓開發者更快速地響應業務側的埋點需求,提升整改團隊的開發效率。