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?
On Android, Gmail reports as being under 200 MB. So I agree, they probably include way to much for portability.
It's one thing to have common internal libraries and another thing to have the compile process blanket include everything that's in it.
Tree shaking is insane to me too. Just use a language that can actually do proper DCE, if you're not building a website.
(I do realize though that most "apps" are just websites without the browser toolbar, unfortunately)
For what it's worth, Outlook for iOS on my iPhone has an executable that weighs in at 368.8 MB.
Google needs to trim some stuff down.
> Tree shaking
Modern development is insane to me. "Let's do it badly, and hope a tool can fix it for us."
"Is anyone keeping an eye on the tools? No? Perfect!"
Particularly for developers inside the company that owns the platform. At some point they have to recognize they've completely screwed all this up.