將應用程式速度提升 30%:Zomato 成長食譜的關鍵要素

Zomato 是印度的跨國餐廳集結網站,同時也是餐點外送公司,光是印度 500 個城市的客戶,光是為客戶提供服務。該公司擁有超過 4, 300 萬名活躍使用者,以及每日平均訂單超過 150 萬筆,是全國最受歡迎的訂餐與外送服務之一。也就是說,客戶使用的裝置種類各不相同,網路可用情形也不盡相同。除了快速交貨以外,這也讓使用者在應用程式中提供流暢且流暢的體驗。

使用者期待應用程式開啟和回應速度很快。改善這項指標不僅會直接影響應用程式體驗指標,還能確保提高訂單的完成率並支援 Zomato 策略,進而拓展新市場,針對低到中階裝置提供更佳的體驗,進而幫助他們觸及下一個十億名使用者。當使用者深入完成銷售漏斗時,應用程式開啟頁面廣告可有助預測程序規模,

Zomato 專注在應用程式體驗指標方面,獲得亮眼的成績。比方說,將應用程式載入時間縮短 30% 之後,第 1 天的客戶留存率就提升了 90% 左右!

挑戰

Zomato 的開發速度飛快,且重視功能增加。儘管為客戶提供絕佳體驗,仍需要最佳化程式碼集和使用者體驗。在希望加入新功能的同時,Zomato 也希望讓成效更上一層樓。既然多個 SDK 耗用的資源都是過去的必要資源,就需要簡化並合理化程式碼集。

這一切都源自於 Zomato 擴大至印度第 2 層和第 3 級城市,當時許多人大多以低階到中階裝置,處理能力相對有限。納入這些裝置後,該團隊必須確保與高階裝置相同的世界級使用者體驗。

具體做法

Zomato 使用簡單的評分量表來分析營運負擔,相較於開發團隊所付出的心力,採用哪種解決方案有助於創造最佳投資報酬率。團隊利用這個評分量表,展開為期 4 個月的最佳化和改善流程。

第一步是查看系統追蹤記錄,找出問題、時間分析,並據此排定優先順序。Perfetto 是分析、分析及追蹤 Android 程序的最佳工具。Zomato 運用了這項工具來追蹤應用程式啟動期間初始化的所有 SDK,並指出哪些 SDK 可以延遲移除或延遲載入。

移除舊版 SDK 和未使用的第三方程式庫是我們的首要任務,因為這耗費心力需要投入大量心力。這種做法讓 Zomato 在應用程式的啟動時間中省下高達 20% 的寶貴時間。

許多第三方程式庫會使用內容供應器,在應用程式啟動時進行初始化,這會影響應用程式的啟動時間。Zomato 使用 Facebook SDK 登入,但使用者還有其他登入選項,因此在啟動時初始化 SDK 的效率並不高。推出 App Startup 程式庫後,當使用者要選用 Facebook 登入選項時,Zomato 才會載入 SDK。進而使新創公司的啟動時間縮短約 6%!

下一步是縮短檢視畫面的加載時間,因為算繪及加載檢視畫面本身可能需要大量時間,才能處理如 Zomato 這類複雜的 UI 結構。Viewstub 有助於提升效率,因為您可以視需要建立檢視區塊,但不會將檢視區塊加入檢視區塊階層。Viewtub 比使用 View 更有效率。GONE 即使檢視畫面處於 GONE 狀態,仍會加載並佔用記憶體和 CPU 用量,Zomato 在登入活動中簡化了檢視區塊階層、合併的版面配置以及 Viewtub。進行這些調整後,加載時間大幅縮短了 7%。

Android 分析器允許即時追蹤 CPU 活動、記憶體和網路,幫助提升記憶體用量。分析器可讓他們找出鎖定情況和記憶體負擔的根本問題,並據此進行修正。Zomato 也運用了快取機制,在記憶體問題不足的情況下大幅減少 60%。

操作 之前 (秒) 之後 (秒) 改善項目
已移除舊版 SDK 和未使用的第三方程式庫 2,873 萬 5.813 21.74%
延遲載入程式庫 3,814 萬 577 6.2%
改善版面配置,Viewtub 歐元 2,348 次 7.15%

應用程式啟動時間 = 應用程式初始化 + 程式庫載入時間 + 查看加載時間

成果

Zomato 的優異效能大幅提升,因此打造了更加流暢的使用體驗。進一步改善使用者介面及快取,同時減少卡頓情形。

應用程式首頁 (按一下應用程式圖示以載入完整載入且可供使用的首頁) 是 Zomato 內部追蹤的重要業務指標。而採行改善措施後,這類指標大幅提升。在這段期間內,抵達完全載入的網頁客戶增加了約 20%。

結果,第 1 天的客戶留存率提高了約 90%!這些改善措施也讓該公司程序的漏斗更上層樓,整體訂單瀏覽率 (首頁 -> 選單 -> 購物車 -> 訂單) 降低了 1.5 個百分點,也就是大約 60 萬筆訂單。

Firebase 效能的冷啟動指標平均提高 25%;而在低階/中階裝置上,冷啟動應用程式的時間縮短了高達 30%。

應用程式啟動時間效能是影響使用者觀感的重要指標,而為了提升效能而投注心力,也可能對業務造成重大影響。

「Zomato 提供及打造優質的客戶體驗,向來是我們的思維的核心理念。我們相信效能是其中一項關鍵要素,因此我們的團隊也致力追求卓越的工程體驗,運用 Google 開發人員工具縮短應用程式載入時間,並即時掌握成效。我們希望透過這項新功能,為印度的線上訂購需求提供速度驚人的應用程式,並為未來發展奠定基準。」

— Zomato 工程部門經理 Sajal Gupta