📲 Why mobile releases need to be managed in 2025 — Webinar
📲 Why mobile releases need to be managed in 2025 — Webinar

#9 - April 2024

Last week, the Runway team gathered together at a masia outside Barcelona to collaborate, connect, brainstorm, hack, eat too much good food, play too many rounds of Quiplash, and go out on a boat in the Mediterranean to get sunburned. Members of our crew live in NYC, LA, Seattle, CDMX, Baja, the Canary Islands, Montevideo, Boston, Austin, Dallas, Lisbon, and Valencia. That's a lot of different locations for a small team, which is why we organize an offsite twice a year. It’s the only opportunity for everyone to meet up in person for some quality planning, hacking, and hangout time. We’re very excited for all the work and features that will come out of this past week.  

But this isn’t the “What’s Runway been up to this month?” newsletter. This is the Flight Deck. Each and every month we bring you perspectives on the mobile landscape, peeks into how other mobile teams and developers get things done, links to new YouTube channels that arguably should have already existed a decade ago, interesting stories from mobile engineers, and lists of events we’re either going to or that you may otherwise find interesting.

Read on for this month’s highlights.

Posts we liked

Splitting Up a Monolith: From 1 to 25 Swift Packages

Ryan Ashcraft breaks down the challenges and tradeoffs in modularizing his popular Foodnoms nutrition tracking app into more than two dozen Swift packages. He considered refactoring for a long, long time before actually doing it, which is what pretty much everyone does before they refactor anything. Learn why he finally moved forward, how long it took him to do it, and how it turned out.

Introduction to using Kotlin Serialization

ZhangKe takes a look at Kotlin Serialization, a cross-platform serialization and deserialization library. It can serialize the object tree into several common formats, natively supports Kotlin, and has strong extensibility that — according to ZhangKe — can satisfy almost all business scenarios. Read on to see if it would work for your own business scenarios.

What if your feature was a Command Line Tool?

When working with UI, it can be ambiguous as to how the business logic should fit into the actual interface. But, according to Tjeerd in 't Veen, thinking of features as Command Line Tools can help you reason out how all functionality and states should be available without the distractions of UI to think about. In this way you don’t put the cart before the horse, and are sure to get your functionality right before building the UI around it.

Apple Developer YouTube channel

This isn’t a post we liked, but is instead a whole wall of videos we liked. Is it shocking that Apple, arguably the most media savvy tech company of the past 30 years, didn’t have its own dev-focused YouTube channel until a month ago? We think so, but it’s nice they have it now.

Android Developer YouTube channel

Only fair to point out that Android has their own dev-focused YouTube channel too and it’s been around for 16 years, or approximately 192 times longer than Apple’s. To be fair, Google does own YouTube. Which, thinking about it, may be why Apple waited so long to create theirs.

Posts we wrote

The hidden and not-so-hidden costs of inefficient mobile releases

An inefficient release process automatically makes you inefficient at building great products. Some of these inefficiencies cost you in obvious ways (you’re not shipping as quickly as you could be) and others in hidden ways (you’re quietly building up technical debt that will one day come back to haunt you). What exactly does a bad (or ‘just OK’) release process cost your team?

How to implement fastlane match in Swift using the App Store Connect API

Fastlane match can sync your code signing credentials over git, and renew credentials for one or all of your apps using the App Store Connect API. But fastlane == Ruby and what if you don’t want to deal with Ruby right now, or ever? You could just use Runway or, if not,  Jared Sorge shows you how to implement fastlane match in Swift.

New motion pictures for our About Us page

While in Barcelona we took the opportunity to film new profile pics for everyone on the team. I say “film” because there is more to these images than initially meets the eye. Give the portraits a few seconds to see what each of them gets up to.

Featured feature

Managing the work that makes it out with any given app release is tricky.

Late-arriving changes increase bugginess in releases, so teams typically try to establish a stabilization period or “freeze” to prevent new work from entering the diff while testing and other release prep is finalized.

But you can’t just lock the release branch and call it a day. You still need to ensure important late-arriving changes and fixes are able to make it into a release. The mechanics of that requires some Git wrangling, which can waste time and be error prone, but it also raises more complicated issues. When are late changes allowed? Is anyone and everyone allowed to squeeze work into a release if they feel like it?

Upcoming events

Where to find Runway over the next several weeks:

Deep Dish Swift (May 5th to 7th)

San Francisco SLUG (May 9th)

SwiftCraft (May 23rd to 24th)

droidcon San Francisco (June 6th to 7th)

One More Thing Conf (June 10th to 14th)

We’ll be hosting happy hours at most of these events, co-hosting our first from this list with RevenueCat following Deep Dish Swift day 2 on May 6th at 6pm. RSVP to join in.

Also, our good friends at Codemagic are hosting a couple of Flutter- focused meetups in New York on April 30th and Chicago on May 1st. Check them out if Flutter is your sort of thing.

You’ve arrived at the end of this newsletter. Bored? Wish you had something else to read? Go back and read through our archive of the eight previous Flight Decks.

Release better with Runway.

Runway integrates with all the tools you’re already using to level-up your release coordination and automation, from kickoff to release to rollout. No more cat-herding, spreadsheets, or steady drip of manual busywork.