> 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.
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 bitmap graphics. Since the article doesn't give any answer, I'm assuming it's a hand-wavy "frameworks", but that's an enormous amount of compiled code.
> I had no idea common apps used to be just 10-30 MB.
More like a few dozen kilobytes to a handful of megabytes. If you look in F-Droid you can find some good old apps where graphics are either small or it uses the default styles for buttons and the like
Looking at a tiny utility app I made 6 years ago, it's 9KB, most of which will be the default things the compiler includes
> I had no idea common apps used to be just 10-30 MB. But are now hundreds of MB.
This is Android, but: 13+ years ago I had an HTC Desire. I was really struggling with internal storage space, regularly uninstalling and replacing apps just to be able to update others. Eventually I moved to custom ROMs just because they allowed some apps to be moved to the SD card.
I remember the biggest problem was WhatsApp, which was somehow over 7MB while the average was closer to 1MB.
On my current phone WhatsApp is 231MB. It's still pretty high up in the rankings, but doesn't stand out, and barely any apps are below that then-huge 7MB.
My back-of-my-head benchmark is still my old Amiga. Here's[0] a full-blown GUI email app that was perfectly nice to use. The entire package, complete with all its custom GUI classes and 3 sets of icons, took 1.4MB uncompressed.
I know the thousand legitimate reasons why modern apps are larger. It's not all bloat and inefficiency, either, except in the harshest sense that old apps tended to use byte-optimized data structures like linked lists instead of faster, but less space-efficient structures like hash maps. They have to deal with higher resolutions, although the command to draw an empty white 320x200 square on the screen should be approximately the same size as to draw a 2000x1500 one. And yet, wow, it doesn't seem like it should need to be that much bigger.
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, doing compression, even bitshifting, to make apps smaller for the companies I worked for. Reducing how many people would be bounced from downloading or installing the app.
And yet, that impressive 12MB app from a venture backed company with hundreds of thousands of users was getting me penalized for taking up so little space
I literally started putting dummy files in the app bundles and it worked for my professional goals. All kinds of premium marketing has similar fictions in them to convey value
so I can emphasize how its the difference between $50/hr upwork gigs inconsistently, and $500,000/yr at Google
Part of it is resolution. The icons and such in apps are much larger now than they were in 2013. Besides that I mentioned this in another thread but rarely will a team clean up after itself. There's probably tons of dead code and what not in a lot of these larger apps. I know all the ones I've worked in had a lot of bloat just from years of work. Some feature gets added 5 years ago by a team that no longer exists, it was turned off and no longer used but who is going to remove it?
Besides that, there's just a lot of garbage that gets added by various people with different interests. An unoptimized version of the app I'm currently working on has a ~15mb binary, the core app not including all the "extras" people have asked for. It has about 75mb of assets, probably 10-15% are unused but I have no idea. The download size is about 400mb.
Guys, do you think AI is like newage bloatware? Like, it's gigabytes of just things you're never going to need, and now ram prices are skyrocketing because they have no idea how to make it efficient.
In fact, they state the oppposite: To really make it go, they need petawatts of energy and compute. It's like Windows incarnate.
>"I had no idea common apps used to be just 10-30 MB"
I wrote native Windows desktop application 10 years ago that still brings me some money. It has boatload of functionality and the size is 12MB. Competitors have similar app written in .NET. The install is about 1GB.
There are full-featured operating systems that fit on like one or a few floppy disks. Standard Linux distros would fit on a standard 600-700 MB CD, with some made for mini CDs being much smaller.
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 spaces, plus the heavy protocol buffer definitions and gRPC libraries that underpin them.
Even if you don't use the "meet" tab, the binary could be including the video codecs, the real-time transmission logic plus the AR filter assets, because the app is compiled as a "Super App" container rather than a modular mail client. I feel it's an organizational artifact as much as a technical one.
This is more like the what causes these apps to be so large, but when you ask why then you see that they simply do not care about the amount of space they take on users’ devices. There’s no obvious effort to reduce app size with modular design, it simply feels like they don’t care.
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).
Very insightful, rather than unjustified speculation. Of course it doesn’t explain why many other apps are so big, e.g. Withings, Bunq (bank), and Albert Heijn (supermarket) together eat 1GB of my storage. All 3 are things I need to list data, but somehow are the size they are.
It's pretty much the results of inter-platform competition. None of the actors want to use what the others are making for various reasons which I think are valid. For example, history has showned that being completly dependant on Apple tooling/frameworks/APIs isn't really a good idea because they are not a trustworthy player.
The same thing could be said about the reverse I guess and about most companies in general.
Software really has a big dependency problem because the sellers always bundle it with a service or a hardware in order to make money. I doubt it can be solved, since one has to make money somehow.
The table at the end is seriously misguided. You can’t compare the sizes of an iOS preinstalled app against a non-preinstalled app. It’s just a thin UI shell where the code for all the functionality is inside system frameworks. The Photos app is quoted at 4.2MB. Guess what, if you delete that, you still have system components to render photos, UI for a photo picker, perform analysis on photos such as face recognition, all the iCloud networking code to support iCloud Photo Library, etc.
You can though because a lot of those things you're talking about are available for any app. Sure Apple does have some private frameworks and what not that aren't available to everyone but I imagine if you wanted to recreate what the photo app is doing you'd be able to in 4.2mb or less.
> why is the Gmail app almost 80x the size of the native Mail app?
Apple Mail leverages libraries and frameworks already present on the device.
Google uses libraries and frameworks very likely already present on say Android, but on iOS they have to ship a gigantic runtime that implements those things the app depends on; this way they only have to write the app once for several supported platforms.
I’m just speculating by the way but it sounds like the likely reason.
You’ll notice Google Docs or sheets are equally gigantic because each also ships a copy of those enormous runtimes.
There's actually a bit more to it than that. A lot of what Apple apps actually do is hidden in frameworks made for that one specific app, which, unlike with 3rd-party applications, are part of the system, not of the app itself.
Compare the size of Safari.app versus Safari Technology Preview.app (which actually ships all the frameworks it needs).
Windows 98 and Office 97 in their entirety are less than 700MB combined. How have things gotten so out of hand that a single email client needs more than an entire OS and office suite used to?
I’m sorry but ~700MB of compiled code, text, and vector graphics is a lot of assets, almost a truck load. It doesn’t look like they care about how much space they take in users’ devices at all.
There's a few other apps that are ridiculously big. Like the DJI Mimo app. It's an app I need for my DJI Mic, to change 4 settings on it. It needs 800MB for that which is absolutely ridiculous. Also I need to sign up for an account to use it even though the Mic works completely locally and it just changes the settings over USB.
It's absolutely fucking ridiculous to have an 800MB app for this and the reason is just marketing. It's full of stupid videos promoting their stuff. And the account just causes stupid spam. I should have returned the damn thing to be honest.
Ps pardon my french but I'm really annoyed about this and in this case it's warranted in my opinion. 800MB is ridiculous.
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.
It's not just Gmail. Most of the popular apps on iOS are literally 10x bigger than their Android versions. It's hard to find a popular iOS app that's smaller than an Electron app.
Well, something fishy is going on because there is literally no way that Safari, in its entirety, is 5.1 MB. The numbers for the others app seem similarly off.
It would be really hard to believe that somehow Apple has found some magic formula to make their apps 100x smaller than Google and Microsoft.
Much more likely is that the reporting by the OS is off somehow (probably most of the app functionality is tied up in shared resources counted towards system files, and not counted towards the app's size).
With respect, I would expect more from articles posted on Hacker News. More thorough research, and in fact an answer to the question.
The article compares the native (iOS) mail app which is (from the article) 8.7MB. What I believe is happening is that the gmail app is not a native app, it is some cross-platform monstrosity, so Google has to bring all the widgets and doo-dads that they wrote so that it looks just like it does on all the other platforms. The native iOS mail app is so tiny because part of iOS that the article mentions taking up 25GB contains all the native widgets and doo-dads that the native mail app can use.
I think that's true and it's also a convenient way to "smuggle" in Google's most important doodads: their tracking apparatus which includes all of the single sign on and MFA stuff on top of the usual analytics
It’s wild when you put it into context. I remember when Gmail first opened to the public with a whopping *1 GB* of storage… now the app alone almost exceeds that.
On Android vs iOS, it's worth noting Android apps are smaller than iOS apps. The details are complicated but this report says after installation Android apps take up about half the space as iOS. https://www.safetydetectives.com/blog/app-storage-usage-rese...
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 soon as I see any of the app has loaded.
I genuinely struggle to understand how apps can get that large. Games with hi-res graphics, sure. But Gmail barely has any assets. And they aren't shipping with custom runtimes or anything of that sort (like an Electron app) because Apple doesn't allow it. So how much code can you possibly write that compiles to 700 MB?
I'm assuming one reason is frameworks. They can get quite big.
Another reason, is rusty code (not Rust. It's a play on the saying "Code doesn't rust", which I used to hear, last century).
It does, indeed, rust. Actually, "rots" is probably more apropos.
I'll bet that's the reason that Xcode is such a pig (makes GMail look like an anorexic).
Code is created that people no longer understand, so they are loath to make large changes. They just do enough to fix a bug, and pray that they don't need to dig any deeper. One of my first software jobs, was exactly like that.
When that happens, the code never shrinks. It just accretes.
The easy answer: Google simply does not care. Some mix of: they don't measure it, they don't look at it, they don't goal around reducing it, nobody's performance review is going to be better because they reduced it, no director is asking product teams why they're increasing the app size. It's not surprising why these companies don't care, because it's a tragedy of the commons. The better question is why is Apple allowing these companies to ship apps that unnecessarily take up a meaningful amount of storage space?
It might have to do with the fact that (at least on iOS), you can participate in a Google Meet call with just the Gmail app, as well as authenticate sign-ins, and who know what more.
Could the main issue be Google is shipping apps within apps?
Mine is not 200MB on Android - the base apk is 67MB + 32MB for the ARM v8a specific libs. This is the code, the local caching and other data might make up the rest.
For Android, you can check [1] Download the apk, rename it as a zip and look inside to see the files.
A quick file analysis of the 67MB shows around 58MB of java code and some 32MB of ARM libs, 31MB of this is the libvideochat.
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.
The question why is almost all modern apps pushing around 1G.
It is dependencies, if you ever compiled almost any GUI application via prots/pkgsrc on a BSD, you will be shocked by the dependencies that application needs, it is obscene.
It is dependencies but not from the GUI. As someone who has worked on several very large apps I can tell you 99% of the bloat is garbage. Someone somewhere wants this SDK from their friend's company in the app. Some manager wants to track X using this very specific framework. Some designer decided to add in animations in one screen that requires another framework to run and also 10mb in assets. etc, etc, etc. If your app is 10+ years old this all adds up and no one ever cleans any of it up. There's probably like 100mb of crap you can delete that doesn't even work anymore but who has time to remove that?
The Facebook and Instagram iOS apps were/are enormous codebases. Absurd, sprawling monsters with tons of dead code, duplication, and old stuff.. like being written in mostly Objective-C.
I imagine the Gmail app also suffers from having zillions of engineers touch it without being incentivized to make it better or smaller, only to add features and impact for the all-important performance review.
Add zillions of instrumentation and third-party frameworks, each with piles of dependencies, and apps will grow without bounds like molecules of gas to fill the container.
I believe it is because it includes a suite of enterprise management features in addition to Gmail-related features. (Search for "google basic mobile device management" for more info.)
One of the reasons the Facebook app was large was that they were using Thrift or something and generating a tremendous amount of code for their API interop. Protobuf+GRPC is similarly heavyweight, so I wouldn't be surprised if some megabytes were dedicated to the generated code. But hundreds of megabytes is wild. It has to be one-package compatibility as opposed to specialized app packages for different form factors etc.
Don't blame the users. Unless Google have hidden a copy of Crysis inside the Gmail app there's no hidden functionality which should come even close to requiring hundreds of megabytes.
I know that in some cases, apparent bloat like this is related to needing to support so many potential devices and versions of the underlying OS. Google has to support, on iOS, roughly 6 years of devices and their variations + OS variations on them. Each of these may require their own libraries compiled against it, for optimal performance or because it simply is less practical to engineer non-breaking updates against new SDK and HW versions in the same codebase without introducing complexity.
Apple, on the other hand, doesn't have to do this. They can integrate at lower levels and even with all else being equal can develop updates with perfect insight on the ecosystem and foresight on things to come.
Somewhat supporting this possible explanation is that, similar to Apple on iOS, Google's apps on android are significantly smaller.
Google and others are putting 2FA notifications in their regular apps like gmail. I had to open my gmail app to get a 2FA code instead of my google authenticator app today... which is very weird and probably increases the needed security of the gmail app in addition to the size
For me, the most important takeaway from the article was that the Passwords app supports 2FA codes! I was not aware of this, that's nice and getting rid of Authenticator is one less Google thing to worry about.
I’m surprised so few comments have pointed out how this doesn’t matter at all to anybody. The “apps are too bloated” debate is a dessicated horse.
1. You don’t even have to use the Gmail app to use Gmail. Pick whatever flavor of client you want, they all support Gmail. Apple Mail, Outlook, or something else entirely.
2. If you buy the shittiest available new iPhone it has 128GB of storage. Used iPhone 15 on Swappa with 512GB is <$500. How many of you need hundreds of apps installed on your phone?
3. Nobody’s forcing you to use Gmail. Email is an open federated standard. Use something else.
I maintain an app size inspection tool that runs locally on your macOS and added the file inspector (Sunburst chart) for Gmail if anyone is interested in exploring its contents.
As others have pointed out, the main executable is huge (~300MB) and there are a lot of localization files, but not too much traditional asset duplication.
This is why I use installable PWAs wherever possible. On my Android phone right now, the Outlook PWA uses 281kB. You still get notifications, but I haven't measured if data usage is higher.
Until someone stops installing gmail because it's too big (and it's coming back as a signal), I doubt anything will be done about it. In the absence of constraints, things just keep growing... without constraints. The costs of pruning/shaking embedded frameworks, refactoring, optimization, etc. cannot be justified if it's not signaled as a problem by customers.
I just looked at Gmail on my Android phone and it is only 164 MB. That is a big difference.
Also, one thing that annoyed me when I used iPhones is that you can't remove an app's cache without reinstalling it and losing all your data. And most modern applications think cache is free so they use a lot of it. Many times it will exceed even your installed apps or data size.
The real reason is Google has no incentive to make it smaller. In fact there is incentive to make it bigger. If your phone runs out of space you need to get a new phone with more memory, or move pictures and the like to the cloud, both of which are good news for Google. So why spend any effort keeping the size down.
My guess: phone get more storage so we can build fatter apps. With RAM and storage getting more expensive maybe developers will face some pressure to deliver slimmer apps but I don't have many hopes for that. It's going to take at least a couple of device replacement cycles with lower and lower RAM and storage for that to happen.
Of course it's self-hosted intelligence gathering or metadata auditing. This is Google we're talking about. They're "pushing compute to the edge," taking advantage of more powerful mobile processors to reduce their own infrastructure cost while still providing that sweet sweet Big Data, as they used to call it.
Android seems to be a bit better in that regard: not in the sense that applications are smaller (though I think they are, slightly), but rather that you can easily unpack or decompile most of them and see what's inside.
There it tends to be mostly due to dependencies, including some native libraries in multiple copies for 2-3 CPU architecture.
Software has gotten out of control. A simple Gmail client is now larger than an entire operating system was just a few years ago. And their “web apps” like Google Cloud Console, are so slow that they’re practically unusable in Firefox. Pinnacle of software engineering at Google :/
I’m just guessing but probably because it’s not just GMail, it’s likely chock full of all Google’s other walled garden nonsense. Hey, you installed GMail? Great, here’s a 2FA client for all federated Google logins everywhere too. hell i’m surprised it doesn’t contain the entire chrome browser as well.
I haven’t made iPhone apps but my guess it that the size comes from bundling libraries and dependencies needed, sort of like how venv includes as snapshot of python and all dependencies into your project folder. Apple core apps probably uses iOS libraries (25GB) already on the device
Sure, Electron does not come natively for iOS. But with tools like Capacitor, you can take a web app (even an Electron one) and package it for iOS/Android, adding native features and running in a native WebView, allowing it to be an “Electron for Mobile”.
You just need to check the version history for mobile apps to see what the developers are doing! It’s a wealth of information on new features and changes.
For example here’s the Facebook app for iOS:
543.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2w ago)
542.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (3w ago)
541.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
541.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
540.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
539.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
539.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
538.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (1mo ago)
538.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
537.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
536.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
535.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
534.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
534.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (2mo ago)
533.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (3mo ago)
532.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (3mo ago)
531.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (3mo ago)
530.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (3mo ago)
529.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
529.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
528.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
527.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
526.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
525.0.0 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (4mo ago)
524.1 — Our teams have solved many crashes, fixed issues you’ve reported and made the app faster. (5mo ago)
Size should be a product metric so that it is tracked and optimized. Same goes for memory consumption. It's easy for product to come up with features and run the enxt cool experiment but your users don't care about any of that.
Android is slightly less horrendous but still bad - probably because at least in some markets enough people have low end phones that size does somewhat matter. I suspect Uber made optimizing app size a priority once they realized that their 1 GB behemoth was hovering on the top of the "things you can delete instead of your wedding photos if you want to be able to continue to use your phone" list, and they were losing customers over it. But there are still apps that are hundreds of MB with no valid reason to be that fat.
Meanwhile, well-written browsers - which are essentially whole operating systems - are in the dozens, so this is 100% bloat.
There simply is little incentive to optimize apps for size, because someone else pays the price and there is little consequence for making it big. Slapping another data collection or ad SDK into the app is easy and free.
If the EU was serious about it, it would consider it part of the ecodesign rules since it forces people to buy new phones for more storage much earlier than needed.
If the app stores were serious about it, they'd either re-introduce the hard cap and stick to it, or at least show the size prominently. Or start charging fees for bloaty apps. At least on the mobile version of the Play store, I don't think you can even see the app size without starting an install - let alone search or filter by it. It's as if they want to encourage bloat.
I just use the gmail mobile website on my smartphone and put a link to it on my Home Screen. So many of these services you don’t necessarily need an app for, unless you just enjoy giving them your personal data or something ha ha
And every single update to every single app is another 500MB. Even if the notes are just “we love enhancing our app, so here’s some tiny bug fixes or something. We won’t actually tell you what we have changed”
Because most phones have enough memory to handle all the bloat, and when they don't, Google can sell those people cloud space. Not to mention that adding more memory is how phone manufacturers earn money - out of my ass example just to illustrate the concept: 100GB phone costs $400, same phone but with 200GB memory costs $500, 100GB memory chip costs $20, manufacturer pockets the difference. Having bloated apps and no SD card (iOS doesn't support SD Cards, Android makes them work like shit on purpose) justifies in the eye of the consumer the necessity of extra memory. Most people have fast internet connection so download time is always acceptably small, no matter how much bloat you put, not to mention that updates are in the background anyway.
The economic pressure to keep apps small is literally negative.
It does do a lot of auth / security stuff for the entire Google Account... not 700 MB worth, but still thinking of the Gmail app as "just an email app" doesn't do it justice either.
even though I have more data than I ever use on my plan, after 15yr's exclusivly on mobile data, I reflexivly look at the size of anything before I download something, 700mb is bonkers for email, and I have started to reject many other apps, based on there improbable sizes.
useing android my phone has gmail iremovably installed on my phone, but was disabled before I even put a sim in it, but in spite of this, having just checked, it has user data, something in cache, and has used some internet data.
how creepy is that.
This may finally drive me to just use Apple Mail for my Google Workspace account. I know it's not a fair comparison, but an app I made that's in the App Store is only 8MB.
Personally I always wonder why a pdf tool puts 3-6 background processes on startup that are constantly doing something with my CPU and internet connection when my PC is otherwise idle.
Not surprising, sadly. In 2022, a friend who did trekking, asked how to view files with national parks borders on a map. I recommended installing QGIS desktop (geospatial viewer/editor of files/database tables). He replied: "1 GB of download?! Seriously?!" I was surprised, because last time I had paid attention, maybe in 2016, it was ~200 megs. I checked, and indeed, it weighed 1 gig. I checked in 2025, and it's beyond 1,3 gig now. And it's FOSS, not commercial bloatware you might think. I have no idea what they stuff it with.
Just yesterday, I wanted to generate a GeoTiff on a macbook. To do it in a simple way, you need libGDAL, a geo-spatial abstraction library that exists since maybe the '90 and supports all thinkable formats. Under Linux, you just install it together with QGIS as a dependency. Mac is still unix, so you may think, a 3-decades old library, with few patches to support modern formats, should be just a couple of megs, right? Brew suggested downloading ~2 GB of ~100 packages!!!! Half of them were aws-* (yes, AWS tools), and 1 GB of LLVM!!! (is it their whole GIT repo with 10M SLOC?)
For geotiff, I ended just using standard Tiff library, inserting my 4 geospatial tags with a few lines of code.
The brew LLVM situation is crazy and even more noticeable when you're on older macOS for which they no longer ship precompiled stuff.
I know they don't want stuff breaking because users have a GCC version that's 6 months behind and the homebrew folks can't be sure that package XYZ doesn't use any newer features. But when installing anything built with C++ I really don't expect to wait half a day for the whole LLVM+CMake toolchain to compile from scratch.
You can pin LLVM but it's useless as there's no bypass to the version check. They've also closed all relevant issues as "won't fix" as it's not "their way of doing things".
I just downloaded QGIS to take a look. On my Mac, it takes 2.1GB of disk space after installation, which has some notable space sinks:
* 562mb of Python 3.11 and libraries (of which 240mb goes to the qgis python library, 101mb goes to duckdb, and 50mb to PyQt5)
* 130mb to i18n
* 140mb to `libclntsh.dylib` which I think is the Oracle DB client library?
* 80mb to libduckdb.dylib, separate from the Python version
* 80mb to libQtWebKit
I am not sure QGIS is a good comparison to this. The projection information dataset is nearly 800 MB on its own. But it's not really PROJ's fault that there are so many projections to manage.
Spot on! We tried to somehow reduce the libcef size in our B2B app - barely could do that. We had to employ some fancy compression techniques, but still this thing is huge!
Not only is the YouTube iOS app huge, it uses an atrocious amount of additional storage. It was using over 2GB on my iPad for...something...and the only way to clean that up was to delete the app and reinstall.
The Apple vs Google app size comparison is so disingenuous. It doesn't take into account all of the preinstalled iOS dependency libraries used by these Apple apps.
Hacker News is currently sitting at 130 MB. I simply do not understand how these things are calculated but I suspect the calculated amount that the Chrome tab diagnostic isn't a consistent way of comparing to other application memory usages, or at least a mental model that makes sense to most people (e.g. whats a lot of memory consumption? what should it be? is it too high, is it too low? etc.)
>Gmail isn’t even the worst offender, it’s just a more popular one. The Tesla and Crypto.com apps are around 1 GB each.
One reason is those are typically apps which need to be heavily secured. So behind the seemingly "simple" user interface and functionalities, there's so much security related code to ensure their "safety".
More importantly, it's difficult to code without dependencies.
Generally the larger the codebase the harder it is to secure. I am less worried about security vulnerabilities on small tightly focused apps than I am on gigantic monstrosities with hundreds of different attack surfaces.
According to looking at a 1,000 line code file on my machine right now, a million lines is about 48mb. You think > 10 million lines of code are required for security in an app?
Some comments were deferred for faster rendering.
crazygringo|1 month ago
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 bitmap graphics. Since the article doesn't give any answer, I'm assuming it's a hand-wavy "frameworks", but that's an enormous amount of compiled code.
Aachen|1 month ago
More like a few dozen kilobytes to a handful of megabytes. If you look in F-Droid you can find some good old apps where graphics are either small or it uses the default styles for buttons and the like
Looking at a tiny utility app I made 6 years ago, it's 9KB, most of which will be the default things the compiler includes
jorams|1 month ago
This is Android, but: 13+ years ago I had an HTC Desire. I was really struggling with internal storage space, regularly uninstalling and replacing apps just to be able to update others. Eventually I moved to custom ROMs just because they allowed some apps to be moved to the SD card.
I remember the biggest problem was WhatsApp, which was somehow over 7MB while the average was closer to 1MB.
On my current phone WhatsApp is 231MB. It's still pretty high up in the rankings, but doesn't stand out, and barely any apps are below that then-huge 7MB.
kstrauser|1 month ago
I know the thousand legitimate reasons why modern apps are larger. It's not all bloat and inefficiency, either, except in the harshest sense that old apps tended to use byte-optimized data structures like linked lists instead of faster, but less space-efficient structures like hash maps. They have to deal with higher resolutions, although the command to draw an empty white 320x200 square on the screen should be approximately the same size as to draw a 2000x1500 one. And yet, wow, it doesn't seem like it should need to be that much bigger.
[0] https://aminet.net/package/comm/yam/YAM20
zffr|1 month ago
With dynamically linked frameworks you bear the cost of the entire framework (and its dependencies) even if you just use a few functions.
iOS apps also need to include all localized assets in each app bundle.
renrutal|1 month ago
Google Meet was launched in March 2017.
londons_explore|1 month ago
orthoxerox|1 month ago
yieldcrv|1 month ago
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, doing compression, even bitshifting, to make apps smaller for the companies I worked for. Reducing how many people would be bounced from downloading or installing the app.
And yet, that impressive 12MB app from a venture backed company with hundreds of thousands of users was getting me penalized for taking up so little space
I literally started putting dummy files in the app bundles and it worked for my professional goals. All kinds of premium marketing has similar fictions in them to convey value
so I can emphasize how its the difference between $50/hr upwork gigs inconsistently, and $500,000/yr at Google
kjkjadksj|1 month ago
tarentel|1 month ago
Besides that, there's just a lot of garbage that gets added by various people with different interests. An unoptimized version of the app I'm currently working on has a ~15mb binary, the core app not including all the "extras" people have asked for. It has about 75mb of assets, probably 10-15% are unused but I have no idea. The download size is about 400mb.
BobbyTables2|1 month ago
We crossed lunacy long ago.
amelius|1 month ago
This is one of the reasons why these apps grow: because the user doesn't notice!
cyanydeez|1 month ago
In fact, they state the oppposite: To really make it go, they need petawatts of energy and compute. It's like Windows incarnate.
FpUser|1 month ago
I wrote native Windows desktop application 10 years ago that still brings me some money. It has boatload of functionality and the size is 12MB. Competitors have similar app written in .NET. The install is about 1GB.
marcosdumay|1 month ago
Phones used to have 4GB of flash memory... Some had 2GB.
wakawaka28|1 month ago
SirMaster|1 month ago
Fiveplus|1 month ago
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 spaces, plus the heavy protocol buffer definitions and gRPC libraries that underpin them.
Even if you don't use the "meet" tab, the binary could be including the video codecs, the real-time transmission logic plus the AR filter assets, because the app is compiled as a "Super App" container rather than a modular mail client. I feel it's an organizational artifact as much as a technical one.
zbentley|1 month ago
(And yes I know it’s a tiny fraction of the size, let me have my fun).
itopaloglu83|1 month ago
This is more like the what causes these apps to be so large, but when you ask why then you see that they simply do not care about the amount of space they take on users’ devices. There’s no obvious effort to reduce app size with modular design, it simply feels like they don’t care.
jeffbee|1 month ago
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).
port11|1 month ago
seec|1 month ago
Software really has a big dependency problem because the sellers always bundle it with a service or a hardware in order to make money. I doubt it can be solved, since one has to make money somehow.
j45|1 month ago
kccqzy|1 month ago
tarentel|1 month ago
loloquwowndueo|1 month ago
Apple Mail leverages libraries and frameworks already present on the device.
Google uses libraries and frameworks very likely already present on say Android, but on iOS they have to ship a gigantic runtime that implements those things the app depends on; this way they only have to write the app once for several supported platforms.
I’m just speculating by the way but it sounds like the likely reason.
You’ll notice Google Docs or sheets are equally gigantic because each also ships a copy of those enormous runtimes.
miki123211|1 month ago
Compare the size of Safari.app versus Safari Technology Preview.app (which actually ships all the frameworks it needs).
Kwpolska|1 month ago
josephcsible|1 month ago
itopaloglu83|1 month ago
HPsquared|1 month ago
wolvoleo|1 month ago
It's absolutely fucking ridiculous to have an 800MB app for this and the reason is just marketing. It's full of stupid videos promoting their stuff. And the account just causes stupid spam. I should have returned the damn thing to be honest.
Ps pardon my french but I'm really annoyed about this and in this case it's warranted in my opinion. 800MB is ridiculous.
Aperocky|1 month ago
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.
simonw|1 month ago
Why IS the Gmail app 700MB?
bdhtu|1 month ago
BatteryMountain|1 month ago
Gboard 247MB
Google 415MB
Google Play Services 1330MB
Google Play Store 165MB
Messages 321MB
Gmail 233MB
citizenpaul|1 month ago
layer8|1 month ago
HendrikHensen|1 month ago
It would be really hard to believe that somehow Apple has found some magic formula to make their apps 100x smaller than Google and Microsoft.
Much more likely is that the reporting by the OS is off somehow (probably most of the app functionality is tied up in shared resources counted towards system files, and not counted towards the app's size).
With respect, I would expect more from articles posted on Hacker News. More thorough research, and in fact an answer to the question.
jacobp100|1 month ago
afavour|1 month ago
HumblyTossed|1 month ago
mattacular|1 month ago
oenton|1 month ago
NelsonMinar|1 month ago
One specific complication: Apple's store reports install size, Google Play reports compressed download size. https://www.emergetools.com/blog/posts/are-android-apps-real...
landr0id|1 month ago
AFAIK iOS does not offer anything similar.
CGMthrowaway|1 month ago
Frameworks 150MB
Assets for all screen resolutions 50MB
Google Meet/Chat/etc 100MB
AI models 25MB
taeric|1 month ago
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 soon as I see any of the app has loaded.
xigoi|1 month ago
Yet there is a positive correlation between size and startup time…
einpoklum|1 month ago
paxys|1 month ago
lostmsu|1 month ago
ChrisMarshallNY|1 month ago
Another reason, is rusty code (not Rust. It's a play on the saying "Code doesn't rust", which I used to hear, last century).
It does, indeed, rust. Actually, "rots" is probably more apropos.
I'll bet that's the reason that Xcode is such a pig (makes GMail look like an anorexic).
Code is created that people no longer understand, so they are loath to make large changes. They just do enough to fix a bug, and pray that they don't need to dig any deeper. One of my first software jobs, was exactly like that.
When that happens, the code never shrinks. It just accretes.
csoups14|1 month ago
paxys|1 month ago
The answer to this one is obvious - to incentivize you to buy iPhones with more storage and/or higher tier iCloud plans.
roesel|1 month ago
Could the main issue be Google is shipping apps within apps?
RachelF|1 month ago
For Android, you can check [1] Download the apk, rename it as a zip and look inside to see the files.
A quick file analysis of the 67MB shows around 58MB of java code and some 32MB of ARM libs, 31MB of this is the libvideochat.
[1] https://www.apkmirror.com/apk/google-inc/gmail/gmail-2025-11...
tonymet|1 month ago
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.
jmclnx|1 month ago
It is dependencies, if you ever compiled almost any GUI application via prots/pkgsrc on a BSD, you will be shocked by the dependencies that application needs, it is obscene.
tarentel|1 month ago
burnt-resistor|1 month ago
I imagine the Gmail app also suffers from having zillions of engineers touch it without being incentivized to make it better or smaller, only to add features and impact for the all-important performance review.
Add zillions of instrumentation and third-party frameworks, each with piles of dependencies, and apps will grow without bounds like molecules of gas to fill the container.
lkurtz|1 month ago
arjie|1 month ago
kccqzy|1 month ago
As a regular user, you are probably using 10% of all features available.
wackget|1 month ago
esafak|1 month ago
fx1994|1 month ago
LePetitPrince|1 month ago
[deleted]
fooblaster|1 month ago
ineedasername|1 month ago
Apple, on the other hand, doesn't have to do this. They can integrate at lower levels and even with all else being equal can develop updates with perfect insight on the ecosystem and foresight on things to come.
Somewhat supporting this possible explanation is that, similar to Apple on iOS, Google's apps on android are significantly smaller.
datadrivenangel|1 month ago
SoftTalker|1 month ago
inetknght|1 month ago
calin2k|1 month ago
aaronbrethorst|1 month ago
Etheryte|1 month ago
paxys|1 month ago
dangus|1 month ago
1. You don’t even have to use the Gmail app to use Gmail. Pick whatever flavor of client you want, they all support Gmail. Apple Mail, Outlook, or something else entirely.
2. If you buy the shittiest available new iPhone it has 128GB of storage. Used iPhone 15 on Swappa with 512GB is <$500. How many of you need hundreds of apps installed on your phone?
3. Nobody’s forcing you to use Gmail. Email is an open federated standard. Use something else.
nottorp|1 month ago
Ram is what, 3-4x?
It's a great time to ship more bloated apps, the suckers will enrich the hardware manufacturers, won't they?
asadotzler|1 month ago
elpakal|1 month ago
As others have pointed out, the main executable is huge (~300MB) and there are a lot of localization files, but not too much traditional asset duplication.
You can click into different slices of the app and see what it's made of if interested: https://dotipa.app/?app=Gmail#examples
ramsj|1 month ago
heisenbit|1 month ago
maratc|1 month ago
That one's on the author. Duo Mobile is 2MB and shows the same 6-digit codes just fine.
josefresco|1 month ago
There's a comment in the article with two helpful links:
https://news.ycombinator.com/item?id=30443570 https://www.emergetools.com/app/example/ios/com.google.Gmail
The bloat? Mostly "localization".
kuekacang|1 month ago
charles_f|1 month ago
nromiun|1 month ago
Also, one thing that annoyed me when I used iPhones is that you can't remove an app's cache without reinstalling it and losing all your data. And most modern applications think cache is free so they use a lot of it. Many times it will exceed even your installed apps or data size.
tgma|1 month ago
popoflojo|1 month ago
lifestyleguru|1 month ago
pmontra|1 month ago
neuroelectron|1 month ago
3ple_alpha|1 month ago
There it tends to be mostly due to dependencies, including some native libraries in multiple copies for 2-3 CPU architecture.
waldrews|1 month ago
elpakal|1 month ago
neop1x|1 month ago
urbandw311er|1 month ago
mskogly|1 month ago
rekabis|1 month ago
Sure, Electron does not come natively for iOS. But with tools like Capacitor, you can take a web app (even an Electron one) and package it for iOS/Android, adding native features and running in a native WebView, allowing it to be an “Electron for Mobile”.
conradkay|1 month ago
transcriptase|1 month ago
For example here’s the Facebook app for iOS:
innagadadavida|1 month ago
tgsovlerkhgsel|1 month ago
Meanwhile, well-written browsers - which are essentially whole operating systems - are in the dozens, so this is 100% bloat.
There simply is little incentive to optimize apps for size, because someone else pays the price and there is little consequence for making it big. Slapping another data collection or ad SDK into the app is easy and free.
If the EU was serious about it, it would consider it part of the ecodesign rules since it forces people to buy new phones for more storage much earlier than needed.
If the app stores were serious about it, they'd either re-introduce the hard cap and stick to it, or at least show the size prominently. Or start charging fees for bloaty apps. At least on the mobile version of the Play store, I don't think you can even see the app size without starting an install - let alone search or filter by it. It's as if they want to encourage bloat.
danielktdoranie|1 month ago
didip|1 month ago
MagicMoonlight|1 month ago
anal_reactor|1 month ago
The economic pressure to keep apps small is literally negative.
unsupp0rted|1 month ago
metalman|1 month ago
pgib|1 month ago
isaachinman|1 month ago
https://marcoapp.io
titzer|1 month ago
The conversation is always the same, only there is another zero on the end.
We'll have terabyte apps in not too long.
(100% serious)
drnick1|1 month ago
phplovesong|1 month ago
Digit-Al|1 month ago
atmosx|1 month ago
adzm|1 month ago
j45|1 month ago
1vuio0pswjnm7|1 month ago
Same goes for other other bloated apps mentioned in the blog post
pacifika|1 month ago
pavel_lishin|1 month ago
transcriptase|1 month ago
xnx|1 month ago
culebron21|1 month ago
Just yesterday, I wanted to generate a GeoTiff on a macbook. To do it in a simple way, you need libGDAL, a geo-spatial abstraction library that exists since maybe the '90 and supports all thinkable formats. Under Linux, you just install it together with QGIS as a dependency. Mac is still unix, so you may think, a 3-decades old library, with few patches to support modern formats, should be just a couple of megs, right? Brew suggested downloading ~2 GB of ~100 packages!!!! Half of them were aws-* (yes, AWS tools), and 1 GB of LLVM!!! (is it their whole GIT repo with 10M SLOC?)
For geotiff, I ended just using standard Tiff library, inserting my 4 geospatial tags with a few lines of code.
trinix912|1 month ago
I know they don't want stuff breaking because users have a GCC version that's 6 months behind and the homebrew folks can't be sure that package XYZ doesn't use any newer features. But when installing anything built with C++ I really don't expect to wait half a day for the whole LLVM+CMake toolchain to compile from scratch.
You can pin LLVM but it's useless as there's no bypass to the version check. They've also closed all relevant issues as "won't fix" as it's not "their way of doing things".
maximilianburke|1 month ago
* 562mb of Python 3.11 and libraries (of which 240mb goes to the qgis python library, 101mb goes to duckdb, and 50mb to PyQt5) * 130mb to i18n * 140mb to `libclntsh.dylib` which I think is the Oracle DB client library? * 80mb to libduckdb.dylib, separate from the Python version * 80mb to libQtWebKit
scblock|1 month ago
ChoGGi|1 month ago
bigbuppo|1 month ago
David_Osipov|1 month ago
unknown|1 month ago
[deleted]
esafak|1 month ago
theLegionWithin|1 month ago
agumonkey|1 month ago
dbacar|1 month ago
rconti|1 month ago
n4bz0r|1 month ago
tqian|1 month ago
wrs|1 month ago
eYrKEC2|1 month ago
(700 MB more is also an acceptable increase for this feature)
On second thought, I love looking at on-duty page emails in the middle of the night with 7 million lumens blasting my retinas.
kernal|1 month ago
turtlebits|1 month ago
sprinfo|1 month ago
LePetitPrince|1 month ago
[deleted]
KingLancelot|1 month ago
[deleted]
NedF|1 month ago
[deleted]
mbesto|1 month ago
Aachen|1 month ago
halapro|1 month ago
begueradj|1 month ago
One reason is those are typically apps which need to be heavily secured. So behind the seemingly "simple" user interface and functionalities, there's so much security related code to ensure their "safety".
More importantly, it's difficult to code without dependencies.
Aachen|1 month ago
jandrese|1 month ago
maybeOneDay|1 month ago