9 ms·
You know what also have huge app sizes, it's various iOS email app. Fastmail is the only email/calendar app with a reasonable size (just 20MB) [0]. - Gmail (39
by alberth 5y ago
You know what also have huge app sizes, it's various iOS email app. Fastmail is the only email/calendar app with a reasonable size (just 20MB) [0].
- Gmail (397MB) [1]
- Outlook (328MB) [2]
- Hey (69MB) [3]
- Protonmail (128MB) [4]
[0] https://apps.apple.com/us/app/fastmail-email-calendar/id931370077 https://apps.apple.com/us/app/fastmail-email-calendar/id9313...
[1] https://apps.apple.com/us/app/gmail-email-by-google/id422689480 https://apps.apple.com/us/app/gmail-email-by-google/id422689...
[2] https://apps.apple.com/us/app/microsoft-outlook/id951937596 https://apps.apple.com/us/app/microsoft-outlook/id951937596
[3] https://apps.apple.com/us/app/hey-email/id1506603805 https://apps.apple.com/us/app/hey-email/id1506603805
[4] https://apps.apple.com/us/app/protonmail-encrypted-email/id979659905 https://apps.apple.com/us/app/protonmail-encrypted-email/id9...
- marcellus23 5y agoFastmail is also mostly a wrapper around web views (but then again, so is Hey)
- kitsunesoba 5y agoI haven’t analyzed their binaries or anything like that, but I’d wager that a significant chunk of the heft of the Gmail and Outlook iOS apps are Google/Microsoft’s custom UI frameworks.
- throwawaylinux 5y agoThat's terrible.
- deleted 5y ago[deleted]
- petters 5y agoIt's ridiculous. The complete size of Mario 64 with all assets is 6MB.
- anthk 5y agoAnd the whole 9front weights less than those apps. When I was a Windows user, a video player install of more than 80MB would be slightly bloated. Today my OpenBSD install uses less than 3GB and it has far more stuff than a phone install. Golang binaries are like 5-15x the size of a dinamically linked C binary, yes, but at least they provide everything and run everywhere.
- kuschku 5y agoI’ve built a full android IRC client in 4.1MiB. Most UI elements are custom, no web view for anything, lots of custom libraries etc. That’s > 200kLOC. I can’t fathom what you’d have to do to get to 100x that.
- antihero 5y agoCan’t imagine an IRC client has many high resolution assets.
- kuschku 5y agoWhy should it? Android supports vector assets, I ship everything as vector drawables. 98 vector assets, full text of 11 licenses and translations for 9 languages are > 90% of the 4.1MiB That said, what assets does an email client need beyond what I use as well?
- selfmodruntime 5y agoThe answer is assets. A lot of assets. Unused assets. Fonts. Gifs. Assets for every device size. Future assets.
- chakkepolja 5y ago200KLOC for IRC client? Where does the majority of code come from?
- kuschku 5y ago
- jshchnz 5y agoUsed Emerge Tools size analysis to analyze the binaries, here's some quick findings to answer some questions: [0] Fastmail: smallest of the apps but still could have room for improvement, could save almost 20% of the app size by optimizing their audio files. 71% of the app is the binary. Check out the X-ray here: https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+2022-02-23+at+9.40.31+AM.png https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... [1] Gmail: looks like most of their bloat is coming from localizations. Only 60% of the app is binary, while 24% is localization files. Check out the X-ray here: https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+2022-02-23+at+9.42.03+AM.png https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... [2] Outlook: could be stripping binary symbols to save significant space. 65% of the app is binary, while 14% is localizations. Check out the X-ray here: https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+2022-02-23+at+9.43.13+AM.png https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... [3] Hey: could save about 15% of the size of the app just by removing duplicates and optimizing their images. 45% of the app is binary, 27% of the app is assets, this is definitely higher than it should be. Check out the X-ray here: https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+2022-02-23+at+9.48.42+AM.png https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... [4] Protonmail: could save almost 30% just from image optimization and duplicate removal. 58% of the app is binary, 14% is assets, and 7% is localizations. Check out the X-ray here: https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+2022-02-23+at+9.46.27+AM.png https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... Unfortunately this is a very common problem as many teams don't have any monitoring in place. Here's another example of a popular email app Spark, automated insights show over 100 MB of easy savings: https://www.emergetools.com/app/example/spark?buildContent=insights https://www.emergetools.com/app/example/spark?buildContent=i... For pretty much every app here, Emerge's insights found at least 20% in easy size reduction. FYI, in the X-ray visualizations, red indicates duplicates and we can breakdown apps even further using builds with dSYMS!
- alberth 5y agoThanks for sharing. TIL about Emerge. Super interesting.
- newman314 5y agoThanks! This is very interesting to see all the low hanging fruit. Out of curiosity, could you run Emerge on a few other common apps: the United app as well as Yelp, Twitter and TikTok? Those seem to be the biggest consumer of storage for me.
- PascLeRasc 5y agoThe new Shortwave is only 22Mb! It's also just a web view like Fastmail though.
- brnt 5y agoSo... how does a webview, which is a call to a system api, take 22MB?
- meibo 5y agoTo add some context, Gmail also includes a lot of the core workspace apps(chat, meetings, etc) if you do have a workspace account, which most users will likely never see. All of that isn't needed on regular accounts, I guess, but it's probably easier for them to ship it as one app because people might get confused/are able to switch between their workspace and regular accounts in the app. Gmail is also supposed to be the "hub" to workspace on their new Desktop UI.
- tempnow987 5y agoThey also have an authentication option they are building in (ie, sign in with the app to web properties). I've noticed a bunch of stuff seems to be migrating into gmail. My own view is they burnt people out install allo, hangouts etc, and people DO install gmail / have gmail accounts -> so they are going to try to leverage that for distribution a bit more.
- alberth 5y agoIsn't chat, meeting, etc all separate apps from Google (and not included in the core Gmail app). https://apps.apple.com/us/app/google-chat/id1163852619 https://apps.apple.com/us/app/google-chat/id1163852619 https://apps.apple.com/us/app/google-meet/id1013231476 https://apps.apple.com/us/app/google-meet/id1013231476
- meibo 5y agoThese are "standalone" versions, but they are also all built into Gmail if you have an account that has access to them. They do exactly the same thing on Android - Gmail has it all by default, if you want them separate, you can get them from the play store.
- deleted 5y ago[deleted]
- wodenokoto 5y ago> Fastmail is the only email/calendar app with a reasonable size (just 20MB) It's because it doesn't contain anything. You can't even see any UI, let alone emails without being connected to the internet.
- winrid 5y agoAdding offline access would indeed be nice, but that wouldn't even add 2mb of code. I have entire native mobile games with multiplayer under 3mb. EDIT: just realized the app is a web view. Sigh
- nindalf 5y agoThat was literally what the previous comment was trying to tell you.
- squeaky-clean 5y agoWeb view apps can still work offline if they're designed for it.
- kroltan 5y agoYes, but the 3mb is just the wrapper, I bet if you delete the hundred-ish megabytes of cache, it won't work offline anymore :)
- deleted 5y ago[deleted]
- samhw 5y agoBut that's entirely fair: of course caching data uses up storage. But it's my choice - I can pay for what I use. The crucial part is that I don't need to download an app which is hundreds of megabytes large just in order to hypothetically support caching. No one can tell me that our species can write 1K ZX Chess (https://en.wikipedia.org/wiki/1K_ZX_Chess https://en.wikipedia.org/wiki/1K_ZX_Chess) – an entire chess game with intelligent opponents which only takes up 672 bytes – and yet we can't write an email client which isn't a million times that size.
- NikolaNovak 5y agoDo they have comparable functionality; in particular, are they all actual genuine native apps with offline capability; vs a glorified hyperlink to their web interface?
- kelnos 5y agoThey don't; the Fastmail app is just a web view. It's completely non-functional when there's no internet connection. Really glad to find this out now, and not when I'm in an airport or something somewhere with no internet connection and really need to look at an email related to my travel arrangements.
- iggldiggl 5y agoK-9 Mail doesn't include a calendar, but it does come in at around 20 MB or less (for the app itself, mail storage not included) and it definitively works offline.
- a13n 5y agoYou should check out Missive, it's even less at only 19.3MB. Also an incredible product https://apps.apple.com/us/app/missive-email-chat-tasks/id1231206084 https://apps.apple.com/us/app/missive-email-chat-tasks/id123...
- achandlerwhite 5y agoI've heard that some of them include their own network stack so that only they can track your data. I think that was in reference to Facebook's app originally but I wouldn't be surprised.
- junon 5y agoThat would require raw socket access which would surprise me if it was allowed, as it's usually a superuser privilege on UNIX for good reason.
- Bilal_io 5y agoI checked on Android. Gmail's app size is 113mb, while Tutanota is 4.58mb I wonder why the Gmail app is almost 4x the size on iOS.
- mojuba 5y agoProbably because on Android it already has most of the frameworks (including tracking ones) it needs pre-installed with the OS.
- alberth 5y agoInteresting, I just found this (dated) article. https://mobilityarena.com/ios-apps-are-larger-than-android-apps/ https://mobilityarena.com/ios-apps-are-larger-than-android-a... It supports your claim that iOS app sizes are 3-10x bigger than Android. I wonder why. The article makes some guesses but still, the magnitude difference is significant. Even Fastmail, which has the smallest iOS email app, is still 2x bigger on iOS (20MB) vs Android (10MB). https://play.google.com/store/apps/details?id=com.fastmail.app&hl=en_US&gl=US https://play.google.com/store/apps/details?id=com.fastmail.a...
- ComradePhil 5y agoThe sizes mean different things in different platforms. Google reports the download size, Apple reports the size that the app will consume on your device. Both have their uses but you shouldn't compare the two.
- ricardobayes 5y agoI had a financial app bloat up to 800MB+ due to some botched incremental updates. I firmly believe in 2022 those who care about bundle sizes are in minority. I personally come from an embedded dev world so I got accustomed to fighting for bytes as I learned to program. Nowadays if I suggest something to save space, I usually get a blank stare.
- nicksaroha 5y agoOutlook makes sense because they use React Native in their app. If you look at their License sections they are using a ton of libraries which is common.
- pianoben 5y agoReact Native is one cause. Another is that they ship a tremendous amount of cross-platform c++ Office code, which is not small.
- bttger 5y agoWhat I also find very annoying is that the Outlook app even embeds a whole browser (with GUI; is it Edge?). It makes me furious to be forced to use the embedded browser when opening links in emails instead of a preferred, already installed browser. I mean... what advantage has it to use an embedded browser? I lose my cookies/sessions, browser extensions, passwords, and the usability is worse than of my preferred browser.
- dalemyers 5y agoWhat context are you seeing an embedded browser in?
- cout 5y agoI'm not sure whether to find it amusing or concerning that 20MB now qualifies as a reasonable size for an email client. My first PC that ran Linux had only 8MB of RAM and an 850MB disk, and it felt like a lot at the time.
- godshatter 5y agoI was thinking the same thing. What happened? I started programming on machines with 16K of memory or less. It was a point of pride for developers to make programs that did the most with less, like the whole demoscene movement. It's like the contest changed from who can make the leanest code to who can get away with packaging the most bloat in one app without causing the device to break. We went from shaving off individual machine instructions to packaging entire browsers with super-simple apps.
- asdff 5y agoWhat happened is that hardware got orders of magnitude more powerful, user expectations for performance stayed the same, and developers got lazy.
- db48x 5y agoI don’t think that’s entirely it. All of our programs got significantly more powerful at the same time. Your email program, for example, can handle email in hundreds of encodings plus several varieties of Unicode. Properly handling Unicode text requires detailed information about each character. Just the Unicode data tables are multiple megabytes, though the exact size will vary depending on exactly which properties you need. Figure on at least a megabyte just to handle bidirectional text rendering, and add a bit more so that you can distinguish between word characters and punctuation well enough that double–clicking can reliably select a whole word. And then there are emoji! Most people just see text, and not the complexity that supporting all of that text requires. Most computers from 20 years ago could barely handle it, and you can forget about doing it on the computers from 40 years ago. There are plenty of other features that have invisible complexity too. The article we’re all discussing talks about the symbols as if they are completely unnecessary, but that may not entirely be true. They are certainly unnecessary to _run_ the app, but it is probable that all of the error reporting and logging done by the app uses those symbols to explain where the errors and log messages came from. This makes it possible for the developers to actually fix problems. Granted, they could strip those symbols from the distributed app while still keeping them available to developers, but unfortunately that’s easier said than done. One of the few ways that developing on Windows is better than on other platforms is that MSVC makes it very, very easy to build a symbol server that collects all of the symbols from all of the applications you have released. If you get a minidump from one of your programs crashing, it will automatically load the correct symbols from the symbol server, as well as the correct version of the source code. It will even download symbols for Windows itself, to make those dump files as easy to debug as possible. Linux is only very gradually gaining similar features. and I have no idea about Android or ios.