Emerge's Bits & Bytes: September 2023
This week, the Emerge team is heading to NSSpain! Come say hello for some Emerge swag and check out the talk from our co-founder, Noah Martin
On to newsletter #2 🧨
What we're building
We've officially released our Snapshots product out of beta 🥳.
This came a long way during the beta and we want to thank everyone involved for their great feedback! Here's a 2 minute video about our snapshotting solution built specifically for mobile.
And we're not done improving it! Here are some highlights from the past month:
Snapshots custom diff thresholds (iOS)You can now set custom diff thresholds for every snapshot. The following preview will only be marked as modified if the diff is greater than 1%.
1struct MyComponent_Previews: PreviewProvider {
2 static var previews: some View {
3 MyView()
4 .previewDisplayName("Light")
5 .emergeSnapshotPrecision(0.99)
6 }
7}
If you're not familiar with ETTrace, it's an entirely local, open-source profiler for iOS. Think Time Profiler, but with flamecharts. Our 1.0 release adds some exciting new features:
- Adding events to the flamechart, helping track user flows in your code
- Generating flamecharts for background threads 🪡
We’ve added support for custom startup scenarios on Android. This means you can test more complex flows like launching from a deep link or other entry points.
What we're writing
Symbolicating SwiftUI (and any Apple framework)We're very proud to be the first third-party to symbolicate SwiftUI. We explain how we did it and share how you can symbolicate any Apple framework.
Dead code detection with Reaper ☠️In this post, we discuss the types of dead code you can have in your repo + introduce Reaper, our newest product. Reaper is a production SDK that monitors user sessions to identify unused classes, helping you delete code and improve developer productivity.
S/o the super talented Matthew Skiles for our fantastic new Reaper logo! Matthew has designed all Emerge logos and we couldn’t recommend him more!
Only one of the most helpful tools you have as a mobile developer.
Peacock Deep DiveWe look into the Peacock mobile app, which recently changed from React Native to native.
What we're reading
Faster iOS performance debugging with ETTraceA great writeup of how to use ETTrace to improve your app's performance!
Releasing Swift Transformers: Run On-Device LLMs in Apple DevicesHugging Face released a set of tools to help bring LLMs to Apple devices + walks through how to convert Llama 2 to CoreML.
Surfacing performance issues with effective visualization of profiling dataPerformance can be a scary topic to get into. This post explains common profiling visualizations and how they are used.
An Empirical Study & Evaluation of Modern CAPTCHAsMobile related? Not really, but an interesting read about something we encounter almost daily. If you've ever wondered if a bot would be better at solving a CAPTCHA than you, then here's a research paper for you.
Developer Spotlight
There are a ton of great people putting their time and effort to improve the mobile community. Each month, we want to spotlight these developers and highlight their work.
Berta Devant (Twitter, Github)
Berta is an iOS developer at TravelPerk and, along with Daniel Steinberg, will be MC'ing NSSpain. Berta is an advocate for underrepresented people in tech, and is involved with LGBTQA+ and women in tech organizations in Barcelona.
Nominate someone for next month's spotlight!
Open-Source Sponsorship
We want to highlight some of the great open-source projects we sponsor. Check them out if you haven't heard of them! If you know of projects to sponsor, let us know!
Mold - A modern, performant linker by Rui Ueyama
Apktool - Reverse engineering for apk files by Connor Tumbelson
Periphery - Identify unused Swift code by Ian Leitch
If you liked this edition, please do us a favor and share it!
Hope you enjoyed these bits and bytes!