Pinned
Keith Harrison
Keith Harrison
@useyourloaf.com
I write about iOS development at useyourloaf.com.
1.4K followers79 following55 posts
Keith Harrison reposted
Two a11y engineering roles (one of them early career!) at Apple in London in the team my daughter manages. These sound like excellent roles to share with UK a11y folks. jobs.apple.com/en-gb/detail... jobs.apple.com/en-gb/detail...
Using Icon Composer for alternate app icons is working for me in Xcode 27 (I could never get it to work with Xcode 26). useyourloaf.com/blog/adding-... #iosdev #Xcode
DeviceHub didn't show any Simulators or let me create new ones until I killed the CoreDeviceService processes as described in this forum thread #Xcode27 developer.apple.com/forums/threa...
How many years has Apple been telling developers to stop making layout decisions based on device type or orientation? "This conceptual shift was introduced in iOS 8" developer.apple.com/videos/play/... #WWDC
Keith Harrison reposted
After a number of truly awful attempts, I have a post about "Non-Sendable First Design" that I think I can live with. I like this approach and I think you might like it too. It's simple, flexible, and most importantly, it looks "normal". www.massicotte.org/blog/non-sen...
Treating Warnings as Errors in Swift Packages #swiftlang useyourloaf.com/blog/treatin...
Keith Harrison reposted
Keith Harrison reposted
Swift Raw Identifiers #iOSDev #swiftlang useyourloaf.com/blog/swift-r...
When Observable replaced ObservableObject in iOS 17 it was missing a way to stream changes. That was fixed in iOS 26 (swift 6.2). #iosdev #swiftui useyourloaf.com/blog/swift-o...
I found a workaround to the problem with Icon Composer not working for alternate app icons. Manually adding keys to the target's Info.plist seems to fix it for now. Seems to need separate keys for the ~ipad variant. Hopefully Apple fixes this soon. #Xcode useyourloaf.com/blog/adding-...
How do you create a SwiftUI picker that works with optional selection so that not picking a value is possible? #iosdev #swiftui useyourloaf.com/blog/swiftui...
How do you write SwiftData predicates to query for parent relationships? #iOSDev #SwiftData #SwiftUI useyourloaf.com/blog/swiftda...
My notes on the surprising (to me) scope of SwiftUI keyboard shortcuts #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
How do you change the accessibility language used by VoiceOver with SwiftUI? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
Changing the default behaviour of a scroll view to center content only when it’s smaller than the scroll view container #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
Swift Testing completion handlers #SwiftLang #iosdev useyourloaf.com/blog/swift-t...
Provisional authorzation to send local user notifications. A feature old enough (iOS 12) for me to forget it exists. #iOSDev useyourloaf.com/blog/provisi...
How do you change the image a SwiftUI button shows when pressed? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
When the user chooses the reduce motion accessibility setting you should avoid large animations with objects that fly in/out of the screen #iOSDev #SwiftUI useyourloaf.com/blog/reducin...
Migrating from XCTest to Swift Testing #iOSDev #SwiftLang useyourloaf.com/blog/migrati...
Keith Harrison reposted
Ok, it's time for another one of these "Swift concurrency step-by-step" posts. It explores working with types that are not Sendable. All based around reading a model from some data store. www.massicotte.org/step-by-step...
Keith Harrison reposted
The Department of Transport has a survey on how to integrate better. Tell them what you want (I want cycleways that connect to each other that are safe for children to use, and trains with a cadence high enough you don't need to use a timetable, like I had in London) www.smartsurvey.co.uk/s/PG2JMU/
Plotting functions with SwiftUI charts useyourloaf.com/blog/swiftui... #iOSDev #SwiftUI
Automatic Trait Tracking in iOS 18 #UIKit #iOSdev useyourloaf.com/blog/automat...
Keith Harrison reposted
I hit the issue today with awakeFromNib not being isolated to the main actor. Luckily mattiem has me covered: massicotte.org/awakefromnib #Iosdev #SwiftLang
Keith Harrison reposted
Xcode 16 organizes projects using folders instead of the previous groups. What difference does that make and which should you use? https://troz.net/post/2024/xcode_folders_groups/
Keith Harrison reposted
I made a starter pack of #Swift / ObjC devs who post about #iOSDev / #MacDev and app-building at least from time to time* - let me know if you'd like to be added (or removed) 🙂 bsky.app/starter-pack... 🍎🍏 Some aren't very active here, but maybe this will encourage them 😈 (*) yes, I know I don't 😛
I was hoping for more when I saw that #SwiftData added support for expressions in iOS 18. #iOSDev useyourloaf.com/blog/swiftda...
Disabling Xcode asset symbol generation #Xcode #iosdev useyourloaf.com/blog/disabli...
Using the Entry macro to reduce boilerplate when adding custom values to the SwiftUI environment #iOSDev #SwiftUI useyourloaf.com/blog/entry-m...
How do you invert a boolean binding? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
Turning on strict concurrency checking doesn't protect you from accidentally blocking the main actor. Something I find way too easy to do as I learn how to use Swift Concurrency #SwiftLang #iOSDev #SwiftUI useyourloaf.com/blog/swiftui...
Still using print statements to debug your App. Maybe it's time you moved to the unified OS logging framework? #iOSDev #Xcode useyourloaf.com/blog/xcode-c...