Sign in

Keith Harrison

@useyourloaf.com
1.4K followers 79 following 55 posts

I write about iOS development at useyourloaf.com.

PostsRepliesMedia
Keith Harrison @useyourloaf.com · 22/09/2026
Both Interface Builder bugs I reported with Xcode 26 are now fixed. The canvas rotation issue was fixed in Xcode 27.0 and now the incorrect safe area bug has been fixed in 27.2. Well done Xcode Interface Builder team! #iOSDev #Xcode
042
Reposted by Keith Harrison
Rachel Andrew @rachelandrew.co.uk · 01/09/2026
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...
jobs.apple.com
Accessibility Engineer (Web Accessibility SME) - Jobs at Apple (UK)
Apply for a Accessibility Engineer (Web Accessibility SME) job at Apple. Read about the role and find out if it’s right for you.
26337
Keith Harrison @useyourloaf.com · 19/08/2026
@jeffjarvis.bsky.social arrived today (UK)!
Book cover: HotType the magnificent machine that gave birth to mass media and drove Mark Twain mad. Jeff Jarvis. Bloomsbury
100
Keith Harrison @useyourloaf.com · 30/07/2026
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
useyourloaf.com
Adding Icon Composer icons to Xcode
How do you use Icon Composer to add App Icons to an Xcode project?
020
Keith Harrison @useyourloaf.com · 25/06/2026
Glad I decided to replace my iPad Pro last week. Price is up £200 this week
010
Keith Harrison @useyourloaf.com · 16/06/2026
WWDC 2026 viewing guide #WWDC useyourloaf.com/blog/wwdc-20...
useyourloaf.com
WWDC 2026 Viewing Guide
My WWDC 2026 viewing guide to help you plan the sessions you want to watch.
041
Keith Harrison @useyourloaf.com · 16/06/2026
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...
developer.apple.com
Security Verification
Security verification page to protect against malicious bots.
011
Keith Harrison @useyourloaf.com · 11/06/2026
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
developer.apple.com
Modernize your UIKit app - WWDC26 - Videos - Apple Developer
Discover the latest updates to UIKit. Learn how to update your iPhone app layouts to work great when resized with iPhone Mirroring and on...
061
Reposted by Keith Harrison
Matt Massicotte @massicotte.org · 17/12/2025
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...
massicotte.org
Non-Sendable First Design
The easiest way to design concurrent systems in Swift was hiding in plain sight.
1112
Keith Harrison @useyourloaf.com · 04/09/2025
Treating Warnings as Errors in Swift Packages #swiftlang useyourloaf.com/blog/treatin...
useyourloaf.com
Treating Warnings As Errors In Swift Packages
In Swift 6.2, Swift Packages give us control over which compiler warnings to treat as errors.
042
Reposted by Keith Harrison
Lukas Petr @luksape.bsky.social · 31/08/2025
🚨 PSA for all of you updating your apps for iOS 26: When you build using Xcode 26, the large navigation title gets broken (no left padding) when running on iOS 18. 🔗 Link to a fix below.
A screenshot of iOS 18 simulator, showing broken large navigation title layout.
381
Reposted by Keith Harrison
Matt Massicotte @massicotte.org · 31/08/2025
Anyone hit problems enabling approachable concurrency (or flags in its grouping) aside from the migration step required for NonisolatedNonsendingByDefault? Not talking about default isolation here. I haven't encountered any anywhere and I'm curious. Seems like it is going quite smooth so far.
131
Keith Harrison @useyourloaf.com · 21/08/2025
Swift Raw Identifiers #iOSDev #swiftlang useyourloaf.com/blog/swift-r...
useyourloaf.com
Swift Raw Identifiers
Swift 6.2 adds raw identifiers to the language.
121
Keith Harrison @useyourloaf.com · 06/08/2025
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...
useyourloaf.com
Swift Observations AsyncSequence for State Changes
Swift 6.2 introduces a new Observations type to stream state changes from an Observable type.
193
Keith Harrison @useyourloaf.com · 20/06/2025
Did anybody get Icon Composer .icon files to work for alternate app icons? #WWDC25 #Xcode
320
Keith Harrison @useyourloaf.com · 14/05/2025
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...
useyourloaf.com
SwiftUI Picker With Optional Selection
Creating a SwiftUI picker that works with optional selection.
000
Keith Harrison @useyourloaf.com · 09/05/2025
How do you write SwiftData predicates to query for parent relationships? #iOSDev #SwiftData #SwiftUI useyourloaf.com/blog/swiftda...
useyourloaf.com
SwiftData Predicates For Parent Relationships
How do you write SwiftData predicates to query for parent relationships.
030
Reposted by Keith Harrison
Jeff Johnson @lapcatsoftware.bsky.social · 19/04/2025
UIApplication delegate deprecation coming in iOS 19 SDK lapcatsoftware.com/articles/202...
lapcatsoftware.com
UIApplication delegate deprecation coming in iOS 19 SDK
041
Keith Harrison @useyourloaf.com · 11/04/2025
My notes on the surprising (to me) scope of SwiftUI keyboard shortcuts #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
useyourloaf.com
SwiftUI Keyboard Shortcut Scope
A SwiftUI keyboard shortcut remains active as long as the control it's attached to is still in the view hierarchy, even when not onscreen.
030
Keith Harrison @useyourloaf.com · 02/04/2025
How do you change the accessibility language used by VoiceOver with SwiftUI? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
useyourloaf.com
SwiftUI Accessibility Language
How do you change the accessibility language used by VoiceOver with SwiftUI?
020
Keith Harrison @useyourloaf.com · 26/03/2025
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...
useyourloaf.com
SwiftUI Default Scroll Anchor
Changing the default behaviour of a scroll view to center content only when it's smaller than the scroll view container.
000
Keith Harrison @useyourloaf.com · 25/03/2025
Is there no way to set the accessibility language for a SwiftUI view? UIKit has the accessibility language property but there’s no equivalent in SwiftUI. I’ve seen people using AttributedString with the .accessibilitySpeechLanguage attribute but I can’t get it to work. #SwiftUI #iOSDev
000
Keith Harrison @useyourloaf.com · 13/03/2025
Swift Testing completion handlers #SwiftLang #iosdev useyourloaf.com/blog/swift-t...
useyourloaf.com
Swift Testing Completion Handlers
How do you test completion handlers with Swift Testing.
041
Keith Harrison @useyourloaf.com · 13/02/2025
Provisional authorzation to send local user notifications. A feature old enough (iOS 12) for me to forget it exists. #iOSDev useyourloaf.com/blog/provisi...
useyourloaf.com
Provisional Authorization of User Notificatons
Requesting provisional authorization to send local user notifications.
020
Keith Harrison @useyourloaf.com · 29/01/2025
How do you change the image a SwiftUI button shows when pressed? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
useyourloaf.com
SwiftUI Button Image When Pressed
How do you change the image a SwiftUI button shows while the user is pressing the button?
210
Keith Harrison @useyourloaf.com · 23/01/2025
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...
useyourloaf.com
Reducing Motion of Animations
Apply the reduce animation setting to your SwiftUI animations.
050
Keith Harrison @useyourloaf.com · 11/12/2024
I like how building DocC with Xcode 16 now warns about documented parameters that don't exist in the method declaration #Xcode #iOSDev
Yellow Xcode warning Parameter 'id' not found in initializer declaration with option to fix by removing id parameter
140
Keith Harrison @useyourloaf.com · 10/12/2024
Migrating from XCTest to Swift Testing #iOSDev #SwiftLang useyourloaf.com/blog/migrati...
useyourloaf.com
Migrating XCTest to Swift Testing
A quick guide to migrating XCTest unit test to Swift Testing.
0132
Reposted by Keith Harrison
Matt Massicotte @massicotte.org · 30/11/2024
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...
massicotte.org
Concurrency Step-by-Step: Reading from Storage
Not too long ago, I was re-reading an “introductory” post I wrote. Honestly, I could barely make it though. I guess a big part of that is that my own defintion of “introduction” when it comes to concu...
79423
Reposted by Keith Harrison
Kevin Marks @kevinmarks.com · 28/11/2024
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/
smartsurvey.co.uk
Integrated National Transport Strategy: a call for ideas
Please take the time to complete our survey. Your feedback is important.
184
Keith Harrison @useyourloaf.com · 27/11/2024
Plotting functions with SwiftUI charts useyourloaf.com/blog/swiftui... #iOSDev #SwiftUI
useyourloaf.com
SwiftUI Charts Plotting Functions
In iOS 18 SwiftUI charts can plot functions.
050
Keith Harrison @useyourloaf.com · 15/11/2024
Automatic Trait Tracking in iOS 18 #UIKit #iOSdev useyourloaf.com/blog/automat...
useyourloaf.com
Automatic Trait Tracking
UIKit automatically tracks trait changes starting in iOS 18.
040
Reposted by Keith Harrison
Matt Massicotte @massicotte.org · 11/11/2024
Ok let’s try something! For my new bluesky friends, I’m gonna spent ~ the whole day tomorrow answering Swift concurrency questions here. Do your worst! #SwiftLang
175015
Keith Harrison @useyourloaf.com · 08/11/2024
I hit the issue today with awakeFromNib not being isolated to the main actor. Luckily mattiem has me covered: massicotte.org/awakefromnib #Iosdev #SwiftLang
massicotte.org
What on earth is going on with awakeFromNib?
When I first got into Cocoa development, Interface Builder was a big deal. I used it pretty extensively until sometime around the macOS 10.7 era, when I began experimenting with programmatically-defin...
000
Keith Harrison @useyourloaf.com · 29/10/2024
I’m pretty sure this is the Swift compiler telling me I need to upgrade my M1 mac mini? #SwiftLang
Swift source code for a width calculation showing the Xcode error: "The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions"
020
Keith Harrison @useyourloaf.com · 24/09/2024
Swift 6 deprecates UIApplicationMain, replace it with main to silence the error #iOSDev #SwiftLang
UIKit app delegate annotated with @UIApplicationMain. Xcode show red error message, uiapplicationmain is deprecatedUIKit app delegate annotated with main
171
Keith Harrison @useyourloaf.com · 18/09/2024
iPhone 16 screen sizes #iOSDev useyourloaf.com/blog/iphone-...
useyourloaf.com
iPhone 16 Screen Sizes
What's new with the 2024 iPhone 16 screen sizes.
031
Reposted by Keith Harrison
troz @troz.mastodon.social.ap.brid.gy · 17/09/2024
Xcode 16 organizes projects using folders instead of the previous groups. What difference does that make and which should you use? troz.net/post/2024/xcode_folders_gr…
Project navigators in Xcode 15 & 16
242
Reposted by Keith Harrison
Kuba Suder 🇵🇱🇺🇦 @mackuba.eu · 17/09/2024
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 😛
84514
Keith Harrison @useyourloaf.com · 12/09/2024
I was hoping for more when I saw that #SwiftData added support for expressions in iOS 18. #iOSDev useyourloaf.com/blog/swiftda...
useyourloaf.com
SwiftData Expressions
SwiftData adds predicate expressions in iOS 18.
010
Keith Harrison @useyourloaf.com · 27/08/2024
The SwiftUI Previewable macro #iOSDev #SwiftUI useyourloaf.com/blog/swiftui...
useyourloaf.com
SwiftUI Previewable Macro
Apple added the Previewable macro to iOS 18. This generates the boilerplate wrapper view you need to preview a view with State bindings.
040
Keith Harrison @useyourloaf.com · 20/08/2024
Disabling Xcode asset symbol generation #Xcode #iosdev useyourloaf.com/blog/disabli...
useyourloaf.com
Disabling Xcode Asset Symbol Generation
Xcode 16 added a property to asset catalogs to opt-out of asset symbol generation.
000
Keith Harrison @useyourloaf.com · 14/08/2024
Using the Entry macro to reduce boilerplate when adding custom values to the SwiftUI environment #iOSDev #SwiftUI useyourloaf.com/blog/entry-m...
useyourloaf.com
Entry Macro for Custom SwiftUI Environment Values
The Entry macro reduces the boilerplate when customizing the SwiftUI environment.
062
Keith Harrison @useyourloaf.com · 05/04/2024
Xcode bookmarks #Xcode #iOSDev useyourloaf.com/blog/xcode-b...
010
Keith Harrison @useyourloaf.com · 21/03/2024
How do you invert a boolean binding? #SwiftUI #iOSDev useyourloaf.com/blog/swiftui...
011
Keith Harrison @useyourloaf.com · 13/03/2024
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...
251
Keith Harrison @useyourloaf.com · 17/02/2024
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...
131
Keith Harrison @useyourloaf.com · 06/02/2024
Silencing the Core Data CloudKit sync debug messages that fill the Xcode console #iOSDev #CoreData #SwiftData useyourloaf.com/blog/disabli...
021
Reposted by Keith Harrison
John Scalzi @scalzi.com · 23/11/2023
This just went live: The John Scalzi @humblebundle! Get a whole bunch of my books really cheap - and support the literacy charity First Book, which provides books and literary resources to kids in need. A perfect way to stock up on my eBooks. Please feel free to share around!
humblebundle.com
Humble Book Bundle: The John Scalzi Collection: Old Man's War, The Interdependency, and More, by Tor
Dive into Hugo Award winner John Scalzi's beloved sci-fi! Get Old Man's War, Redshirts, and other great books & support First Book with your purchase!
34436242