from Hacker News

Launch HN: Emerge (YC W21) – Monitor and reduce iOS app size

by sond813 on 2/3/21, 3:03 PM with 44 comments

Hi everyone!

We’re Noah and Josh from Emerge (https://www.emergetools.com). Our company is building a monitoring and analysis tool to help iOS developers reduce their app’s size.

You might have heard about app size challenges faced by large iOS apps, particularly those with Swift codebases. I was an iOS engineer at Airbnb for 4.5 years and personally worked on their size reduction efforts.

App size is tricky to quantify. The size users most commonly see (what’s on the App Store page) is the install size thinned for their device. This is the size measured after stripping out assets like images and other media not needed for your screen size, or code that doesn’t run on your device’s architecture. However, this isn’t the only size metric out there, there’s also download and universal size (read more about this in our docs [1]).

Our tool makes app size easy to understand by visualizing the size contribution of every file in your app, from localized strings to machine learning models. To better our understanding, we even reverse engineered compiled asset catalogs and Mach-O binaries to show size contributions of original images, source files and Swift modules. With this perspective we often see files that don’t belong or are suspiciously large.

While testing our tool we analyzed and learned from over 150 iOS applications and found that keeping app size in check is really hard— even for industry leaders. Here are some of our more interesting findings.

Dropbox (https://www.emergetools.com/apps/dropbox) From the visualization, you can clearly see why Dropbox’s iOS app is 270 MB— it’s 35% localization files. These files are duplicated from the main app into 7 different app extensions and they all include comments that provide translators with context for the strings. Just removing these comments from the production app could save 46 MB.

eBay (https://www.emergetools.com/apps/ebay) This is an interesting architecture because although the main app’s executable is only ~150 KB, 86% of the app’s size comes from executables, the biggest one (32 MB) being EbayApp.framework. When building a Swift framework, the binary contains symbols which are not needed in the build uploaded to the App Store. These symbols can be stripped using the method described in our docs [2]. Stripping binary symbols would reduce Ebay’s app size by over 40%. Emerge can generate a script to add to your Xcode build phase to strip symbols for you.

Spark (https://www.emergetools.com/apps/spark) About 1/10th of Spark’s ~230 MB app is font files. 10 MB of those font files are duplicates found in an app extension. After a closer look, the fonts duplicated are all SF-Pro-Text, look familiar? These have been system fonts since iOS 11 (the minimum version for Spark). If the system font was used directly, 10% of the whole app could be deleted!

If you want to dive in a bit deeper you can check out our Medium post which goes into detail on some other popular apps [3].

Our analysis consistently shows that without guardrails in place, app size can get out of hand very quickly. Emerge wants to help developers reduce their size and keep it that way. Our continuous monitoring and binary size profiling prevents regressions by alerting developers of size changes in their pull requests, helping teams build better, smaller apps.

We offer a free Growth plan designed for independent developers and small startups. Our paid plans start at $499/month, you can view more details here: https://www.emergetools.com/pricing.

If app size has come up in your development process, we’d love to hear about how you handled it. We’re always looking to improve and grow our product and we’re especially excited to hear feedback from the HN community!

Thanks, Noah + Josh

[1] https://docs.emergetools.com/docs/what-is-app-size

[2] https://docs.emergetools.com/docs/strip-binary-symbols

[3] https://medium.com/swlh/how-7-ios-apps-could-save-you-500mb-...

  • by bberenberg on 2/3/21, 5:50 PM

    Definitely cool from a tech standpoint, but what is the value proposition here? I get that smaller = better, but why should I invest my engineers time in optimizing size using the results you output vs delivering new features or bug fixes to customers?
  • by joshspankit on 2/3/21, 4:46 PM

    What do you say to people who argue that users have more than enough space for large binaries, and if they don't they are not ideal customers (because otherwise they would have the money and desire to upgrade to the bigger size)?
  • by edf13 on 2/3/21, 3:43 PM

    $499/month! That seems expensive - is it a big problem when Apple does a lot with App thinning? Big enough of a problem for $499/month?
  • by coolandsmartrr on 2/4/21, 8:03 AM

    It seems technically interesting, but I'm not sure how I can convince my manager that reducing binary size leads to more downloads or sales. @aripickar mentions the Uber app saga, but since then Apple seems to have removed size restrictions on apps downloadable on cellular connections.
  • by jondwillis on 2/3/21, 5:13 PM

    I have been using bitrise.io for iOS CI/CD for a few years. I noticed that they added a new step that seems to at least tackle the app size monitoring side of this.

    Other than builds being dog slow (fine for me), I couldn’t be more happy with the service and the price ($40/mo. for the single dev plan.)

  • by rbucks on 2/3/21, 11:20 PM

    Can you do it on 3rd party apps or do you need raw access to the build files? I ask because we at MightySignal have an API to provide decrypted APK and IPA files that you could use to run Emerge on any app in the stores.
  • by bluesign on 2/3/21, 3:35 PM

    When you say ‘size’, you mean on disk size or ipa size?
  • by totaldude87 on 2/5/21, 4:24 PM

    Well take my dollar and build an app that clears out this "other" storage from iPhone. You would have my top dollar!
  • by justsomeuser on 2/4/21, 9:45 PM

    Will this problem still exist in 2 years (assuming most users will have 5G and 16GB more storage in their new phone)?
  • by ellis0n on 2/3/21, 4:13 PM

    Looks interesting What about the image/video transcode to a smaller size?
  • by daleebz on 2/3/21, 10:30 PM

    this looks incredible! Awesome job y'all
  • by readmimusic on 2/3/21, 5:44 PM

    whoa this is so sick, nice job guys!
  • by LeicaLatte on 2/3/21, 5:00 PM

    Very interesting! Congrats.
  • by fajarsiddiq on 2/4/21, 12:03 PM

    Can't wait to see it