Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 553

8th April 2022

Written by Dave Verwer

Comment

Last week, the custom, automated subscription change people saw in Disney+ was surrounded by speculation. This week, we’ve had confirmation from Apple via Sarah Perez at TechCrunch:

An Apple spokesperson did not dispute the accuracy of the developers’ claims we presented and said this was part of a pilot test.

That’s excellent news.

A change like this deserves piloting. Even without this feature, there’s enough predatory pricing behaviour on the App Store to last a lifetime. Rolling out auto opt-in for subscription price increases to all developers would be a disaster that would further damage customer opinions on subscription pricing.

That said, it’s also not practical to expect every app to stick to one subscription price forever or lose all of its subscribers if they choose to make a change. What should the rules around these changes be? Don’t ask me! But I’m sure that determining those rules is a major goal of the pilot.

Where could Apple do better with changes like this? Communication. I’ve written about this before, and my opinions haven’t changed much since then. It would be a significant change to open up about pilot programmes and other experiments, but I’d welcome anything that helps stem the cycle of speculation and outrage.

I’m not saying that every internal discussion of a new idea needs an accompanying news post, but it’s probably time to say something by the time a pilot programme is live on the store. I’m also not saying this policy change would be easy. Apple is private-by-default and organisational change is hard.

I’m not teaching anyone at Apple anything by saying any of this. They know how this all works, and it doesn’t take a genius to have the idea to “communicate more”. I am saying that I believe it would be a net positive for third party developers, though.

Run iOS builds on M1, Intel or both with Orka

Orka 2.0 is now available and includes support for macOS build and test VMs on Apple silicon (M1) nodes – either as a fully ARM-based environment or combined with Intel nodes to create a hybrid cluster. Learn more.

News

WWDC22

Alright, here we go! The announcement is predictably brief, mainly confirming the dates and the return of the Swift Student Challenge. The only unexpected news is that there will be an in-person single day event:

In addition to the online conference, Apple will host a special day for developers and students at Apple Park on June 6 to watch the keynote and State of the Union videos together, along with the online community.

That sentence raises more questions than it answers. Still, it tells me that Apple values an in-person event and that it’s likely we’ll see things swing back towards being a more “traditional” conference experience in the future.


CocoaPods CVEs

First things first, if you use CocoaPods then give it an update. 🚀

I also can’t let this pass without mentioning how remarkable it is that Orta Therox, many years after moving on from Apple platform development, continues to respond and help maintain this project that remains a critical part of more apps than you can imagine. My thanks to Orta and Dimitris Koutsogiorgas, who helped publish this patch, and everyone else who has put any time and effort into this project. You’re all not rewarded enough for your work.

Tools

Moving your Cursor Position in Terminal

Here’s a great Terminal tip from Presh Onyee. Combine this with !! and friends and you’ve got yourself a great recipe for saving lots of keypresses. 🚀


Feedback on Xcode Cloud

Every time I see someone blog about Xcode Cloud, I see more positive experiences. This time, it’s Pierre Abi-aad’s turn to experiment with a small CI project. He does have a wishlist of improvements but again reports a positive experience. 👍

Code

Weak self, a story about memory management and closure

This post from Benoit Pasquier is worth a read, especially if you can recognise yourself in this sentence:

When we face a closure, we tend to write weak self followed by a guard let to quickly go around without thinking too much about the execution further down.

He explains why we still need to be careful and gives some good tips on approaching memory management and closures.


Hot Reloading in Swift

I’ve linked to John Holdsworth’s Injection app several times in the last few years, and here it is again, powering Krzysztof Zabłocki’s latest library that provides live-reloading for your app, regardless of your UI framework and doesn’t need conditionally compiling out for production builds. There’s plenty of information in the accompanying blog post if you want to know more!


SwiftUI Adaptive Stack Views

Creating an adaptive layout for your user interfaces using UIKit was always slightly awkward. Things got better with SwiftUI, but the problem still feels like it needs more thought than it should, especially when compared to web development, where responsive/adaptive layout is de rigueur. Here’s Keith Harrison’s take on how to do it.

Business and Marketing

Thinking about App Store screenshots for a menu bar app

I enjoyed this Twitter thread from Geoff Hackworth where he explains the thought process behind the App Store screenshots for his new app SF Menu Bar. It’s a tough challenge to market something where the default window only covers approximately 1% of the screen!

Jobs

iOS Developer @ MFB Technologies, Inc. – We are a two-year-old startup in legal tech. We pride ourselves on correctness over speed in development. Our iOS app uses SwiftUI and the Composable architecture—modern and clean. No grind: our developers have dedicated time to develop their coding skills and think about architecture. – Remote (within US timezones)

Mobile Full Stack Engineer @ Expensify – Join our passionate team of top-notch engineers to solve a real-world problem, and help people spend less time managing expenses and more time pursuing their real goals. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)

Senior iOS Developer @ Chariot Solutions – Chariot Solutions is a Philly based consulting company that strives to create a product company culture. We work hard to win exciting projects with some of the top companies in the world, while helping our employees maintain a great work life balance. – Remote (within US timezones)

Mobile Architect @ Bounteous – We are seeking a Mobile Architect to design and lead the development of our iOS and Android applications. Strong candidates will be able to direct the design of new applications from conception to completion, mentor and manage technical teams, and possess strong client and communication skills. – Remote (within US timezones) or on-site (Canada or United States)

Senior iOS Developer @ Flightradar24 – With over 2 million daily users, Flightradar24 is the world’s most popular flight tracking service. As a member of our small iOS team, you’ll work on every part of our app and have a lot of impact. We care about code quality and building the best possible product, and so should you. – Remote (within European timezones)

Don’t forget that this is only a small selection of the available jobs over at iOS Dev Jobs. Sign up for the weekly jobs digest email, grab the iOS or macOS app, and never miss an opportunity again.

And finally...

Live, laugh, … what? 😂