Hacker News new | ask | show | jobs
by alimbada 3372 days ago
The iOS Gmail app has increased in size to 140MB at the last update. I'm on a 16GB iPhone and I've noticed app sizes slowly increasing over the last two and a half years that I've had my phone. I have to keep an eye on app size to make sure I don't run out of space on my phone. I've already boycotted the Facebook app, but apps like Gmail are too important to uninstall. If it comes to it I'll be getting rid of a lot of other apps before Gmail (e.g. the Google app) when I need to reclaim space. I don't understand how app sizes keep creeping up; it's moronic. By contrast, the Reddit app is a slim 13MB and I'd say it does a lot more than the Gmail app.
5 comments

The apple store binary format is really horrible when it comes to keeping the size down. Especially if you need to use libraries and whatnot. What it comes down to is this:

1 - The binary format itself isn't very efficient. Compressing it usually yields at least a 50% reduction in final size, often more

2 - Even though .ipa is a zipped format, there's no actual compression on the binary itself because it's encrypted before compression. I have no idea why they do this, I can't perceive any security benefit(Any jailbroken phone can be tooled to output the unencrypted binary. And you can bet anyone trying to reverse engineer your app will be using a jailbroken phone for their work)

Basically, if you're a large company with lots of apps and shared dependencies(Google, Facebook, etc...) doing the "right" thing and writing shared library code across projects ends up bloating your binary size immensely. And since binary size(rather than resources like images) dominate the final app size, you're in trouble if you want to keep app size down.

Source: I work on the iOS app for a music streaming service, despite our best efforts, our app downloadable size is ~35MB(~45MB installed size). Our android counterpart, almost effortlessly has the same app functionality with a 14MB downloadable package(they did some cleaning a while ago and got it down to 10MB at some point). Thing is, if we do proper compression(no binary encryption, single architecture) we end up with a 19MB .ipa file

PS: The compression issue doesn't affect installed size, but I believe the issue here is simply that (1) the binary format they're using is just too damn inefficient by default

shame since shared library was suppose to be "DRY". Why not run compression and then encryption?
Features mostly. I mean, you seem to absolutely need the Gmail app. While I, too, have a Gmail account, I like the simplicity of the native mail app in iOS. I don't need any additional features. I get mail, I read mail, I can write mail.
you can't fill 140MB with "features mostly".

it's gotta be something like mostly media (uncompressed bitmaps), metadata, (debug symbols maybe?), libraries / platform / compatibility layers (95% of which is never used for any particular install).

I have seen what it looks like when you actually try to cram "features mostly" into a few tens of megabytes and the GMail app is not that.

source: the demoscene

I just downloaded the IPA. It literally looks like it has a 134 MB blob of code (out of a 215 MB universal .app).

Google must have some insane cross-platform code library or something in there.

> I get mail, I read mail, I can write mail.

That's exactly what the Gmail app does too. What other features does it offer that the Mail app doesn't? If none, then why does it need to be so huge?

I picked on Gmail because it's the most recent culprit that I have noticed creeping (sometimes jumping) up in app size but it isn't the only one guilty of this. Like I said in my original comment, the Reddit app is 13MB and does a bit more than the Gmail app. I can read/write posts and comments and view images; similar features to Gmail, but I can also watch gifs and videos. Can someone explain why there is an order of magnitude of discrepancy between the two apps sizes?

They're probably using several bloated SDK's within their app for core Google services, view elements etc etc. If they're using dynamic linking, they have to include these in the binary even if they only use a small percentage of the libraries.

That's potentially one explanation.

I've never used the ios mail app, but in general gmail has a weird imap implementation that behaves wonky with a lot of mail clients so with gmail using the webmail or a gmail specific app is usually preferable.
I made the mistake of getting a 16GB iPhone 4s last time. I'll never make that mistake again (well, it's impossible now I guess). I was forever having to delete stuff to make room for updates (and IOS gets all sideways when you run out of space halfway through an app update) and managing the memory. It's just not worth the constant headache.
Yeah, I have a 16gb iPhone 6 and it's gotten unbearable in the past few month. I don't even keep many apps around. No room for my music anymore :(
I use the built-in Mail app on macOS and iOS for Gmail accounts. Works well. If you need space, you should give it a try.
For comparison - GMail app on my Pixel XL takes 31MB for the app and about 10MB for data and cache.
That's more due to Google offloading common logic into shared Android and Play components than compiler efficiencies.
Erm, that's not true. As soon as GMail app updates on Android, it replaces the builtin one with full features. The shared "Play components" are things like push handling, which is builtin on iOS as well.

Play services and OS do not carry GMail shared components.