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
For reference, @GoogleMaps weighs in at ~296 MB (7% smaller)
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 π΅οΈ
Let's take a look at why the @SantanderUK iOS app is at a whopping 613.3 MB and how 35% of it does nothing for the user π§
Right off the bat, it looks like most of the app (587.6 MB) is dynamic frameworks
Dylibs let you share code between targets, but are larger than static frameworks b/c static let's the compiler strip dead code. It's likely that Santander doesn't need ALL of those to be dynamically linked
Also, note the "String Tables" in the dynamic frameworksβ these are unnecessary binary symbols that can be stripped out and save 215.5 MB (35% of install size) for Santander UK π€