Will
will-lumley.bsky.social
Will
@will-lumley.bsky.social
Mainly a senior iOS engineer, but love to dabble in web development and robotics/embedded-systems in my spare time.

Father to four amazing children, and husband to a beautiful wife.

Checkout my stuff:
https://lumley.io
http://github.com/will-lumley/
Reposted by Will
let's express gratitude to the amazing people who selflessly shared their priceless wisdom with us: @danielchooper.bsky.social, Jinkai, @useyourloaf.com, Tjeerd in 't Veen, @jacobstechtavern.com, Bruno Valente Pimentel, Alfonso Tarallo, @massicotte.org and @will-lumley.bsky.social
Fatbobman’s Swift Weekly #0107 is out!
A Trip to the Apple Store for Repairs

🔥 Hot Reloading SwiftUI Apps
🔍 Mobile Testing Strategies
🤖 Automate with Swift Subprocess
🎢 AsyncCombine

and more...
weekly.fatbobman.com/p/fatbobman...
Fatbobman's Swift Weekly #0107
A Trip to the Apple Store for Repairs
weekly.fatbobman.com
October 20, 2025 at 12:19 PM
Reposted by Will
My talk from ServerSide is up!
October 13, 2025 at 1:23 PM
🚀 New blog post!

AsyncCombine: Because Async Code Shouldn’t Be Ugly

I brought back Combine’s sink, assign, and CombineLatest - but built powered by Swift Concurrency.

Observing @Observable from another ViewModel shouldn’t be painful.

Here’s how I fixed it 👉 lumley.io/blogs/async-...
AsyncCombine: Because Async Code Shouldn’t Be Ugly
When Swift first introduced Combine, I loved it. The syntax was expressive, pipelines were easy to follow, and @Published made state changes feel almost magical. But as Apple pushed us toward Swift Co...
lumley.io
October 11, 2025 at 2:59 AM
Reposted by Will
so i wrote a thing about stubbing URLSession based on a 'trick' i discovered the other day jellystyle.com/2025/09/stub...
How to Stub URLSession Responses… or Die Trying
The internet is filled to the brim with the gravestones of attempts to stub URLSession responses. As something of a strange holdover from the Objective-C days, URLSession is notoriously hard to…
jellystyle.com
September 24, 2025 at 9:17 AM
Reposted by Will
iOS Dev Tip 💡

Easily monitor the device’s thermal state to optimize performance during overheating.

learnandcodewithenid.com
April 17, 2025 at 7:20 PM
Reposted by Will
Making this argument and then hanging the entire load on TRY is fucking hilarious:
April 10, 2025 at 10:29 PM
Reposted by Will
💡Starting with iOS 18.0, you can create mesh gradients in SwiftUI using MeshGradient.

learnandcodewithenid.com
January 19, 2025 at 11:24 PM
Reposted by Will
github.com
January 10, 2025 at 8:49 AM
Reposted by Will
There is a convenient brightness(_:) modifier in #SwiftUI that can be used to adjust the intensity of colors in our views. We can lighten the colors by passing it values from 0 to 1 or darken them using negative values:
nilcoalescing.com/blog/AdjustT...
Adjust the intensity of colors in SwiftUI views
Lighten or darken colors in SwiftUI views using the brightness(_:) modifier.
nilcoalescing.com
December 19, 2024 at 6:51 AM
Reposted by Will
1517, Martin Luther
the older i get the more i appreciate type systems
December 28, 2024 at 6:37 PM
Reposted by Will
it’s forbidden in their culture but a vacuum cleaner wants nothing more than to eat it’s own cord
December 26, 2024 at 5:13 PM
Reposted by Will
Why I 💛 the web.

#macOS menu bar app that shows how full the ISS urine tank is in real time. 🛰️🚽

Yurnining to check this out.

github.com/Jaennaet/pIS... #Swift
GitHub - Jaennaet/pISSStream: macOS menu bar app that shows how full the International Space Station's urine tank is in real time
macOS menu bar app that shows how full the International Space Station's urine tank is in real time - Jaennaet/pISSStream
github.com
December 25, 2024 at 12:10 AM
Reposted by Will
*click* React Native. *click* Flutter. *click* .....SwiftUI. *click* GTK. Easy. *click* ......Qt6.
December 23, 2024 at 1:19 AM
CMD+Space doesn't bring up Spotlight anymore and this has ruined my opinion on macOS and life.
December 15, 2024 at 5:07 AM
Reposted by Will
Completion > perfection
December 13, 2024 at 4:51 AM
Reposted by Will
With #swiftlang It's easy to forget that the diff between a point-free and pointed styles of function argument passing is not just syntactic but semantic. It's normal to consider these to be equivalent:
1. [1, 2].map(String.init)
2. [1, 2].map { String($0) }
But we shouldn't forget that: 1/4
December 11, 2024 at 1:44 PM
Reposted by Will
Do you know about the take function for the Optional type? It takes the value if it is not nil and toggles the variable to nil.
https://buff.ly/3Zin2Wv
December 11, 2024 at 11:16 AM
Reposted by Will
A problematic little #swiftlang pattern I often see is "unwrap-then-nullify" for optional values that hold some temp state. This oft comes up when dealing with local caches or scrollOffsets or in-flight tasks, etc. Forgetting to nullify a value to "reset" state is a common mistake. Use take method.
December 6, 2024 at 12:28 PM
If “the boy who cried wolf” was a notification
December 5, 2024 at 7:04 AM
Hypothetically, imagine not knowing Swift Testing doesn't have a built-in timeout function, and then writing a bad unit test and pushing it, going to sleep, and then waking up and finding out you've used all your Github Action minutes for the month. On this second day of the month.
Hypothetically.
December 2, 2024 at 12:29 AM
Currently working on a Swift project that uses Combine, and because it the year of our lord 2024 I'm using Swift Testing to write my unit tests.

But I was struggling with covering my Combine code with Swift Testing.

Here's how I managed to solve the problem!

lumley.io/blogs/swift-...

#iOS #swift
How to Write Unit Tests for Combine Publishers in Swift Testing
Unit testing Combine publishers can feel like you’re wrestling with a slippery eel: asynchronous, stateful, and a bit chaotic if not handled correctly. But fear not! Today, I’ll walk you through how t...
lumley.io
November 30, 2024 at 8:26 AM
Reposted by Will
Hello, old friend fuckingblocksyntax.com
How Do I Declare A Block in Objective-C?
fuckingblocksyntax.com
November 28, 2024 at 7:05 PM
Reposted by Will
VSCode UI is so ugly it takes the joy out of programming
November 27, 2024 at 6:28 PM