logoalt Hacker News

jshchnzlast Tuesday at 5:09 PM5 repliesview on HN

Emerge Tools has an old thread on why it's actually so big: https://x.com/emergetools/status/1810790280922288617


Replies

simonwlast Tuesday at 5:23 PM

Thanks, that thread is great!

They have a neat treemap breakdown here: https://www.emergetools.com/app/example/ios/com.google.Gmail

130MB is localization data.

This detail was interesting too: https://twitter.com/emergetools/status/1810790291714314706

> There's over 20k files in the app, 17k of which are under 4 kB. In iOS, the minimum file size allocation is 4 kB, so having many small files causes unnecessary size bloat. Gmail could save 56.4 MB by moving their small files to an Asset catalog

show 4 replies
thefilmorelast Tuesday at 8:02 PM

Author here. Thanks for sharing this. It seems they released an updated version of this analysis last year [1]. It matches what I saw when analyzing the IPA. I tried to do a deeper analysis on the code itself using several tools, including Google's own bloaty [2] which was not very useful without symbols, classdumpios [3] which revealed something like 50k interfaces starting with "ComGoogle", and Ghidra [4], which I left running for a day to analyze the binary, but kept hanging and freezing so I gave up on it. Perhaps comparing the Android and iOS code could lead to something more fruitful.

[1] https://x.com/emergetools/status/1943060976464728250

[2] https://github.com/google/bloaty

[3] https://github.com/lechium/classdumpios

[4] https://github.com/NationalSecurityAgency/ghidra

jonny_ehlast Tuesday at 7:02 PM

Looks like it's mostly strings, probably due to localization. They should consider compressing each localization/language, and decompressing the needed bundle on first startup (or language change). Even better: Download the language bundle when needed.

show 1 reply
giancarlostorolast Tuesday at 5:23 PM

So is the extra space not accounted for from then to now AI related pieces?