The company blog of Emerge Tools, which makes mobile app tools, analyzing iOS and Android app binaries, size, and startup performance.
HN links it for app size breakdowns, such as Threads and X binaries, and for iOS versus Android size comparisons. Commenters add context on bundled fonts and localization data.
Emerge Tools | Full-Time | Senior Software Engineer (Frontend Lead) | Remote (USA preferred) | $140k-210k + 0.1%-0.5% equity
Emerge (https://www.emergetools.com/) is a suite of developer tools designed to supercharge mobile apps and the teams that build them.
In less than three years, Emerge has already been adopted by many of the best mobile teams in the world such as: DoorDash, Square, Airbnb, Duolingo, Dropbox, Bumble and Stripe.
Emerge is backed by top VCs like Y Combinator, Matrix Partners, Haystack Fund and Liquid 2 Ventures.
Our whole team likes to contribute to the frontend, but none of us are experts. We're looking for someone to lead Emerge's frontend development and design.
An ideal candidate
- Thrives in a fast moving, self-starter environment (we strive for a culture similar to Gitlab, but adapted for a small team)
- A strong eye for design with the ability to balance practicality, functionality & aesthetics (Figma experience is a plus)
- Extensive experience with React, Next.js, Tailwind, Vercel, Typescript
Job posting: https://www.workatastartup.com/jobs/61922/
We've seen this happen with system fonts as well, apps sometimes bundle the San Francisco font with an app instead of relying on a system font. There may be some reasons to include the font or sound file, such as if it changes in different versions of the OS. Of course that would make the app inconsistent with the rest of the OS, which may not be the best behavior. We discuss some other tradeoffs with bundling these system resources on our blog post which covers the Spark app: https://www.emergetools.com/blog/posts/7AppsThatCouldSaveYou500MB
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 bloat. Gmail could save 56.4 MB by moving their small files to an Asset catalog
> A page will be loaded in if any part of it is useful. Given that functions will be laid out more or less randomly throughout a shared library, and programs use a randomly scattered subset of the functions, I think its safe to say that you'll get a lot of bytes read in to ram that are never used.
We have order files for this purpose so that functions are not randomly scattered: https://www.emergetools.com/blog/posts/FasterAppStartupOrderFiles . This technique is widely used by well known apps.
To be exact, that's what they call the X-Ray in their product speech, the breakdown is also there if you click around. But very nice data!
Do you know how these examples are made? Is there a way for free uploads of apps or at least browsing those they have? My Web search found https://www.emergetools.com/app/example/android/bumble for Android which I am more interested in.
No, I am not an app developer. Not considering buying a license just out of general engineering curiosity.
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-research/
One specific complication: Apple's store reports install size, Google Play reports compressed download size. https://www.emergetools.com/blog/posts/are-android-apps-really-that-much-smaller-than-ios