Fitting the Lapse experience into 15 MegaBytes
How we optimised the world's most complex app clip
Today we’re going to explore how we optimised the Lapse app clip to fit into 15MB. Once we got past the low-hanging fruit, there were trickier size optimisations to work through. To get over the finish line, we had to apply some more hacky tricks.
Subscribe to Jacob’s Tech Tavern for free to get ludicrously in-depth articles on iOS, Swift, tech, & indie projects in your inbox every week.
Full subscribers unlock Quick Hacks, my advanced tips series, and enjoy my long-form articles 3 weeks before anyone else.
At Lapse (the series A social media startup I work for), we’re constantly evaluating new iOS technologies to make our social media app more fun, more engaging, and more viral.
The app clip we built for our Rolls feature contains the core experience of our social photo-sharing app, and is almost certainly the most feature-rich app clip ever created.
The challenge?
The app clip was limited to just 15MB.
We achieved this via a 5-stage optimisation process:
An architectural overhaul to fix our dependency graph.
Nice, easy optimisations to pick low-hanging bundle-size fruit.
Painful, difficult optimisations to grind our app clip towards the size limit.
Awful, hacky optimisations to narrowly inch our app clip size over the line.
Setting up automation to catch size regressions before they block a release.
Today we’re going to look in detail at how we applied these optimisations to bring our app clip down to 15MB.
These techniques aren’t limited to app clips—you can apply the same approach to achieve size efficiency to your own apps, and potentially win a dramatic increase in the conversion rate from app store listing to download.
In protest of the Stripe crime family’s transaction fees, I’m running a huge promotion on annual plans—50% cheaper than the monthly price. Grab it this week to read this article now and lock in savings forever!
Still unsure? How about a 2 week free trial to think about it? *Sits backwards in my chair*- just don’t forget to cancel immediately so it doesn’t auto-renew if you don’t want it to 🤙
Keep reading with a 7-day free trial
Subscribe to Jacob’s Tech Tavern to keep reading this post and get 7 days of free access to the full post archives.