We got multiple tags to analyze the Tapo @TPLINK app for being over 760 MB π
Let's see what we find in here π€π
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.car
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
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.car
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
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.so
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 π¬
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 π€
Definitely something strange happening here, all pointing to the fact that this app should not be 700+ MB π¬
π§΅ figuring out why @telepass is almost half a GB
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
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
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