Emerge Tools Profile picture
Jan 23 β€’ 11 tweets β€’ 4 min read β€’ Read on X
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
Speaking of assets, that's honestly what most of the app is πŸ˜…

Aside from the 204 MB , there's another 95 MB of assets floating around in the app bundle. Combined with 71 MB of localizations, assets and localizations alone make up 370 MB (or 49%) of total install sizeassets.carImage
Tons of JSON animations too, here's one showing you how to install your doorbell cam
There's an easy 162 MB (21%) of bloat that could be reduced by stripping binary symbols, optimizing images, removing duplicates, and minifying strings Image
We found (neural network lib) in the app which is very unusual for an iOS app πŸ€”

.so is essentially the Linux/android equivalent of a .dylib in macOS / iOS

Out of the ~10k iOS apps we pull from the App Store, Tapo was 1 of only 6 apps that had a .so lib in its iOSlibncnn.soImage
Now is this some complicating engineering feat to use Tencent's neural network library?

Unfortunately it doesn't seem to be. Inspecting the file shows us it was for Linux

So it's just in the app...hanging out...doing nothing 😬 Image
Speaking of just hanging out and doing nothing...we found this audio file called silence.m4a which is a 10 second audio file of, you guessed it, absolute silence 🀐 Image
Definitely something strange happening here, all pointing to the fact that this app should not be 700+ MB 😬

Thanks for all the tags on this one! Check out the full analysis here emergetools.com/app/example/io…
@threadreaderapp unroll

β€’ β€’ β€’

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

Sep 18
Do we know why the Tesla iOS app is 760 MB? Can it be made smaller? Does a bear...nvm

This is a fun one, b/c the Tesla app does something not many other apps do

πŸ”¬ Taking a look at Tesla's app size + exploring Image
Immediately what jumps out is that ~30% of the app is `Tesla.pck` (241.2 MB)

A .pck is a file format for bundling Godot assets (scenes, scripts, shaders, etc)

Out of all the app's that we download, this is *by far* the largest .pck included in an app Image
We can see Godot included in all of Tesla's plugins + the main app target

This is how Tesla creates 3d model interactivity in the app

(remember this b/c we'll be coming back to the plugins) Image
Read 13 tweets
Jul 9
Exactly 1 year ago today, we had our biggest tweet ever about @gmail's iOS app size

And funny enough, Gmail's size is making the rounds again

🧡 Looking at why Gmail is ~700 MB (+ why it's increased by 100 MB in the last year) Image
Here's the original thread - would recommend checking it out for more info, but TL;DR

- Large main app binary
- Localizations
- Big share extension plugin
- Overhead from having many files in the app

Over the last year, Gmail has increased by 100+ MB

Most of that is coming from increases to the areas mentioned above

2024 β†’ 2025
πŸ“±Main App Binary: 223 MB β†’ 285 MB
🌐Localizations: 130 MB β†’ 150 MB Image
Read 11 tweets
May 2
Ok, time for a bit of a rabbit hole

...or should we say... Deere hole 🀦

🧡 Looking through the @JohnDeere apps. (Pepe Silvia warning...iykyk)

p.s. l10n = localization
Some context - we were poking around our localization data and John Deere's "TractorPlus" & "Ops Center" jumped out

🚜 TractorPlus is 412 MB - 115 MB (32%) is l10n

βš™οΈ Ops Center is 276 MB - 114 MB (42%) is l10n

So why did this jump out?
Firstly, apps like FedEx (160 MB l10n) or Garmin Connect (90 MB) inefficiently use localizations

@Tinder recently wrote how they used Emerge to reduce size of l10n by 95%


@Airbnb did a similar optimization - we'll link to a few 🧡s at the bottommedium.com/tinder/how-the…
Read 13 tweets
Apr 14
ask and you shall receive 🫑

🧡 figuring out why @telepass is almost half a GB Image
For those who are unfamiliar with it, Telepass is an electronic toll collection system used primarily in Italy and other parts of Europe. Here's the general breakdown

It's a flutter app πŸͺ½
Total install size - 457 MB
Frameworks - 417 MB 🫨
Main app target - 25 MB Image
91% of install size is due to frameworks, 293 of them to be exact

There are a number of reasons that apps would have so many frameworks, but usually it's to support complex functionality in the app, or to make the app more modular and independent for teams working in parallel
Read 9 tweets
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

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!

:(