Sponsored Link
Join the FREE iOS Architect Crash Course
If you're a mid/senior iOS developer looking to improve both your skills and salary level, join this free online crash course. Itās available only for a limited time, so get it now.
News
Hello Developer: New visionOS sample code
Talking of visionOS, the latest issue of Appleās Hello Developer newsletter (which is well worth subscribing to) announces multiple new sample code projects highlighting visionOS! š Scroll down to the āNew sample codeā section and youāll find links to three new non-trivial projects. Thereās a multi-platform app, a RealityKit, and one demonstrating Reality Composer Pro.
Tools
swift-testing-revolutionary
This package came up during the latest episode of Swift Package Indexing, and I felt compelled to mention it here, too. Kohki Mikiās latest work will take your XCTest tests and do its best to convert them to run with Appleās new swift-testing package. From our testing on the SPI source code, it works remarkably well!
Kaleidoscope 5
Each time thereās a new major release of Kaleidoscope I wonder what new features the developers can add to a diff
app. Throughout the v4.x releases, they introduced several features to enable closer integration with git, and v5 takes that one step further by allowing you to open source repositories with some super handy views for branch comparison and easy ways to see what changes were made in the last timer period or number of commits. Itās not a cheap app, but it is absolutely the best at its job.
For full disclosure, the developers provided me a review copy of the app.
Code
Tips & tricks with the iOS 18 ScrollView API
I believe that part of the struggle SwiftUI has had, and why we saw so many āIs SwiftUI ready for productionā blog posts a couple of years ago is that the set of āeasyā tasks and ādifficultā tasks are so different between SwiftUI and UIKit. For example, as Thomas Ricouard says:
Itās a simple
ScrollView
+LazyVStack
Implementation with infinite scrolling (pagination) and a way to hide the navigation bar and the tab bar when scrolling. This is quite a standard behavior when using UIKit, but until iOS 18, it was hard to reproduce using SwiftUI.
Luckily, the set of āeasyā tasks that SwiftUI has always excelled at remains as it also knocks down the list of previously difficult ones. š
Understanding Swift 6 concurrency via evolution proposal analysis
I linked to Matt Massicotteās series of posts on Swift concurrency and data race safety just before WWDC as I thought he was finished! He wasnāt done then, but he is now! So, while I wouldnāt usually link to the same articles again so quickly, his journey through Swift Evolution adding examples and context as he goes has been so great that itās worth checking out the entire set if you want to understand Swift 6.0 better.
Blend Modes in SwiftUI
Have you ever caught yourself saying āOh, blend modes! Those are what Photoshop has, right?ā as someone mentions them? If so, get some clarity on what each of them does with this beautifully illustrated guide by Aryaman Sharda, and try not to think about why this page doesnāt have a similar set of images. š¬
Using PreviewModifier to build a previewing environment
I must admit I still donāt use SwiftUI previews š¬ I prefer the āold fashionedā way of building and running when I need to see a view in use. I should probably re-think that, though, as previews have improved and improved over the years since they were first introduced. Hereās Donny Wals with a recap of the latest improvements available in the latest SDK.
Videos
An Infinite Canvas
This was the perfect video for me last night on the eve of my Vision Pro arrival. Itās Mike Stern and Linda Dong from Apple presenting at Figma Config 2024 on designing for visionOS. š„½
Jobs
Software Engineer, iOS @ amo ā Amo values speed, creativity, and high performance. Focused on meaningful social apps, they prioritize creation over consumption and simple, fun experiences. The diverse, skilled team uses a modular monorepo tech stack with Rust, Bazel, and RxSwift, leveraging efficient data processing on GCP. ā On-site (France)
Senior iOS Engineer @ Leica Camera AG ā We are looking for an experienced iOS developer to join our team. We are working as a small, fast-moving unit within Leica, so we are looking for team members who can take charge of projects and work independently. Itās a bonus (but not required) if you are passionate about photography! ā Remote (within European timezones) or on-site (Germany)
Product Engineer (iOS, Full-Stack) @ Emerge Tools ā Have a huge impact working with our small, technically elite team (just 8), build tools used some of the biggest & best mobile teams in the world (DoorDash, Square, Spotify, Duolingo, Tinder, Bumble) ā Remote (within US timezones)
Senior iOS Developer @ Komoot ā Your work will contribute to helping millions of people enjoy lovely outdoor experiences and you can work from wherever you want, be it a beach, the mountains, your house, or anywhere else that lies in any time zone between UTC-1 and UTC+3. ā Remote (within European timezones)
And finally...
Talking of Figma. Itās available literally everywhere!
Earlier today, I stepped into my very own spatial computing experience as I used my brand-new Vision Pro for the first time. š„½
Itās easy to think that the Vision Pro is old hat now. It launched in the US five months ago, and thatās an eternity in tech. šØāš¦³ The tech news cycle has long since moved on to other topics, but itās still such early days for the platform. Here in the UK and for everyone in a few other select countries, itās day one, and millions of others have no release date.
In some ways, Iām glad the hype and tech press around the platform has died down. This is a long-term bet from Apple, and the best-case scenario will be similar to the Apple Watch, in that itāll take time to succeed and mature. That maturing will come primarily from Apple, continuing to plough huge amounts of money into visionOS and future hardware projects that hopefully bring the devices in range of more peopleās budgets. Just as important, though, will be persuading third-party developers to invest their time and effort.
Whatās clear from the couple of hours I have spent using the device so far is how well the basics work. I was comfortable navigating the windowing system within a few minutes, and it feels stable and predictable. Itās early days and Iām still very much in the honeymoon period with it, and I know itās not perfect, but the basics feel solid.
So the million (or billion) dollar question is, will third-party developers choose to invest that time and effort? Iāve been keeping a close eye on the community since the US launch, and have noticed that the number of people writing about development in visionOS increased as the hype faded. Youāve got people with dedicated blogs, like Donovanās Vision Blog, and StuVision, sites like Create with Swift and elkraneo who have dedicated landing pages for visionOS posts, and of course, there are plenty of occasional posts on other blogs, too.
Donāt get me wrong, the risks of this platform failing are still significant, but seeing developer interest from third parties will reduce those risks and I canāt wait to see where it goes from here!
Oh, and if you have an app on the store or a TestFlight in progress for a visionOS-native app. reply to this email with a link. Iād love to check your app out!
Dave Verwer