App size matters. It’s well known in the tech industry that reducing app sizes and the space they use, increases downloads. Especially when going below thresholds for WiFi downloads. Bigger apps are also the first to be deleted when space is tight.
For months, the tech team at Bikemap has been following Emerge Tools’s expertise. In their channels, they show apps that are not theirs and provide everyone access to free advice. They explain the reason behind these apps being big as well as concrete steps on how to shrink them. To our developers team, this appeared quite a feat. Even if they did not have access to the source code, they were providing powerful insights into the apps themselves.
We decided to give Emerge Tools a chance and see what they would come up with for Bikemap. The team quickly reached out to us and provided us with access to their tool for size analysis. While emerge tools offers full CI integration, they also provide a website where you simply upload your Xcode Archive. Again, no source code access is required, which would have been a potential deal breaker for Bikemap.
Within 5 minutes the website showed us an x-ray of our app, to help us understand why our app has the size it has.
While the view was interesting, it wasn’t helpful as we didn’t know what we were looking for. It provided a helpful overview to see big things in our app – but without knowing what to do about it. This is where their Insight feature shines. It provides ideas of what to do to decrease the file size, including commands to run, files to check and scripts to add. Clearly, a no brainer for our team.
We decided to try all the insights listed as decreasing the file size by at least 1 MB. That included: stripping binary symbols files, stripping binary symbol metadata, removing duplicate files, and optimizing images.
Stripping binary symbols (+ meta data)
When Apple removed bitcode this led to App Store Connect no longer stripping binary symbols. Thereby, most apps increased in file size by 15% without knowing (Emerge Tools explained it here). By following these steps, we saved a whopping 20.2 MB (16.81%).
Removing duplicate files
Emerge Tools also scan for duplicate files. For us, we had a few fonts duplicated because of our integration with Apple Watch. Emerge Tools’ documentation explains how to move such files into an own framework that you share between the targets, removing the duplication. Emerge Tools also found an old offline copy of our terms of service we weren’t aware of. This time, we managed to reduce download size by another 1 MB.
Modern iOS supports HEIC, and our app is older than initial HEIC support – so all our images are still pngs. Emerge Tools calculated the potential savings of each individual image. This allowed us to do the top 10 files and not waste time testing each file ourselves. This saved another 1 MB.
There are another 15+ insights that Emerge Tools offers us, netting another 5 MB. We’re putting most of them off for our next “technical debt” session, as these are more complicated for a smaller win. It has been incredible to see we can have more savings if needed.
We have added emerge tools to our Jenkins Pipeline. Emerge Tools offers a fastlane plug-in which fits right into our system, allowing us to go live a week. We now get a message every time we do a release run. This helps us verify that the app decreases in size when we expect it to. But also warns us if we make a mistake that increases our file size by mistake.
Emerge Tools have been a real contribution to our app development process. We have been able to shrink the app by over 20% with its great insights, and now we have an extra safety net ensuring that we don’t grow in size by mistake. Having direct access to their team of developers at any time has been essential to us. We can’t wait to grow this great collaboration moving forward.
PS: Psst, Bikemap is looking for a senior iOS developer! If this article and what we work on is of interest to you, check out the job listing.