Sponsored Link
Forget writing testing scripts, use Waldo.
Waldo is the first fully no-code mobile testing solution. Now, anyone on your team can create reliable automated tests and help you fix bugs before your users find them. Try Waldo now, for free.
News
Q&A Summary from the Accessibility Tech Talk
Unfortunately, presumably due to the Q&A format, Apple's current set of Tech Talks are not available to watch later. So, a quick reminder that you still have time to book an upcoming session if you want to be involved. However, I was happy that Sommer Panage took the time to summarise some of the Q&A from one of the accessibility sessions. Thanks, Sommer! π
Tools
How to use GitHub Copilot with Swift
I've not thought much about GitHub Copilot since I wrote about it in Issue 514 until I saw this post from An Tran where he uses Visual Studio Code and Copilot to write some SwiftUI code.
I would still encourage extreme caution with using Copilot in any context due to the very murky licensing situation caused by GPL licensed code as training data. Actually. I'd go even further than that and say you should not use this tool in a project that has any importance to you, no matter how cool it is. I researched whether anyone had clarified the licensing issues, but this post was the best I found from just after it first launched.
It's still an interesting post from An, though!
Code
How to solve any iOS crash
I'd add one last item to this great list of tips from Bruno Rocha on how to find crashes in your app. Make sure you're on the exact revision of code that you submitted to the App Store. Even trivial changes you've made since the build you submitted can make a difference when finding weird crashes. Tag and version everything you submit!
The SwiftUI Environment
There's lots to learn about the SwiftUI Environment, so it's good that Federico Zanatello put together this six-part (1, 2, 3, 4, 5, and 6) series of posts on it. I'm sure you'll learn something from it, no matter your level of expertise with SwiftUI.
Dangerous Logging in Swift
It's been a while since I used NSLog
, but this is an excellent reminder from Daniel Jalkut that mixing Objective-C logging calls with Swift's string interpolation can have side effects. The story of how he originally ended up in this situation is especially interesting, and you may likely have taken the same road if you converted Objective-C code to Swift.
What Is a Deprecated API on iOS?
Deprecated can be is a scary word, but Douglas Hill is here with a highly detailed and well-written guide to deprecation in Apple's SDKs. It's really worth a read if you've ever wondered about the rules Apple use.
Design
How people use bidirectional text IRL
I've never worked with localising an app into an RTL/bidirectional language but always assumed that since iOS and macOS supported it well, it would all be relatively straightforward with a good translator. After reading this... π± I had no idea about the complexities.
Videos
Refactoring an app to use the latest SwiftUI and async/await
This is a rather long video from Alfian Losari, but if you're about to convert an app to use async/await or move it to a more modern version of SwiftUI, then this walkthrough of upgrading a real app might push you in the right direction!
Books
Modern Concurrency in Swift
Do you need an entire book on how to use async/await? No, but when you add all of the other concurrency features that Swift now has along with detailed explanations of how to test async code, then yes, a book might help. Here's a new one from Marin Torodov.
For full disclosure, I have a complimentary subscription to the Ray Wenderlich site so I can check out their new books.
Jobs
iOS Developer @ Doximity β Doximity, medical network used by over 80% of US clinicians, is hiring passionate iOS engineers (remote). You'll 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. β Remote (within US timezones)
Principle iOS Developer @ Sleepiest β Here at Sleepiest, we're all about getting people sleeping better and living happier healthier lives. Sound up your street? We're a tiny 4 person core team, with big ambitions; we've been Apples App Of The Day worldwide, and the app has over 3.7m downloads (and 50k paying subscribers). Join us. β Remote (Anywhere)
iOS Developer @ Impending, Inc. β Join a team of 4 responsible for designing and building Heads Up! βΒ the App Store's most popular and beloved party game. We're remote friendly (US timezone overlap is critical), pay $150-200k/year, and also tinker on some cool indie projects like Clear, which popularized swipe left to delete. β Remote (within US timezones)
iOS Engineer @ Clay β Clay's app is one of the most advanced SwiftUI apps in production, and was written in SwiftUI from day 1. We've tackled some of the most frustrating bugs, and designed some of the most seamless interactions. If you're interested in using SwiftUI professionally, this is the place to do it. β Remote (within US timezones)
Head of Mobile @ Chip β At Chip, we are on a mission to build the best savings account in the world. Automated, intelligent, wealth-building all with an amazing UI for the mobile generation. β Remote (within European timezones) with some on-site work (United Kingdom)
Are you looking for a new position? With over 60 open positions listed over at iOS Dev Jobs, what you see here is just the tip of the iceberg. Or, download the apps for daily personalised notifications to keep you up-to-date!
Comment
The entirety of the Swift Package Index core team (yep, both of us!) decided to treat ourselves to new MacBook Pro laptops after Appleβs recent announcements, and they arrived this week! π
What do developers want to do with new hardware? We want to see how fast it is! Not at rendering ProRes video or 3D modelling, but with the tool we use every day, Xcode.
What began as an experiment to test how fast our new laptops could build the Swift Package Index source quickly turned into something more ambitious, and we found helpful volunteers to run a benchmark across a whole range of Intel and M1 machines. We tested everything from a 2015 Intel MacBook Pro through last yearβs M1 MacBook Air to every significant M1 Pro and M1 Max configuration. π±
If youβve been looking for developer-focused benchmarks, we think this will answer almost all of your questions. Check it out.
Dave Verwer