Posts we liked
Faster iOS performance debugging with ETTrace
The "standard" way of debugging performance issues in iOS is to use Xcode's Time Profiler instrument, but Bruno Rocha has never had a good experience with it. That’s why he uses ETTrace. Unlike Time Profiler, it doesn't require a special build, it automatically handles symbolication for you, and it displays the data in a much more readable way. It's basically a greatly enhanced Time Profiler. You seem like the kind of person who would enjoy a greatly enhanced Time Profiler.
Compose a Compose Button by composing Composable functions
It’s becoming very common for mobile designers to use a Design Language System. Being on trend, your team finds that it needs to implement a custom button. But how should you go about making it? André Oriani walks us through creating a Compose Button from scratch while applying Separation of Concerns.
Gergely Orosz is back (well he never was gone, was he) with a look at how Big Tech goes about producing quality software. Covering Microsoft, Google, Meta, Apple, Amazon, Uber, and Netflix, Gergely gathered details on their varied approaches to QA — especially around who is doing what, when — from current or former engineers and EMs at each company. (Note: the detailed write-up on Microsoft is free to read, while the others are behind a paywall.) Â
Posts we wrote
Why mobile releases are a silent killer & what your team can do about it
Solving a problem is hard when people don’t realize it’s a problem. On the mobile teams my co-founders and I have been part of, we tacitly accepted the wasted time and crossed wires that came with each release cycle. Bouncing back and forth between different tools, chasing down marketing for updated copy and stakeholders for required sign-offs, clicking around gingerly in App Store Connect and Play Console… productivity, happiness, and general sanity suffered, but we accepted that this was just the cost of doing business when shipping apps.
Getting started with Tuist for Xcode project generation and modularization on iOS
We recently began sponsoring Tuist, a popular Xcode project generation tool which allows you to express your Xcode project purely in Swift for more flexibility and better performance — and fewer soul-crushing merge conflicts. In this post, we look at how you can adopt Tuist for your project while implementing a modularized structure. Modules handle annoying details like applying standard build settings and resolving dependencies, so you only have to worry about your module’s core code.
How to set up and run a beta testing program for your mobile app
No matter what kind of app you’re building, you have customers of some kind. Whether you’re B2C or B2B or C2C or C2B or CB2 you want to build an app that those customers find useful and enjoyable, that is also mostly bug and crash free. Beta testing provides an opportunity to find usability problems and performance issues, gather early external feedback, and build excitement for upcoming releases. But how do you do it? Click the link up there to find out.
Runway featured feature
In our first edition of this newsletter, we featured a single feature in a GIF: Rollouts. In this second edition, we’re featuring multiple features and instead of doing it via a GIF we’re doing it via a live webinar (which is a sort of very long GIF with audio and chat functionality) in which we'll cover:
- Submit-and-release-on-green to remove manual steps without sacrificing safety
- Safeguard health and sanity with customizable blackout days/times for phased rollouts
- Build Distro for easier distribution and management of pre-release builds
- Sync users and roles from your directory provider to Runway
- And much more, including new integrations & automations for better streamlining your releases