logoalt Hacker News

simonwlast Tuesday at 5:23 PM4 repliesview on HN

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


Replies

trevor-elast Tuesday at 5:44 PM

Yep, localization is a huge size bloat for enterprisey apps that support many locales. There is no Apple provided way to dynamically download select localization packs based on the device locale. Meta came up with their own solution: https://engineering.fb.com/2022/05/09/android/language-packs...

The small filesize issue is something we commonly see in games, was surprised to see it for Gmail.

And btw we open-sourced much of our analysis after being acquired by Sentry: https://github.com/getsentry/launchpad

crazygringolast Tuesday at 5:52 PM

130 MB for localization? At 50 languages that would be 2.6 MB/language. If we assume an average 50 bytes per string and another 50 for an identifier, that's 27,000 strings.

That doesn't seem right. Localization feels like it should add a few MB. Not over 100. (Plus shouldn't it be compressed, and locally uncompressed the first time a language gets used?)

show 6 replies
lynndotpylast Tuesday at 5:45 PM

4kB is also the minimum file size on Linux, so I imagine a similar issue could exist on Android.

show 1 reply
tonypleelast Tuesday at 5:51 PM

Wonder if it is better to create separate localized app download such as gmail-japanese, etc.

show 1 reply