Live data from Hacker News

Why is the Gmail app 700 MB?

akr.am

101–110 of 403 posts

Re: Why is the Gmail app 700 MB?

#101

> For most of that period, the size of the Gmail app hovered around 12 MB, with a sudden jump to more than 200 MB near the start of 2017... The Gmail app, on the App Store, is currently 760.7 MB in size. With charts: https://www.axios.com/2017/12/15/the-top-iphone-apps-are-tak... I had no idea common apps used to be just 10-30 MB. But are now hundreds of MB. Something like Gmail doesn't have massive hi-resolution bit…

When I doing mobile app development a decade ago, I found that many interviewers and clients were evaluating my experience more like an artist's portfolio, alongside a couple of arbitrary metrics to determine app scope One of those arbitrary metrics was bundle size, how many megabytes on the app store was the app. The bigger the better and more serious it was. At the time I was knee deep in optimizations, using SVGs,…

This seems to be true for writing code generally. Why do something simple when you can show off how complex you can make a project?

I keep seeing tools that should be a for loop inside a script that instead are a sprawling project with all sorts of different files and class hierarchies and abstractions...

Re: Why is the Gmail app 700 MB?

#102
post #44

Earlier quoted context omitted.

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 b…

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?)

It probably isn’t just text that is localized.

Re: Why is the Gmail app 700 MB?

#103
post #50

Earlier quoted context omitted.

The article is the question though, the question deserved to be asked. And Gmail deserve to be shamed for shipping almost a gigabyte of stuff for a mailbox. Wouldn't be surprised if they accidentally/intentionally built the whole youtube client in there.

I think this might be closer to the truth than you might think. Due to the absence of (cross-app) shared libraries on at least iOS, developers often end up building big company-internal libraries that then have to be shipped with all of their apps. Tree shaking isn’t perfect, and the result are these > 0.5 GB monstrosities.

Is it plausible that the libraries are so big? I mean, for example, NodeJS is in the order of 100mb and contains the whole v8 engine.

The Gmail app size has to be assets, right?

Re: Why is the Gmail app 700 MB?

#104
I’ve noticed most popular apps are pushing 500+MB. Most likely they are shipping debug builds, with loads of third party deps, so they can send crash reports from production with meaningful stack traces.

Until Apple penalizes app developers for app size, nothing will happen. Most consumers are not aware of the impact , until they go to clean up their phone.

There isn’t much usable free space on the device after the OS, and now having 50+gb of used space from apps, means your own content (photos, music, videos) doesn’t fit.

There isn’t much incentive regardless, since Apple merchandise’s iCloud storage. Bloated apps actually drive iCloud sales. A lose-lose for the consumer.

Re: Why is the Gmail app 700 MB?

#105
post #44

Earlier quoted context omitted.

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 b…

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?)

Localization doesn’t just mean string translations. Apple platforms give you the freedom to redo the UI to fit the language. For example, parts of System Preferences (not sure about Settings) would look completely different in languages with long words because the original design for English simply didn’t fit. The translators rearranged buttons to make the text fit.

Re: Why is the Gmail app 700 MB?

#106

A significant portion of larger sizes is likely due to how Google handles shared code across its iOS suite. They rely heavily on a shared C++ backend (using tools like J2ObjC or similar internal transpilers) to keep logic consistent between Android, iOS and of course the web. When you pull in the gmail dependency from the internal monorepo, you are most likely pulling in the entire visual stack for Google meet, chat…

> and gRPC

Right, I wouldn't be surprised of the app includes its own cryptography instead of relying on platform libraries, and/or contains what amounts to a userspace network stack in the form of QUIC (Cronet).

Re: Why is the Gmail app 700 MB?

#107

> For most of that period, the size of the Gmail app hovered around 12 MB, with a sudden jump to more than 200 MB near the start of 2017... The Gmail app, on the App Store, is currently 760.7 MB in size. With charts: https://www.axios.com/2017/12/15/the-top-iphone-apps-are-tak... I had no idea common apps used to be just 10-30 MB. But are now hundreds of MB. Something like Gmail doesn't have massive hi-resolution bit…

When I doing mobile app development a decade ago, I found that many interviewers and clients were evaluating my experience more like an artist's portfolio, alongside a couple of arbitrary metrics to determine app scope One of those arbitrary metrics was bundle size, how many megabytes on the app store was the app. The bigger the better and more serious it was. At the time I was knee deep in optimizations, using SVGs,…

Back in the time of 3.5" demo disks, I know one group that filled up their disk image with random numbers so it wouldn't compress so it would look bigger and more impressive in file listings.

Re: Why is the Gmail app 700 MB?

#109
post #58

Earlier quoted context omitted.

I find "ensuring app loads fast" to be absolutely hilarious, here. What has to be done to help a mail app load fast? And, snarkily, can they do this for the web page? On my decent connection right now, loading a new tab to gmail takes about 3 seconds to visibly load. Another few seconds to get so that I can interact with it. Is kind of hilarious to see how long it takes to load the compose window if I press "c" as so…

Starting with machine code expands lines of code 2-10x. It's also taking helper functions and pre-evaluating them putting results inline, and unrolls loops (could be 5-50x increase where they exist?) And it precalculates lookup tables (takes up space) for virtual methods.

Right, I know what sort of things happen in that process. And to be fair, I'm mainly poking fun at how bad the web page has become.

I do feel that this bloat is, far and away, the worst offender when it comes to why things feel slower nowadays. The application just flat out does way more than most people assume it can. Which means it almost certainly has way more capabilities than it needs for many of us.

Would be neat to see a metric on "how much of the code is never loaded" in typical use. Akin to some game medals of "played more than x% of players."

Re: Why is the Gmail app 700 MB?

#110
post #50

Earlier quoted context omitted.

I think this might be closer to the truth than you might think. Due to the absence of (cross-app) shared libraries on at least iOS, developers often end up building big company-internal libraries that then have to be shipped with all of their apps. Tree shaking isn’t perfect, and the result are these > 0.5 GB monstrosities.

Is it plausible that the libraries are so big? I mean, for example, NodeJS is in the order of 100mb and contains the whole v8 engine. The Gmail app size has to be assets, right?

Static linking will do that. Imagine you have 400mb of binary objects your app depends on. Libraries your company uses for app analytics, SSO, 2FA, Corporate service bus api, etc. You statically link all those for your 50mb Swift UI app and bam, you’re in the 700mb range.
Post reply on HN