Sponsored Link
50+ CI/CD Workflow Recipes for Peak Performance
Explore Bitrise's curated workflow recipes, designed to speed up your mobile projects and improve performance. Download now.
Code
Everything you need to know about Swift 5.10
Donny Wals goes into more detail about 5.10ās strict concurrency checks and includes a video on the subject for those of you who prefer to learn that way. š
Concurrency Recipes
I love this idea. Matt Massicotte has created a repository full of problems you may encounter while dealing with strict concurrency and solutions to help you get your code up to speed. The project is open for contributions, too, so if you find any problems you canāt solve, Iām sure even just contributing a description of the problem would be useful!
If youāve created a visionOS app with a volume, you probably did it wrong
Thatās a bold post title, but regardless of whether you got it wrong or not, thereās some useful information in this post from Drew Olbrich. He also followed up with more information on Volumes in a second post if you enjoy this one!
How to use TipKit to create tool tips in SwiftUI
I mentioned how much I liked that TipKit exists a couple of weeks ago, and along comes Natascha Fadeeva with a great article on getting started with them.
Design
Sometimes, a Button Just Wants to Look Like a Button
What UI in your app could be solved better using a real world metaphor, or with just a really nice button?
I love all three examples in this post, but I especially like the button with the subtle blur behind it. ā¤ļø
You can put your appās paywall in an Alert. But you probably shouldnāt
Iād love to see more data on what Ryan Klumph is trying here. I can see an argument that the more in-depth and āheavyā your paywall screen is, the more significant that decision might seem to people using your app. As Ryan says in the post, I agree it depends on the type of app and the IAP purchase price. Interesting idea, though!
Books
Creating iOSExpert
Itās likely that at some point in your career in this industry, youāll either decide for yourself or be approached by a publisher to write a book or create a training course. Should you do it? I really enjoyed this post from Josh Adams about what he learned while producing his new course on preparing for a Swift/iOS interview.
Jobs
iOS Engineer @ trivago ā trivago, a metasearch engine using real-time auction and petabytes of data, enables millions of travelers compare hotel prices from hundreds of booking sites. Based in DĆ¼sseldorf, we foster a culture of learning and innovation, embracing flexibility for our talents to shape the travel industry. ā On-site (Germany) with some remote work (Anywhere)
Senior iOS/macOS Developer @ Paste ā Joining Paste means crafting impactful, user-focused products alongside a team that values innovation, flexibility, and a culture of collaboration. Dive into projects that push the boundaries, enjoy freedom in how you work, and help shape the future of productivity tools. ā Remote (within European timezones)
If youād like to see your job featured in iOS Dev Weekly, post it on iOS Dev Jobs and select āFeatured listingā as you check out, and itāll be in next weekās newsletter. š
And finally...
This looks like fun, especially if you have kids.
Also, donāt forget you can already run Swift on a Raspberry Pi Pico! š«Ø
Comment
Note: Please read the update at the end of this comment!
Swift 5.10 is here! Holly Borla introduced the release on the Swift.org blog, and if you havenāt dug into what this release is all about yet, Iāll let Holly explain by quoting the bolded sentence in her post:
As she explains, this is the culmination of years of work that will make our apps safer. In Swift 5.10, the feature to strictly check concurrency code is off by default and if switched on, introduces warnings, not errors.
The Swift Package Index isnāt the largest Swift project by a very long way, but itās also not trivial, and it uses Swift concurrency extensively as a Vapor-based project, so I thought there would be no better way to test this than by enabling it on our codebase, so I did!
I followed this guide linked from Hollyās blog post and had it set up in a couple of minutes. I expected tens or maybe hundreds of warnings, but found zero! So I did a clean build and again found zero warnings. Deeply suspicious! šµļøāāļø
I chatted about it with Sven, and he suspects that weāre in such good shape because of the work he did with the Thread Sanitizer from some concurrency issues we had last year. The Thread Sanitizer does a similar job to these strict concurrency checks but at runtime. We still run our tests with the sanitiser switched on today.
Just to check I hadnāt messed up while enabling the feature, I quickly inserted some code I knew should trigger a warning, and sure enough, one appeared! It seems the Swift Package Index source code is ready for Swift 6! š
Since switching it on didnāt add any warnings, I even committed those changes so we wonāt accidentally introduce this class of error before Swift 6 arrives.
Checking for compatibility isnāt the only reason you would enable this flag, so why not give it a try to see how your apps fare? It only takes a minute to enable.
Update: I made a mistake here and used
Dave VerwerenableUpcomingFeature
instead ofenableExperimentalFeature
. The real count of warnings was 526! š± Be careful how you enable it!