Chris Wu 🪐
@chriswu.com
iOS Dev Happy Hour & CommunityKit organizer
Swift Leeds 2025 Speaker 🇬🇧
My latest app is Please Don’t Rain (2023 AppleVis Golden Apple nominee for its accessibility support)
he/him
#accessibility
Swift Leeds 2025 Speaker 🇬🇧
My latest app is Please Don’t Rain (2023 AppleVis Golden Apple nominee for its accessibility support)
he/him
#accessibility
Pinned
Chris Wu 🪐
@chriswu.com
· 11d
I Gave My First Conference Talk!
Stories from my first conference talk.
chriswu.com
I wrote a blog post about my adventure in the UK giving my first conference talk, which was at @swiftleeds.co.uk .
Thanks to @flarup.bsky.social @0xtim.bsky.social @joshdholtz.com and Adam for inspiring me to do this.
chriswu.com/posts/speaki...
Thanks to @flarup.bsky.social @0xtim.bsky.social @joshdholtz.com and Adam for inspiring me to do this.
chriswu.com/posts/speaki...
I took these screenshots 30 seconds apart from each other. 🤔
(These are my only AirPods.)
(These are my only AirPods.)
November 11, 2025 at 11:08 PM
I took these screenshots 30 seconds apart from each other. 🤔
(These are my only AirPods.)
(These are my only AirPods.)
Reposted by Chris Wu 🪐
My talk from #ServerSideSwift is live!!
And I’m announcing a new website I’m still working on called LearnSwift .space to provide more content for the Swift community on using Swift outside of Apple platforms
LearnSwift.space
And I’m announcing a new website I’m still working on called LearnSwift .space to provide more content for the Swift community on using Swift outside of Apple platforms
LearnSwift.space
November 11, 2025 at 5:00 PM
My talk from #ServerSideSwift is live!!
And I’m announcing a new website I’m still working on called LearnSwift .space to provide more content for the Swift community on using Swift outside of Apple platforms
LearnSwift.space
And I’m announcing a new website I’m still working on called LearnSwift .space to provide more content for the Swift community on using Swift outside of Apple platforms
LearnSwift.space
Reposted by Chris Wu 🪐
I took a very extended social media break and now I’m trying to be back. We’ll see how this goes.
November 11, 2025 at 4:44 PM
I took a very extended social media break and now I’m trying to be back. We’ll see how this goes.
How do I convince voice dictation that there is not a scenario where I would ever use “U2” in conversation?
November 11, 2025 at 12:20 AM
How do I convince voice dictation that there is not a scenario where I would ever use “U2” in conversation?
I was confused why my tip jar choices were always appearing in English in my testing.
This explains it.
The language settings on the device aren't the deciding factor.
This explains it.
The language settings on the device aren't the deciding factor.
November 10, 2025 at 9:48 PM
I was confused why my tip jar choices were always appearing in English in my testing.
This explains it.
The language settings on the device aren't the deciding factor.
This explains it.
The language settings on the device aren't the deciding factor.
Reposted by Chris Wu 🪐
👋 It's been a while since I've publicly asked for help!
I've been working on Söka 3.1, which not only introduces multiple new features (including goal suggestions for existing bucket lists and Image Playground support), but also a fairly large code refactor under-the-hood.
I've been working on Söka 3.1, which not only introduces multiple new features (including goal suggestions for existing bucket lists and Image Playground support), but also a fairly large code refactor under-the-hood.
November 10, 2025 at 5:52 PM
👋 It's been a while since I've publicly asked for help!
I've been working on Söka 3.1, which not only introduces multiple new features (including goal suggestions for existing bucket lists and Image Playground support), but also a fairly large code refactor under-the-hood.
I've been working on Söka 3.1, which not only introduces multiple new features (including goal suggestions for existing bucket lists and Image Playground support), but also a fairly large code refactor under-the-hood.
Reposted by Chris Wu 🪐
Over the last few months, a bunch of promising leads haven't worked out. These things can take months, so who knows? But in the meantime, I have room for more work.
I help teams adopt Swift 6/Concurrency with confidence and success. More info about me here:
www.massicotte.org/consulting
I help teams adopt Swift 6/Concurrency with confidence and success. More info about me here:
www.massicotte.org/consulting
Consulting
I write stuff here.
www.massicotte.org
November 10, 2025 at 4:16 PM
Over the last few months, a bunch of promising leads haven't worked out. These things can take months, so who knows? But in the meantime, I have room for more work.
I help teams adopt Swift 6/Concurrency with confidence and success. More info about me here:
www.massicotte.org/consulting
I help teams adopt Swift 6/Concurrency with confidence and success. More info about me here:
www.massicotte.org/consulting
I've had some good support from the UK for Please Don't Rain even before my talk at Swift Leeds.
Shame on me for not supporting English (UK). Working on fixing that.
Shame on me for not supporting English (UK). Working on fixing that.
November 10, 2025 at 5:16 PM
I've had some good support from the UK for Please Don't Rain even before my talk at Swift Leeds.
Shame on me for not supporting English (UK). Working on fixing that.
Shame on me for not supporting English (UK). Working on fixing that.
This is another example of why I sometimes still use print.
Here it will happily show all of the contents of DayWeather from Apple WeatherKit.
Logger not only won't compile with the same data, but Xcode gives the "unable to type-check" error that doesn't tell you what line the problem is on.
Here it will happily show all of the contents of DayWeather from Apple WeatherKit.
Logger not only won't compile with the same data, but Xcode gives the "unable to type-check" error that doesn't tell you what line the problem is on.
November 9, 2025 at 4:38 PM
This is another example of why I sometimes still use print.
Here it will happily show all of the contents of DayWeather from Apple WeatherKit.
Logger not only won't compile with the same data, but Xcode gives the "unable to type-check" error that doesn't tell you what line the problem is on.
Here it will happily show all of the contents of DayWeather from Apple WeatherKit.
Logger not only won't compile with the same data, but Xcode gives the "unable to type-check" error that doesn't tell you what line the problem is on.
Finally got my rejected translations resolved so I'm happy to announce that Please Don't Rain supports Italian now. 🇮🇹
I spent a lot of time refining widgets also. Some will show more info when there's space and better adjust to temperatures with larger lengths.
I spent a lot of time refining widgets also. Some will show more info when there's space and better adjust to temperatures with larger lengths.
Version 5.18 adds support for Italian!
There's also a nice improvement to charts when you're tracking the current day.
There are also many changes to widgets to make them show more information (if there is room).
There's also a nice improvement to charts when you're tracking the current day.
There are also many changes to widgets to make them show more information (if there is room).
November 8, 2025 at 4:27 PM
Finally got my rejected translations resolved so I'm happy to announce that Please Don't Rain supports Italian now. 🇮🇹
I spent a lot of time refining widgets also. Some will show more info when there's space and better adjust to temperatures with larger lengths.
I spent a lot of time refining widgets also. Some will show more info when there's space and better adjust to temperatures with larger lengths.
This tip from @robinkanatzar.bsky.social is so good. It is the one that shocked me when I first learned it at @deepdishswift.com.
At the time I was only supporting portrait mode.
youtube.com/shorts/OzM-j...
At the time I was only supporting portrait mode.
youtube.com/shorts/OzM-j...
Want to make your app more accessible? Support landscape mode!
YouTube video by Robin Kanatzar
youtube.com
November 8, 2025 at 1:31 PM
This tip from @robinkanatzar.bsky.social is so good. It is the one that shocked me when I first learned it at @deepdishswift.com.
At the time I was only supporting portrait mode.
youtube.com/shorts/OzM-j...
At the time I was only supporting portrait mode.
youtube.com/shorts/OzM-j...
REALLY appreciate this nice write up in @iosdevweekly.com about my blog post for my talk at @swiftleeds.co.uk .
Thank you so much @daveverwer.com !
iosdevweekly.com/issues/734/
Thank you so much @daveverwer.com !
iosdevweekly.com/issues/734/
November 7, 2025 at 6:22 PM
REALLY appreciate this nice write up in @iosdevweekly.com about my blog post for my talk at @swiftleeds.co.uk .
Thank you so much @daveverwer.com !
iosdevweekly.com/issues/734/
Thank you so much @daveverwer.com !
iosdevweekly.com/issues/734/
In my talk at Swift Leeds I mentioned that I sometimes still use print instead of Logger because some things can get truncated.
Apple just wrote back to me about this scenario I opened, where it happens to Double latitude/longitude values.
1/2
Apple just wrote back to me about this scenario I opened, where it happens to Double latitude/longitude values.
1/2
November 7, 2025 at 4:54 PM
In my talk at Swift Leeds I mentioned that I sometimes still use print instead of Logger because some things can get truncated.
Apple just wrote back to me about this scenario I opened, where it happens to Double latitude/longitude values.
1/2
Apple just wrote back to me about this scenario I opened, where it happens to Double latitude/longitude values.
1/2
Interesting how different it is signing up for TSA Touchless ID between airlines.
Southwest & United: "We'll scan your passport with our app and you'll be done in seconds."
Delta, Alaska, & American: "You will enter single piece of information manually and you will like it."
Southwest & United: "We'll scan your passport with our app and you'll be done in seconds."
Delta, Alaska, & American: "You will enter single piece of information manually and you will like it."
November 7, 2025 at 2:10 AM
Interesting how different it is signing up for TSA Touchless ID between airlines.
Southwest & United: "We'll scan your passport with our app and you'll be done in seconds."
Delta, Alaska, & American: "You will enter single piece of information manually and you will like it."
Southwest & United: "We'll scan your passport with our app and you'll be done in seconds."
Delta, Alaska, & American: "You will enter single piece of information manually and you will like it."
Thank you @avanderlee.com for mentioning my blog post about my talk at Swift Leeds in your weekly newsletter!
swiftlee-weekly.com/join-for-free
swiftlee-weekly.com/join-for-free
November 5, 2025 at 1:14 AM
Thank you @avanderlee.com for mentioning my blog post about my talk at Swift Leeds in your weekly newsletter!
swiftlee-weekly.com/join-for-free
swiftlee-weekly.com/join-for-free
Reposted by Chris Wu 🪐
Join us next week for another iOS meetup in Toronto! I'll be giving a talk on "10 skills to level up your career".
Hope to see you there. I promise it will be fun!
luma.com/erbo0n3k?trk...
Hope to see you there. I promise it will be fun!
luma.com/erbo0n3k?trk...
Tacow November Meetup · Luma
Hey Everyone!
We're meeting again on November 12th! This month Danijela Vrzan will be speaking to us fresh off her recent Swift Bharat appearance!
Our second…
luma.com
November 4, 2025 at 2:28 PM
Join us next week for another iOS meetup in Toronto! I'll be giving a talk on "10 skills to level up your career".
Hope to see you there. I promise it will be fun!
luma.com/erbo0n3k?trk...
Hope to see you there. I promise it will be fun!
luma.com/erbo0n3k?trk...
New additions this year that I initially did not care about but now absolutely love:
What I call the “go away“ gesture in watchOS 26.
Landscape photos while holding the iPhone in portrait position.
What I call the “go away“ gesture in watchOS 26.
Landscape photos while holding the iPhone in portrait position.
November 3, 2025 at 8:56 PM
New additions this year that I initially did not care about but now absolutely love:
What I call the “go away“ gesture in watchOS 26.
Landscape photos while holding the iPhone in portrait position.
What I call the “go away“ gesture in watchOS 26.
Landscape photos while holding the iPhone in portrait position.
Reposted by Chris Wu 🪐
I gave my first ever conference talk at PyCon AU in Sept, based on my book: Escape from Tutorial Hell. It uses Swift and macOS in all its examples, but the principles apply to all languages.
I offered a 25% discount to all conference goers but not all the QR […]
[Original post on mastodon.social]
I offered a 25% discount to all conference goers but not all the QR […]
[Original post on mastodon.social]
November 3, 2025 at 5:22 AM
I gave my first ever conference talk at PyCon AU in Sept, based on my book: Escape from Tutorial Hell. It uses Swift and macOS in all its examples, but the principles apply to all languages.
I offered a 25% discount to all conference goers but not all the QR […]
[Original post on mastodon.social]
I offered a 25% discount to all conference goers but not all the QR […]
[Original post on mastodon.social]
Reposted by Chris Wu 🪐
Are you subscribed to Appt News yet (formerly Accessible Mobile Apps)? You really should be, and not just because I was the guest curator of this month’s issue! 😁
Huge thanks to @robinkanatzar.bsky.social for the invite!
Huge thanks to @robinkanatzar.bsky.social for the invite!
November 3, 2025 at 10:51 AM
Are you subscribed to Appt News yet (formerly Accessible Mobile Apps)? You really should be, and not just because I was the guest curator of this month’s issue! 😁
Huge thanks to @robinkanatzar.bsky.social for the invite!
Huge thanks to @robinkanatzar.bsky.social for the invite!
I'm not seeing a category for weather apps in the new web version of the App Store. ☹️
November 3, 2025 at 8:30 PM
I'm not seeing a category for weather apps in the new web version of the App Store. ☹️
Reposted by Chris Wu 🪐
Here's a video of the Tetris watch face I first showed you. When the time updates the digit(s) getting replaced blinks out and then is rebuilt.
I am so pleased to be wearing one of these once more!
I am so pleased to be wearing one of these once more!
November 1, 2025 at 2:17 AM
Here's a video of the Tetris watch face I first showed you. When the time updates the digit(s) getting replaced blinks out and then is rebuilt.
I am so pleased to be wearing one of these once more!
I am so pleased to be wearing one of these once more!
Good news: My rejection got reversed.
Bad news: My Italian IAP tip jar description (which triggered this whole mess) is still rejected because it's still in "Updates Pending Review".
Last time time I had to call support to get something like this fixed. I'm going to give it until Monday. 🫤
Bad news: My Italian IAP tip jar description (which triggered this whole mess) is still rejected because it's still in "Updates Pending Review".
Last time time I had to call support to get something like this fixed. I'm going to give it until Monday. 🫤
My current App Store rejection is for my build that adds Italian.
The reviewer can’t find my 2.5 year old tip jar that has already been approved for 7 other languages.
In my IAP notes I point out that the tip jar won’t appear until you’ve paid for a subscription. This is to prevent anyone (1/2)
The reviewer can’t find my 2.5 year old tip jar that has already been approved for 7 other languages.
In my IAP notes I point out that the tip jar won’t appear until you’ve paid for a subscription. This is to prevent anyone (1/2)
November 2, 2025 at 4:38 PM
Good news: My rejection got reversed.
Bad news: My Italian IAP tip jar description (which triggered this whole mess) is still rejected because it's still in "Updates Pending Review".
Last time time I had to call support to get something like this fixed. I'm going to give it until Monday. 🫤
Bad news: My Italian IAP tip jar description (which triggered this whole mess) is still rejected because it's still in "Updates Pending Review".
Last time time I had to call support to get something like this fixed. I'm going to give it until Monday. 🫤
I keep thinking of things to add to my latest blog post.
For example, the subtle hints I was dropping before I announced I was going to be speaking at Swift Leeds.
For example, the subtle hints I was dropping before I announced I was going to be speaking at Swift Leeds.
November 2, 2025 at 4:26 PM
I keep thinking of things to add to my latest blog post.
For example, the subtle hints I was dropping before I announced I was going to be speaking at Swift Leeds.
For example, the subtle hints I was dropping before I announced I was going to be speaking at Swift Leeds.
In my Q&A an audience member asked for examples when Date operations are likely to fail (and return nil).
Swift Leeds volunteer Paul Willis sent me a good one, and it involves a date that does not exist thanks to DST.
I didn't know that DateFormatter has isLenient
www.linkedin.com/posts/lysenk...
Swift Leeds volunteer Paul Willis sent me a good one, and it involves a date that does not exist thanks to DST.
I didn't know that DateFormatter has isLenient
www.linkedin.com/posts/lysenk...
How a daylight saving bug taught me a valuable lesson about Swift's DateFormatter | Konstantin Lysenko posted on the topic | LinkedIn
“This date doesn’t exist.” And it was right.
I was recently asked in an interview about a memorable bug I had encountered. One particular incident came to mind — not critical, but definitely insightfu...
www.linkedin.com
November 1, 2025 at 8:29 PM
In my Q&A an audience member asked for examples when Date operations are likely to fail (and return nil).
Swift Leeds volunteer Paul Willis sent me a good one, and it involves a date that does not exist thanks to DST.
I didn't know that DateFormatter has isLenient
www.linkedin.com/posts/lysenk...
Swift Leeds volunteer Paul Willis sent me a good one, and it involves a date that does not exist thanks to DST.
I didn't know that DateFormatter has isLenient
www.linkedin.com/posts/lysenk...