Emerge Tools Profile picture
Dec 17, 2024 7 tweets 3 min read Read on X
We got tagged to analyze this app on Thre*ds so we're posting it here too 🤭

🧵 Let's take a look at why the @intesasanpaolo iOS app is 699 MB 😳 Image
A quick breakdown 👇

448 MB (64%) dynamic frameworks 🫠
72 MB (10%) main app target
74 MB (11%) of assets Image
We first found some low-hanging fruit improvements to optimize install size, including

102 MB (15%) from stripping binary symbols
27 MB (4%) from optimizing images
10 MB (1.5%) from removing duplicates

That's 139 MB (20%) of size that could be easily reduced right there 🧠 Image
Next, let's talk about how 64% of the app is dynamic frameworks, 230 of them to be exact 🫣

We've talked about this before in previous app breakdowns, but dylibs let you share code between targets, however, they're larger than static frameworks. It's likely that Intesa doesn't need ALL of those to be dynamically linkedImage
Linking back to another popular app breakdown for @santanderuk that had the same issue
Ok last one just for fun

As we were digging through the app for this tweet, we found an mp3 file titled "rutto.mp3" and thought it sounded really strange.

Rutto means burp in Italian...we'll leave you with that 🫳🎤 Image
Thanks as always for the tags! Link to the full analysis here emergetools.com/app/example/io…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Emerge Tools

Emerge Tools Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @emergetools

Jan 23
We got multiple tags to analyze the Tapo @TPLINK app for being over 760 MB 👀

Let's see what we find in here 🤭🔎 Image
Total install size is 764 MB

204.6 MB
171.5 MB frameworks
45.4 MB main app target
27.7 MB plugins
a whole bunch of assets and localizations assets.carImage
We actually found that the current app version increased by ~162 MB compared to its previous version 🤔 so what changed?

They added @Unity along with a bunch of other stuff, mostly assets Image
Read 11 tweets
Jan 21
It's always the banking apps huh 🤦‍♂️

Figuring out why the @UBS banking iOS app is almost 800 MB 🥲 Image
First up, an overview

Frameworks - 336 MB (43%)
Main app target - 180 MB (23%)
Plugins - 55 MB (7%)

But what really sticks out is all that red, which signifies duplicate files ❌ Image
There's a handful of really simple optimizations here which could reduce install size by 102 MB or by 13% of total install size 📉 Image
Read 15 tweets
Jan 16
Customer: “Why is this app so big?”

Company: “Very cool features & lots of them + you have no way to check what I’m saying”

Not today corporate. Not today.

🧵 Why @ouraring is ~450 MB Image
This might be a bit long, so TL;DR

Oura is just duplicating a bunch of images, json, & localizations. The size isn’t b/c it’s “powerful with many features”

Here’s what the size actually is 👇

Assets: 207.8 MB
Localizations: 49.2 MB
JSON: 35.5 MB
Audio: 26.5 MB Image
The Oura app is mostly different bundles:

OuraImages (90.4 MB): Images
OuraComputeModels (26.1 MB): PyTorch models
Insights (16 MB): JSON files to score “sleep”, “readiness”, etc.
OuraLocalizations (12 MB): Localizations
OuraIcons (9 MB): Icons Image
Read 9 tweets
Jan 7
In 2024, @DraftKings decreased app size by 65% and improved app launch by +50%

Let’s take a look at what they did

🔬 Migrating from Xamarin → Native Image
The main app binary went from 97 MB → 11 MB (the project also changed its name from DK.Gaming.iOS → Sportsbook)

Aside from that, much of the size decrease came from completely removing all dynamic-link libraries (.dll, used in Xamarin projects) Image
We measured a 65% improvement in the native build vs. the Xamarin build (Xamarin) to didFinishLaunching

When we look at the base flamechart, you can see a significant amount of the runtime is from Mono functions

Mono is the C#/.NET runtime used by Xamarin and it’s now completely goneImage
Read 6 tweets
Nov 11, 2024
We've got to stop meeting like this 😅

🧵 taking a look under the hood of the @Yelp iOS app Image
Install size weighs in at ~318 MB, but ~4 MB of that is the watch app ⌚️

High-level breakdown:

130 MB dynamic frameworks
47 MB assets
34 MB main app target binary
26 MB localizations

For reference, @GoogleMaps weighs in at ~296 MB (7% smaller) Image
Emerge found 245 images that could be optimized to help save 21 MB (~7%)

We found two nearly identical images of this woman with her dog — one with a vignette and one without. Are both images used in the app? Only Yelp could answer that 🕵️ Image
Read 8 tweets
Oct 3, 2024
Did someone say app size?!

Here's why @thetrainline iOS app is so big 🧵 Image
Total install size is 342 MB

Basic breakdown:

115 MB of Plugins
109 MB main app target binary
34 MB sqlite file 👀 (more on this later)
23 MB Dynamic Frameworks

The rest is assets, localizations, misc. Let's start with the Plugins 🔌 Image
115 MB for two app extensions is a lot 🫨

We see two Plugins that look almost identical (58 MB vs. 57 MB) with many of the same modules in each.

They can likely use a Dynamic Framework to share code between these two app extensions to help reduce total Plugins size Image
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(