The Senior iOS Developer Testing Crash Course
Learn the most up-to-date techniques and strategies for testing new and legacy Swift code in this free practical course for iOS devs who want to become complete Senior iOS Developers. Learn more.
Faster Builds with Xcode 13.2 Beta 2
Do you want even faster builds on your shiny new Apple silicon laptop? Or on your less shiny old Intel laptop? I'm sure you do. There's good news in the latest Xcode 13.2 beta release notes:
The build system and Swift compiler have a new mode that better utilizes available cores, resulting in faster builds for Swift projects.
Xcode was already keen to use cores, but from the results I saw on Twitter it seems to help! I need to try this.
Apple and Google Ads
I was conflicted about whether to link to this story or not. It's interesting, but the original article on Forbes is so wrong it's certainly not worth reading. Instead, I'm linking to the MacRumours post with the clarification on what's going on. Apple places Google ads for some popular apps on the store with the consent of the companies being advertised. I was surprised by this, as I think many people were, but as the clarification from Apple points out, this no different to a large retailer placing ads for the products they sell, which isn't weird at all.
Want to help me out with some ads for Dev Jobs, Apple? 😂
Are there more ways to speed up a build than buying a new machine or enabling the new build system in Xcode? Bartosz Polaczyk writes about XCRemoteCache, a new tool (and server) that serves and caches build artefacts to speed up builds by doing less building.
Honestly, I've no experience (or desire to) working on a codebase large enough to make a tool like this worthwhile. Still, if you're in a similar situation to the engineers at Spotify, you'll want to read this.
Understanding how and when SwiftUI decides to redraw views
Do you need to know how SwiftUI decides when to rebuild/redraw the view hierarchy? Probably not. Will it give you a better understanding of what's happening when things go wrong? Almost certainly. I enjoyed this article from Donny Wals, where he uses the SwiftUI tool in Instruments to figure out what's happening.
Open Sourcing SwiftUI Navigation
I've previously mentioned that presenting alerts and sheets is one aspect of Swift that feels awkward, especially when there's the potential to present multiple from a single view. It has been on the minds of Stephen Celis and Brandon Williams too, but they did something about it and worked on a new SwiftUI Navigation library to help!
I love this set of exercises teaching TDD from Rick van Voorden. There's a guide to completing them. If you've never attempted TDD, or if you're new to unit testing, this is going to be a great place to start!
A Best-in-Class iOS App
When Jordan Morgan first announced this book, I remember thinking, "Oh, I'll link to that when it's finished". I didn't realise at the time that it was four books or quite how expansive his plans for each of them were, and I realised "finished" might leave it in my backlog for a while. 😱
Now seems like a good time to link to it, though. The first significant section, covering accessibility, is coming to a close, and it's an entire 300-page book by itself. Jordan just published an early access retrospective post covering how he marketed and advertised it, too, so maybe read that first.
For full disclosure, Jordan sent me a copy of the book to check out.
Senior iOS Developer @ Komoot – We love Tech. We love Nature. We work hard to make it easy for everyone to explore the world’s most beautiful places. Today, millions of people explore nature with our apps. Their experiences are what drive us and make us smile every day. – Remote (within European timezones)
iOS Engineer @ Fjorden – We are a small team and you would be our first iOS engineer, next to Florian our CTO. Together we will build & ship our camera app (around 60% done today), and design an SDK other camera apps can integrate to take full advantage of the Fjorden grip. – Remote (within European timezones)
iOS Engineer @ Branch – Branch is on a mission to help working Americans grow financially. We do this by helping companies accelerate payments and empower working Americans with accessible, fee-free financial services. We’re committed to building and delivering more inclusive and transparent financial products. – Remote (within US timezones)
Senior iOS Engineer @ onX – Are you an iOS developer who loves the outdoors? Join onX! If you’re passionate about writing great software, love playing outside, and believe in protecting access to public lands – then join our team, where we empower millions of outdoor enthusiasts to explore the unknown! – 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)
Lead Swift Engineer @ Vital – Vital is an API that empowers health companies to provide preventative healthcare using a combination of continuous monitoring & lab tests. We've just raised $3mil backed by Y Combinator and a number of other amazing investors! We're looking for Swift Engineer to lead our health-kit integrations. – Remote (within US, European, or Asia-Pacific timezones)
Did you know that iOS Dev Jobs has native apps? Get a daily notification when a job gets posted that matches your filters. Download the iOS or macOS app.
How about we finish this week with a deep dive into the history of the HIG.
Via Andy Matuschak's recent tweets, I ended up deep in the 1987 version, followed by a pre-release version from 1985 and finished with a version from 1992. Fascinating!
I felt so bad for the Notability developers when they misjudged their move to a subscription business model a few weeks ago. They made all the classic mistakes. Starting with the gleeful “We’re going free!” heading in the announcement post and continuing to hit every branch as they fell out of the tree.
The reaction was so quick, predictable, and completely unforgiving. I didn’t even search for people talking about the transition, and still saw several people saying awful things about them on Twitter. I hate to think what I’d have seen if I had gone looking. 😱 Of course, they course-corrected, and the internet rejoiced! Another company successfully prevented from switching to a business model that might make what they do sustainable. 🎉 All is right on the internet again.
I’m writing about this now for two reasons. First, Matt Ronge wrote a fantastic post telling you how not to screw up switching your app to subscriptions. The best thing about this article is how simple the three points are. Apple should open this post every time you try and switch a paid app to subscriptions in App Store Connect.
But secondly, as a reminder that even though the App Store has never been a more challenging environment, and situations like this can be devastating, it still normalised selling B2C software. Software was almost exclusively a business purchase before the App Store. You might argue that the move towards B2C software was inevitable as technology advanced, but it’d be hard to say that the iPhone and the App Store didn’t help it accelerate.
It has been a long time since there was a “gold rush” on any software platform, and making money through selling software is never easy, but we should be glad that making money selling software B2C is now extremely tough, where it used to be impossible! 😂Dave Verwer