Another day, another "How is this app so big tweet" π€
This time its the @DJIGlobal iOS app, which comes in at 1 GB
A lot of the comments speculated that the app was large due to assets & while there are 155 MB of .mp4 video files, the bulk of the size is coming from ML models
There's 264 MB of .mlmodelc files - these are compile Core ML Models which are designed to run on Apple devices. Some of the biggest models π
We also see a `` inside `LCTAISDK.bundle` at 83 MB
There's also 25 MB of models w/ a `.mnn` extension, not entirely sure what this is, but found this repo that might be related. Anyone more familiar? localAiModel.zip github.com/alibaba/MNN
So how do we get to 1 GB?
Lots of ML files
A ton of videos
~150 MB of dynamic frameworks
110 MB main app target binary
There's about 120 MB of easy savings from Emerge Insights that we're picking up
π§΅ 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