Emerge's Bits & Bytes: March 2024
March was a really cool month for Emerge. First and foremost, we're thrilled to welcome our newest engineer, Hector, to the Emerge Tools team! Hector is joining us from Google, where he worked on their performance profiling tool Perfetto. Can't wait to get building 🔨
Also in March, Wired featured our analysis in their piece on Reddit's IPO, we had our most popular Twitter/X thread yet, and we launched a new landing page design that does fancy interactions like go into hyperspace on hover (s/o Facu Montanaro & Mikael Sargsyan who handled the design and dev work!).
Making it into Wired or being popular on Twitter isn't our goal, but it is exciting for our team to see this type of positive reaction + the awareness of our tools grow (including readers to this newsletter 🙂). Feels a bit cringe to do a "couldn't do it without all of you", but also, we couldn't do it without all of you ❤️.
And with that...
What we're building
️⚡️ Performance ProfilesOur Performance Analysis tooling was built to provide a statistically rigorous performance comparison. But sometimes (most times) you want results quick, easy, and without writing tests. Performance Profiles do just that. Now you can say "profile TikTok for 1 second" and get an Emerge performance report.
If you're looking for a quick and easy way to profile an iOS app, check out ETTrace, Emerge's entirely local, open-source profiler
In addition to a new landing page, our "Settings" page got a facelift. A lot has changed here, but one notable highlight is the ability to create more configurable Slack Alerts. You now have finite control over what builds get alerts and what builds you can compare against.
Additionally, we've added the ability to create and manage Performance Slack Alerts.
📂 Zip and export snapshotsYou can now export a zip of all snapshot images for a particular build, which we see as particularly helpful for a11y/language audits.
Finding accessibility issues in an app is a manual, time-consuming task. Perfect for an AI.
Using our Accessibility Snapshot features and AI, we were able to uncover multiple VoiceOver issues with the Drizly and Alaska Airlines app. This work is still in its early phases, but the early results are promising.
Above is an image from the Alaska app where they're using file paths in VoiceOver. This is read aloud as "auro slash interface slash chevron right. Image". Our AI found ~20 such Snapshots with this issue in the Alaska Airlines app.
What we're writing
Make Your iOS App Smaller with Dynamic FrameworksWe've written a lot about the performance implications between Dynamic and Static Frameworks, but we felt that this area, specifically with SPM, was lacking a proper "how-to". Using the Hyundai app as an example, we go step-by-step on how to use dynamic frameworks and work through a limitation of SPM.
App Deep Dive: General MotorsApparently we're picking on Car apps this month. General Motors has four different apps for its car brands. Each app is close to 500 MB. Spoiler alert, they shouldn't be that big.
Glossary: ANRA high-level overview on Application Not Responing (ANR) + additional resources to learn more.
What we're reading
- TODOs: When Unfinished Code is Good, Actually
- [Video] Releasing faster with Kotlin Multiplatform
- Making Friends with AttributeGraph
- -2000 Lines of Code
Until next time, hope everyone enjoyed these Bits and Bytes ❤️