天天看點

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

作者:InfoQ

作者 | 核子可樂、Tina

最近,有人在 Hacker News 指出 iOS 版 LinkedIn 應用體積接近 500 MB 大小,十分臃腫,而且其中 300 MB 是連結的架構和插件。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

這一消息引發了衆多網友的讨論,很大一部分是對 LinkedIn 批評:

“大膽猜測一下,LinkedIn 最具價值的使用者,也就是那些擁有搶手技能的人,應該都用着高性能裝置。是以,他們對于應用體積大小的問題,應該不會太在意。”

“他們無法進行‘臃腫應用’和‘優質應用’的安裝資料對比測試,也無法得知人們不安裝某個應用的原因。也正因為如此,我一直盡可能少地安裝應用程式。一些應用程式就是些臃腫的垃圾。這種負面影響還會累積。即使以後 LinkedIn 花時間來改進他們的應用程式,也無法擺脫聲譽受損帶來的負面影響,我仍然不會考慮安裝它。”

“對應用體積大小,大廠們常常不在意。因為那些因體積和 / 或性能問題而避開他們應用的使用者,并不是那些擁有豐厚錢包 (或擁有寶貴資料) 的目标使用者。”

“對于 LinkedIn 應用開發者來說,他們沒有動力去創造一個優秀的應用。他們的工作内容主要是讓他們的産品經理感到滿意。LinkedIn 應用可能涉及數百甚至上千名開發人員,他們往往承受着巨大的‘盡快釋出’的壓力。其中一些人會認為一些奇怪的做法是理所當然的,例如靜态連結到資源庫——這可能是因為缺乏意識或能力不足,也可能是為了應付績效考核。”

那麼為什麼 LinkedIn 應用有快 500 MB?先來看最新版 LinkedIn 的頂層視圖:

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

其中 300 MB 是動态連結的架構和插件……确實相當“肥碩”。事實上,目前光 Dylibs 和插件的尺寸就已經超過了 2022 年 11 月版的完整應用體量。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

其中插件和架構似乎是最臃腫的部分。下圖所示,為 LinkedIn 插件 + 動态連結的 Voyagerlibs.framework。

大家注意到哪裡不對勁了嗎?

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?
LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

首先,這兩款插件加上 VoyagerLibs 都附帶有 ArtDecolconsResources.bundle(約為 8 MB),而這個捆綁包本身就存在于 Voyager Framework 當中,是以本該跟各插件共享……但 LinkedIn 仍然保留了下來。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

再檢視 TodayExtension、NotificationExtension 和 VoyagerLibs,就會發現其中包含大量重複的類名(如截屏部分所示)。

雖然我們并不确定它們跟公共 build 分析部分是否重複,但這些擴充似乎同樣屬于 VoyagerLibs 庫的子集。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

其他值得注意的還有:2023 年 3 月,TodayExtension 還不到 400 KB,到現在已經有約 60 MB……

考慮到 Today Extensions 已經被棄用,我們可以合理懷疑新增的部分到底有沒有意義。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?
LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

LinkedIn 很可能是在插件中對依賴項采用了靜态連結方式,而非調用 VoyagerLibs 中的資源。

如果确實如此,那麼插件(總共 109 MB)中肯定存在大量非必要内容。

此外,我們還發現了約 75 MB 的 insights。

LinkedIn 應用體積達 500 MB,網友:大廠沒有動力創造優秀應用?

關于我們對最新版本 LinkedIn 的完整分析,這裡是詳情:

LinkedIn v2024.0321.2152 Analysis | Emerge Tools

有意思的是前兩天我們剛發過一篇關于如何避免插件臃腫的博文:《将 iOS 應用體積縮小一半的秘籍:妥善運用動态架構》

原文連結:LinkedIn 應用體積臃腫達 500 MB,網友怒噴:大廠開發者都沒有動力創造優秀應用?!_工程化_核子可樂_InfoQ精選文章