Emerge Tools Profile picture
Oct 3, 2024 โ€ข 9 tweets โ€ข 4 min read โ€ข Read on X
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
In total, we see 25 MB of duplicate files, mainly coming from the SGPKitPackage_Mocks.bundle

Additionally, Trainline could cut 18 MB from removing binary symbol metadata and 11 MB from optimizing images

That's 54 MB of low-hanging fruit to reduce app size by 15.8% ๐Ÿ˜ฎโ€๐Ÿ’จ Image
Back to that .sqlite file, this accounts for 10% of install size (34 MB)

Looking into it, this looks like data about all the cities and stations in the Trainline appโ€” data like names, latitude, longitude, timezone, etc.

This probably lets people use Trainline features even in unreliable network conditions (like when you're traveling on a train through mountains), so that's pretty cool!

You know what else is cool? Making your app smaller & easy to download in poor network conditions ๐Ÿ˜Image
And lastly, we found various images regarding Trainline + sustainability โ™ป๏ธ

It's great to see that a company like Trainline is putting sustainability front and center ๐Ÿ‘ Image
Image
Friendly reminder that app size does have a tangible impact on CO2 emissionsโ€” there's a cost of every byte transferred ๐ŸŒฑ

For an app the scale of Trainline, low-hanging size optimizations can actually make a big impact! We have a blog post about this too๐Ÿ‘‡ emergetools.com/blog/posts/Cosโ€ฆ
It's always fun taking a deeper look into these appsโ€” feel free to continue tagging @emergetools for any of your app size questions! ๐Ÿซก

You can see the full @theTrainline analysis here emergetools.com/app/example/ioโ€ฆ
And here's the link to the original tweet ๐Ÿฅ

โ€ข โ€ข โ€ข

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

Mar 25
What app has added the most number of dynamic frameworks in the last 3 months?

Hint: it's an old friend of ours ๐Ÿค–
It's @EufyOfficial, who we wrote about a few months ago

They've added a bunch of new frameworks, but its not just that they've added a lot that's interesting, its *what* they've been adding ๐Ÿ‘€ Image
Of the new frameworks, they've added~20 RN frameworks and a handful of Flutter frameworks

Not ideal to keep adding both RN & Flutter ๐Ÿค” Image
Image
Read 7 tweets
Mar 24
When we tweet about RN apps that have room for improvement, we often used the General Motor apps as an example

WELL NO MORE ๐Ÿ‘๐Ÿ‘๐Ÿ‘

๐Ÿงต How General Motors shrunk app size by ~70% Image
We wrote a deep dive on the four GM apps roughly a year ago

In it, we detailed how they could reduce EACH app by ~200 MB
The apps went above that, reducing app size by ~300 MB

The main optimization came from renivubg TardisHybridContainer, which is where the vast majority of bloat came from in each app. Basically this was a mess of a dynamic framework w/ inefficient assets + a large jsbundle
Read 7 tweets
Mar 18
What's truly wild here is that at the beginning of 2024, the T-Life app was 37.3 MB

It's now at 475 MB

๐Ÿงต How to 10x your app size Image
Image
General breakdown

Dynamic Frameworks: 195 MB
Main app binary: 159 MB
Asset catalog: 69 MB

fwiw, each of those are bigger than the entire app was ~14 months ago ๐Ÿ•ต Image
basically this is what T-Life did over the last year

The app used to have a few UI & Games bundles + a slim binary and that was it

Now it's largest dynamic framework (AzureCommunicationCalling) is bigger than the entire app used to be at 65 MB
Read 9 tweets
Feb 6
Got a few requests for this!

Let's break down the @binance crypto app ๐Ÿ’ฐ Image
So there's two versions of the app we're looking at, the US version and another version shipped under "Binance Switzerland"

From what we saw, the US app is only for the US, and every other country gets the app from Binance Switzerland, probably due to different regulations Image
Image
๐Ÿ‡บ๐Ÿ‡ธ US version weighs in at 303 MB
Main app target - 98 MB
Plugins - 94 MB ๐Ÿ‘€ we'll come back to this one
Frameworks - 55 MB Image
Read 16 tweets
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

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!

:(