TikTok 是全球知名的短片平台,擁有龐大的使用者群和創新功能。團隊會持續為使用者發布更新、實驗和新功能。在管理技術債務的同時,如何維持開發速度是 TikTok Android 團隊面臨的挑戰,因此他們選擇採用 Jetpack Compose。
該團隊希望加快產品需求疊代速度,並提高疊代品質。因此,他們採用 Compose,希望藉此減少編寫的程式碼量,降低認知負荷,同時提升效能和穩定性,進而提高工程效率。
簡化複雜的 UI,提高開發人員工作效率
TikTok 頁面通常比表面上看起來更複雜,包含許多分層條件式需求。這種複雜性往往導致難以維護、結構不佳的檢視區塊階層,以及過多的檢視區塊巢狀結構,進而導致效能下降,因為測量傳遞次數增加。
Compose 直接解決了這個結構性問題。
此外,Compose 的評估策略有助於減少重複課稅,讓您更輕鬆地評估成效並進行最佳化。
為提升開發人員的生產力,TikTok 的中央設計系統團隊為負責不同應用程式功能的團隊提供元件程式庫。該團隊發現,Compose 的開發作業很簡單;運用小型可組合函式非常有效,而納入具有條件邏輯的大型 UI 區塊不僅簡單,且負擔極小。
透過策略性遷移,為未來發展鋪路
TikTok 策略性地採用 Jetpack Compose,不僅能持續專注於為使用者打造優質體驗,還能有效控制技術債。Compose 可清楚處理條件邏輯並簡化組合,因此團隊在新網頁或完全重寫的網頁上,網頁載入時間最多可縮短 78%。在較小的案例中,這項改善幅度為 20% 至 30%,而完全重寫和新功能的改善幅度則為 70% 至 80%。此外,與以 Views 建構的相同功能相比,他們還將程式碼大小縮減了 58%。 團隊進一步分享了幾項心得:
TikTok 團隊的整體策略是逐步遷移特定使用者歷程。這讓他們有機會遷移、確認可衡量的效益,然後擴展到更多畫面。他們先使用 Compose 簡化 QR code 功能的整體結構,並發現成效有所提升。之後,團隊將遷移作業擴展到登入和註冊體驗。
該團隊也分享了其他學到的經驗:
在遷移期間檢查效能時,TikTok 團隊發現,使用許多小型 ComposeView 取代單一 ViewHolder 內的元素,會造成組合負擔。他們擴大遷移範圍,為整個 ViewHolder 使用單一 ComposeView,獲得更出色的結果。
遷移 ViewPager 內的片段時,如果片段具有自訂高度邏輯和條件邏輯,可根據實驗結果隱藏及顯示 UI,效能不會受到影響。在本例中,將 ViewPager 遷移至可組合函式的成效,優於遷移 Fragment。
Jun Shen 非常喜歡 Compose,因為「可減少功能開發所需的程式碼量、提升可測試性,並加快交付速度」。該團隊計畫逐步採用 Compose,長期而言,這將是他們的首選框架。事實證明,Jetpack Compose 是強大的解決方案,可大規模提升開發人員體驗和生產指標。
開始使用 Jetpack Compose
進一步瞭解 Jetpack Compose 如何協助您的團隊。
繼續閱讀
-
個案研究
效能迴歸問題向來難以重現,因此對行動應用程式開發人員來說,迴歸問題是巨大的瓶頸。
-
個案研究
FotMob 最近在 Wear OS 上的安裝人數,創下 5 年來單日最大增幅,達到每日平均的 2 到 3 倍。秘訣是什麼?簡單的跨裝置安裝流程,可協助使用者直接透過手機探索 Wear OS 應用程式。
Garan Jenkin • 3 分鐘可讀完
-
個案研究
正念應用程式「Gratitude」提供每日微型日記、自我肯定和願景板,鼓勵使用者持之以恆。這款應用程式的下載次數超過 600 萬次,獲得 15 萬個 5 星評價,使用者記錄的日記條目則超過 1 億則。
Amrit Sanjeev, Ash Nohe • 3 分鐘可讀完
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資料。