Join a FREE iOS Architect Crash Course for a limited time
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.
I genuinely thought I had linked to this fantastic website from Kishikawa Katsumi before, but it appears that I have not! Think Swift Playgrounds on the web, with the ability to switch between Swift versions (including nightly snapshots) and shareable links so you can pass your code around. ❤️
Tips and tricks for exploring a new codebase
I’ve not had a traditional career in terms of joining companies to work on existing apps, so I’m confident I’d be terrible at learning a large codebase that I’ve not been involved with from the start. What a good job that Donny Wals has written up this guide on how to get better at it.
Flexible Continuous Integration for iOS
I really enjoyed this post from Michael Bachand and Xianwen Chen covering the history and current situation with CI at Airbnb. My only piece of advice would be to pay attention to this line in the post:
Our new CI system ran over 10 million minutes of CI jobs in the last three months of 2022.
This post is fascinating, but it’s likely you’re not dealing with the same scale of CI unless you are also at a huge company.
Attempting to connect a tvOS app to an iOS app
This post from Ben Dodson would have been right at home on NSHipster. I love reading about the more obscure APIs on iOS and, in this case, tvOS!
Parallax header effect in SwiftUI using CoordinateSpace
They may not be as popular today as they were, but a good quality parallax pull-down header can always be a valuable tool for design situations like user profile screens. Artur Gruchała has a great example here of putting one together in SwiftUI. 👍
Designing a Step Goal Live Activity
Why do I keep linking to David Smith’s posts on app design? Partially because he’s one of the few people blogging on this topic, but primarily because he’s making things like this! ❤️ It’s so well thought out and beautifully designed that I feel I must highlight it.
Note: If there’s anyone who is blogging about app design that I don’t know about, you know what to do!
Blog posts and documentation don’t have to be beautifully structured to be useful, but this post from Frank Rausch is a great example of how it can help. Spend a few minutes with this fantastic list of the pros and cons of a huge variety of navigation designs in iOS apps.
Senior iOS Developer @ Shareup – Want to build something new? Join our small, design-led team at @shareupapp to build the fastest, easiest, and most secure way to share anything with anyone. We use Apple’s best tech, including Swift Concurrency, Combine, Catalyst, UIKit, and SwiftUI, and you’ll work closely with our talented team. – Remote (within European timezones)
Apple Platforms Developer @ Cascable AB – Cascable is a small "indie" company based in Stockholm, Sweden. This is the job for you if you love working with and learning about multiple technologies. We have UIKit, AppKit, SwiftUI, and Swift-on-the-Server (Vapor) across our suite of products, and you'll be working with all of them! – On-site (Sweden) with some remote work (within European timezones)
Senior iOS Engineer @ Reveri – We’re looking for an experienced, adaptable, and engaged Senior iOS Engineer looking to make a genuine positive difference in our member’s lives through self-hypnosis. 100% SwiftUI codebase, iOS 15+, Combine, and Concurrency. Small team, 3 iOS, 2 Android Engineers, every role has impact. – Remote (within European timezones)
Is your company hiring? Don’t forget that you can post any iOS/macOS/Swift job for free over on iOS Dev Jobs. What are you waiting for?
Maybe there’s an upside to being replaced?
When Hursh Agrawal published this video six months ago, he made a bold claim. He said they planned to create the Windows version of their Arc Web Browser using Swift, and it would have a native look and feel in terms of Windows UI and controls.
It was an ambitious plan, but it also made me want to watch what they were doing. It all made more sense when I learned that Saleem Abdulrasool had joined their company, presumably to lead this effort.
In case you’re not aware, Saleem is a Swift core team member and the driving force behind Swift on Windows and other efforts like SwiftWinRT and SwiftWin32.
I was happy (and just slightly surprised 😅) to see this update from Hursh at the end of last week. They seem to be making progress and even mention open-sourcing the cross-platform UI framework they are creating. If they are working on something that allows developers to share UI code across platforms and they follow through with platform fit being important, that framework could be a big deal.
Today, cross-platform Mac and Windows (and Linux) development is likely to mean using either Electron or Flutter. Both are fully cross-platform, but neither creates a great native-feeling UI.
Swift faces an incredibly challenging journey to be relevant as a language used for Windows development, but a Mac and Windows (and Linux?) UI framework that cares about platform fit would be unique in the industry and give it a nice boost. I’m looking forward to seeing what gets announced when Arc showcases it.
Note: I also considered including Xamarin.Mac and React Native for macOS above, but I had reasons not to include them. Xamarin.Mac creates AppKit apps and while it could help with a partially cross-platform codebase, you’d still need a separate UI layer for Windows. React Native for macOS doesn’t seem to have gained any traction since launching, and even the official desktop showcase has broken links and very few mentions of apps that work on macOS.
Update: Hursh dropped me a quick email with a slight correction on my assumptions above. He clarified that they are not working on a cross-platform UI toolkit, and instead are a declarative UI toolkit for WinUI in Swift. This will mean you need to build your UI layer twice, but that you will, of course, be able to share business logic and non-UI code between platforms. Apologies for the mistake in my assumptions!Dave Verwer