Orchestrate macOS VMs on genuine Apple hardware - Try Orka
With Orka and MacStadium, moving your Mac build infrastructure to the cloud is just as easy and powerful as using AWS or GCP. Orka brings simplicity and scalability to developers building for Apple devices. Spend less time managing servers and more time building great apps. Give Orka a try for free.
Swift 5.3 released!
I've linked to the new features in Swift 5.3 several times over the last few months, but it's still worth reading through this announcement post from Holly Borla for a recap of what's new, as well as a fantastic sketch note from Amy Tsai.
In-App Purchase Rules
The new App Store Guideline updates went live about 15 minutes after I pressed send on last week's issue. 🙄 Some of the changes are good, but they also make the situation regarding who can bypass In-App Purchases even more bizarre and complex, as Marco Arment points out in this post. 😂 I stand by what I said a few weeks ago, while it's good that Apple has added these new exceptions as guidelines, the whole thing needs a rethink.
TestFlight and the inevitable bug-fix release
You'll want to pay attention to this tip from Greg Pierce. You know you're going to need to ship a bug-fix release after a major version, so why not get it into the TestFlight queue before you even know what the bugs are? 🤔
Benchmarking Xcode Performance on a large Swift Project
If you're anything like me, what starts as a "base level" machine in the Apple Store ends up requiring a second mortgage by the time you've finished ticking the upgrade options! Are they worth it? Maxim Eremenko has some interesting findings that might save you a bit of money next time you need a new Mac.
State of SwiftUI
It would be easy to see this post from Peter Steinberger as a negative take on SwiftUI, but read down to the conclusion before making any judgements. SwiftUI is an incredibly ambitious project and is going to take several years before it's on a par with UIKit and AppKit.
The state of Swift for WebAssembly in 2020 (and earlier)
Will you ever be able to execute Swift in your browser? Can you already? Max Desiatov has the answers to those questions, along with a great history of the SwiftWasm project in this post. As you might know, I'm not one of those people who want everything Swift, all the time, but that doesn't mean this isn't a cool project. 👍
Implementing the iOS app switcher in SwiftUI
The iOS app switcher is a complex UI control but is all driven from a single drag gesture. Here's Marcus Crafter showing a demo of his implementation of it in SwiftUI. 👍 I love demos like this. It's non-trivial but small enough that you'll be able to understand each component of it.
The Danger of Playing it Safe
It hasn't been long since we discussed the potential benefits of force unwrapping optionals, and this week saw Drew McCormack chime in on the same topic. 👍
Business and Marketing
Why you should charge more for your app subscriptions
The reality is most people won’t sign up for your subscription even at a low price. Most people dislike subscriptions, and many won’t subscribe at any cost.
So what do you do? It won't be a surprise to hear, given the title, that you should "charge more" but the data that Matt Ronge uses to make the point makes this worth reading.
iOS Developer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (remote friendly!). You'll get to be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. Apply today! – Remote within the US
Do you feel like it's time for a trip down memory lane? You won't regret reading the untold history of macOS System Preferences. 😍
Over the years, the cadence of the annual iOS release schedule has settled to become very predictable. First betas arrive in early June, then update every few weeks until the mid-September event where the iOS and Xcode GMs appear. Everyone does a final test on the GM, and a week or so later, the updates drop. It’s regular as clockwork. 👍
But it’s 2020, and nothing goes to plan this year. At Tuesday’s event, we expected to see the announcement of a late September release date, but as you know by now, it ended up being less than 24 hours after the event. 😬 Twitter, predictably, was the focus for the community’s ire and dissatisfaction. There was a broken GM build uploaded, and the clock was ticking.
I’m sure there are good reasons for why it happened this way, but it did throw everyone into a state of panic. A little communication from Apple to developers would have been very helpful, but I’m sure that a decades-long history of tight-lipped stoicism is tough to change. Maybe if the announcement of the event had come with a post on the developer news site outlining the adjusted release schedule, people would have been pacified after the event.
But without a final build, there’s no way to do that last test, and I saw several tweets from developers who found last-minute issues that only appeared in the GM build. It’s not ideal after developers have been working all summer to be ready on day one.
I do want to touch on the “day one” thing though. It’s long been seen as essential to have your app ready for the first day of a new platform, or operating system release. In reality, it’s probably not as critical as it might feel. Only a tiny percentage of users upgrade on day one, so it only affects the very earliest of adopters. It’s not worth losing too much sleep over, in my opinion. Most users will never know that your app didn’t immediately take advantage of every new API.
I also saw several people talking about lost marketing opportunities from not being there at launch, and again I don’t think it’s that important. Marketing is a constant, ongoing task, and coverage of these new releases doesn’t stop next week. There’s plenty of time to be featured by Apple, or a third party news site if you release a few days after the official launch. You’ll still beat most of the big companies, that won’t have widgets for the next 18 months.
Or, you could roll with it and integrate this into your marketing plan. 😍Dave Verwer