Matthaus Woolard
@hishnash.bsky.social
📤 206
📥 365
📝 38
Data Scientist,
#Python
and
#SwiftLang
, macOS/iPadOS app developer
reposted by
Matthaus Woolard
Natalia Panferova
8 days ago
Swift’s string interpolation system is more powerful than it first appears. Beyond simple value substitution, it can be extended to apply custom logic when values are interpolated. I’ve published a post showing how it can be done:
nilcoalescing.com/blog/Definin...
#SwiftLang
loading . . .
Defining custom string interpolation behavior in Swift
Extend Swift’s string interpolation to define custom behavior, such as value formatting, directly inside string literals.
https://nilcoalescing.com/blog/DefiningCustomStringInterpolationBehaviorInSwift/
0
12
3
reposted by
Matthaus Woolard
Natalia Panferova
24 days ago
The end-of-year edition of the Nil Coalescing newsletter is out 🎉 It includes a recap of the most popular iOS and macOS posts from 2025, a look ahead to 2026, and a festive discount on my books:
nilcoalescing.com/newsletter/2...
#iOSDev
#macOSDev
#SwiftLang
#SwiftUI
loading . . .
Nil Coalescing - Nil Coalescing Newsletter - December 2025
I hope you are enjoying the end of the year and finding some time to slow down, reflect, and look ahead to what's next. As 2025 comes to a close, I thought this would be a good moment to look back and...
https://nilcoalescing.com/newsletter/2025-12-27/
0
16
5
reposted by
Matthaus Woolard
Nil Coalescing
30 days ago
Learn the recommended ways to initialize and store Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly:
nilcoalescing.com/blog/Initial...
#iOSDev
#SwiftUI
loading . . .
Initializing @Observable classes within the SwiftUI hierarchy
Learn the recommended ways to initialize and store @Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly.
https://nilcoalescing.com/blog/InitializingObservableClassesWithinTheSwiftUIHierarchy/
1
18
5
reposted by
Matthaus Woolard
Natalia Panferova
about 1 month ago
I've been exploring all the different animation types we can apply to SF Symbols in
#SwiftUI
and wrote a post covering symbol effect animations and transitions:
nilcoalescing.com/blog/Animati...
loading . . .
Animating SF Symbols in SwiftUI
Add symbol effect animations and transitions to symbol images in SwiftUI to handle icon state changes without custom drawing or animation logic.
https://nilcoalescing.com/blog/AnimatingSFSymbolsInSwiftUI/
0
12
5
reposted by
Matthaus Woolard
Natalia Panferova
about 1 month ago
I'll be speaking at the ARCtic Conference in Oulu, Finland in February! I've seen a lot of really positive feedback from speakers and attendees of the previous edition, and I'm really looking forward to being part of the next one!
arcticonference.com
#iOSDev
#SwiftLang
0
16
2
reposted by
Matthaus Woolard
Nil Coalescing
about 1 month ago
Learn how to leverage the new glass appearance for partial sheets in iOS 26, and set up morphing transitions for sheets presented from toolbar buttons using SwiftUI APIs:
nilcoalescing.com/blog/Present...
#iOSDev
#SwiftUI
loading . . .
Presenting Liquid Glass sheets in SwiftUI on iOS 26
Learn how to leverage the new glass appearance for partial sheets in iOS 26, and set up morphing transitions for sheets presented from toolbar buttons using SwiftUI APIs.
https://nilcoalescing.com/blog/PresentingLiquidGlassSheetsInSwiftUI/
0
8
2
reposted by
Matthaus Woolard
Breve
about 1 month ago
New limited edition coffee recipes are now available in Breve! Discover Festive Delights, a collection of cozy holiday drinks crafted to bring comfort, cheer, and a little sparkle to every cup:
apps.apple.com/us/app/id674...
#Coffee
#CoffeeLovers
#iOSApp
0
7
3
reposted by
Matthaus Woolard
Natalia Panferova
about 1 month ago
SwiftUI gives us a lot of control when styling SF Symbols, including custom foreground styles. One simple technique is to apply a foreground style with an inner shadow to make an icon look cut out from its background:
nilcoalescing.com/blog/AddAnIn...
#SwiftUI
#iOSDev
loading . . .
Add an inner shadow to a symbol image in SwiftUI
Create a cut out icon effect in SwiftUI by applying a foreground style with an inner shadow to an SF Symbol image.
https://nilcoalescing.com/blog/AddAnInnerShadowToASymbolImageInSwiftUI/
0
14
4
reposted by
Matthaus Woolard
Natalia Panferova
about 1 month ago
Last day of the sale!
add a skeleton here at some point
0
6
4
reposted by
Matthaus Woolard
Natalia Panferova
about 2 months ago
My Black Friday book sale will be running for a few more days, until the end of this week. All of my Swift and SwiftUI books are currently 30% off:
books.nilcoalescing.com
#iOSDev
#SwiftLang
#SwiftUI
0
5
3
reposted by
Matthaus Woolard
Natalia Panferova
about 2 months ago
It's not always obvious what is the right way to initialize an Observable within the SwiftUI view hierarchy, and what are the consequences of getting it wrong, so I wrote a blog post exploring some common use cases:
nilcoalescing.com/blog/Initial...
#iOSDev
#SwiftUI
loading . . .
Initializing @Observable classes within the SwiftUI hierarchy
Learn the recommended ways to initialize and store @Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly.
https://nilcoalescing.com/blog/InitializingObservableClassesWithinTheSwiftUIHierarchy/
0
16
4
reposted by
Matthaus Woolard
Natalia Panferova
about 2 months ago
The November issue of the Nil Coalescing newsletter has been sent to all the subscribers, and it's now available online:
nilcoalescing.com/newsletter/2...
I shared news on my Swift and SwiftUI book updates, Black Friday book deals, recent videos, and my conference plans for next year.
loading . . .
Nil Coalescing - Nil Coalescing Newsletter - November 2025
The festive season is almost here, and it feels like everyone is preparing for the end-of-year break. This month, we've been wrapping up the work we wanted to finish before the holidays and have begun...
https://nilcoalescing.com/newsletter/2025-11-29/
0
9
2
reposted by
Matthaus Woolard
Nil Coalescing
about 2 months ago
If you are looking to deepen your understanding of SwiftUI, take your Swift code to the next level, or start adopting SwiftUI in existing UIKit projects, don’t miss our Black Friday deal on
@natpanferova.bsky.social
's books and bundles:
books.nilcoalescing.com
#iOSDev
#SwiftLang
#SwiftUI
0
3
7
reposted by
Matthaus Woolard
Natalia Panferova
about 2 months ago
I've just released a small update to my book "Swift Gems" with techniques covering features introduced in Swift 6.2, including inline arrays, default values in string interpolation, and some Swift concurrency tips. And it’s currently on sale: 30% off!
books.nilcoalescing.com/swift-gems
#SwiftLang
loading . . .
Swift Gems
100+ tips to take your Swift code to the next level
https://books.nilcoalescing.com/swift-gems
0
9
5
reposted by
Matthaus Woolard
Natalia Panferova
2 months ago
UIKit now supports automatic observation tracking, making it easier to share data between UIKit and integrated SwiftUI components. I wrote a post looking into how this works on iOS 26 and iOS 18:
nilcoalescing.com/blog/Automat...
#iOSDev
loading . . .
Automatic property observation in UIKit with @Observable
UIKit now has native support for Swift Observation, automatically tracking reads of @Observable properties in update methods, making it easier to share data between UIKit and integrated SwiftUI compon...
https://nilcoalescing.com/blog/AutomaticPropertyObservationInUIKitWithObservable/
2
17
5
reposted by
Matthaus Woolard
Natalia Panferova
2 months ago
I've just released a new version of "Integrating SwiftUI into UIKit Apps", with all the projects updated for iOS 26 and Xcode 26! And it's currently 30% off as part of my Black Friday book sale:
books.nilcoalescing.com/integrating-...
#iOSDev
#SwiftUI
loading . . .
Integrating SwiftUI into UIKit Apps
A detailed guide on gradually adopting SwiftUI in UIKit projects
https://books.nilcoalescing.com/integrating-swiftui
0
11
4
reposted by
Matthaus Woolard
Natalia Panferova
2 months ago
My Black Friday book sale has started! All of my Swift and SwiftUI books are now 30% off! Find out more:
books.nilcoalescing.com
#iOSDev
#SwiftUI
#SwiftLang
0
15
12
reposted by
Matthaus Woolard
Nil Coalescing
2 months ago
Learn how to add Codable conformance to Swift enums, including automatic synthesis, customizations, and fully manual implementations for complex cases:
nilcoalescing.com/blog/Codable...
#SwiftLang
#iOSDev
loading . . .
Codable conformance for Swift enums
Learn how to add Codable conformance to Swift enums, including automatic synthesis, customizations, and fully manual implementations for complex cases.
https://nilcoalescing.com/blog/CodableConformanceForSwiftEnums/
0
9
4
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
I've published a new video! I shared some tips for implementing Dynamic Type support in SwiftUI apps, covering system and custom fonts, ScaledMetric API, and dynamicTypeSize environment value:
youtu.be/wflWj5l7wlk
#SwiftUI
#iOSDev
#Accessibility
loading . . .
Tips for Supporting Dynamic Type in SwiftUI Apps
YouTube video by Nil Coalescing
https://youtu.be/wflWj5l7wlk
1
10
5
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
I noticed that on iOS 26.1 there are some small improvements to the Liquid Glass tab bar: the selected tab color looks less saturated, making it more readable on top of colorful backgrounds, and the edge effect is stronger. Here is
@brevecoffeeapp.bsky.social
on iOS 26 and 26.1:
1
25
4
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
Excited to share my recent appearance on the Swift Academy podcast! In this episode, Walid Sassi and I talk about iOS 26, Liquid Glass, SwiftUI, and Accessibility, and explore some of the new APIs along with ways to make apps more inclusive:
youtu.be/CEZbwcv60MA
#iOSDev
#SwiftUI
loading . . .
iOS26, SwiftUI and Accessibility with Natalia Panferova
YouTube video by Walid SASSI
https://youtu.be/CEZbwcv60MA
0
18
5
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
The October issue of the Nil Coalescing newsletter has gone out to all subscribers 📬 I've shared news on my SwiftUI Fundamentals book update, and my recent technical learnings on supporting iOS 26 and 26.1. You can also read the issue online:
nilcoalescing.com/newsletter/2...
loading . . .
Nil Coalescing - Nil Coalescing Newsletter - October 2025
I hope you've had a productive October! This month I've started updating my books for iOS 26, released an update for my app Breve with a special Halloween event, and recorded a Swift Academy podcast e...
https://nilcoalescing.com/newsletter/2025-10-30/
0
10
3
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
I've been exploring SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and wrote a post sharing what I learned and what to watch out for to avoid unexpected results:
nilcoalescing.com/blog/ScrollV...
#SwiftUI
#iOSDev
loading . . .
ScrollView snapping in SwiftUI
Explore SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and learn what to watch out for to avoid unexpected results.
https://nilcoalescing.com/blog/ScrollViewSnappingInSwiftUI/
0
20
4
reposted by
Matthaus Woolard
Breve
3 months ago
Halloween has arrived in Breve! Discover limited-time coffee recipes brewed with a little magic and a lot of flavor 🎃✨ Breve on the App Store:
apps.apple.com/app/apple-st...
#CoffeeLovers
#Halloween
#iOSApp
0
8
2
reposted by
Matthaus Woolard
Nil Coalescing
3 months ago
"SwiftUI Fundamentals" by
@natpanferova.bsky.social
has been updated for iOS 26 with refreshed visuals and examples reflecting the new Liquid Glass design:
nilcoalescing.com/blog/SwiftUI...
#SwiftUI
#iOSDev
loading . . .
"SwiftUI Fundamentals" book update: refreshed for iOS 26 and the Liquid Glass design
'SwiftUI Fundamentals' by Natalia Panferova has been updated for iOS 26 with refreshed visuals and examples reflecting the new Liquid Glass design.
https://nilcoalescing.com/blog/SwiftUIFundamentalsUpdateOctober2025/
0
13
6
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
SwiftUI makes it easy to show a “no results” state for search with
ContentUnavailableView.search
. And it even automatically includes the search text in the message, as long as it’s used within the scope of the searchable() modifier.
#iOSDev
#SwiftUI
0
18
2
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
I’ve just published an update for my SwiftUI Fundamentals book! It’s now refreshed for iOS 26 and the new Liquid Glass design, with updated examples and screenshots throughout. You can check it out and get the new version here:
books.nilcoalescing.com/swiftui-fund...
#iOSDev
#SwiftUI
loading . . .
SwiftUI Fundamentals
The essential guide to SwiftUI core concepts and APIs
https://books.nilcoalescing.com/swiftui-fundamentals
1
15
4
reposted by
Matthaus Woolard
Nil Coalescing
3 months ago
Buttons inside a SwiftUI List row can cause the entire row to become tappable and trigger multiple buttons at once, but applying a specific button style ensures each button works independently:
nilcoalescing.com/blog/Multipl...
#SwiftUI
#iOSDev
loading . . .
Multiple buttons in SwiftUI List rows
Buttons inside a List row can cause the entire row to become tappable and trigger multiple buttons at once, but applying a specific button style ensures each button works independently.
https://nilcoalescing.com/blog/MultipleButtonsInListRows/
1
16
4
reposted by
Matthaus Woolard
Breve
3 months ago
Macchiato or Latte Macchiato? Bold espresso softened by a touch of milk, or creamy milk marked by espresso? Learn how to make both in Breve:
apps.apple.com/app/apple-st...
#Coffee
#CoffeeLovers
#CoffeeTime
#Espresso
0
5
3
reposted by
Matthaus Woolard
Nil Coalescing
3 months ago
Discover how to use the Observable macro in SwiftUI and its advantages over ObservableObject, such as more efficient view updates and simplified code management:
nilcoalescing.com/blog/Observa...
#SwiftUI
#iOSDev
loading . . .
Using @Observable in SwiftUI views
Discover how to use the @Observable macro in SwiftUI and its advantages over ObservableObject, such as more efficient view updates and simplified code management.
https://nilcoalescing.com/blog/ObservableInSwiftUI/
0
10
3
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
In the first version of
@brevecoffeeapp.bsky.social
I placed timers in the tab view's bottom accessory, but it broke in iOS 26.1 beta. In the latest release, I switched to a custom view with an interactive glass effect. To keep it always visible above the tabs, I used safeAreaBar().
#SwiftUI
#iOSDev
0
11
3
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
I noticed that on iOS 26, the default swipe action appearance changed to show both an icon and a title instead of just the icon. If we want to restore the previous icon-only look, we can use the labelStyle() modifier in SwiftUI:
nilcoalescing.com/blog/ShowIco...
#iOSDev
#SwiftUI
loading . . .
Show icons only in SwiftUI swipe actions on iOS 26
Starting with iOS 26, SwiftUI shows both title and icon in swipe action buttons by default, but the previous icon-only appearance can be restored using the labelStyle() modifier.
https://nilcoalescing.com/blog/ShowIconsOnlyInSwiftUISwipeActionsOnIOS26
1
11
2
reposted by
Matthaus Woolard
Breve
3 months ago
Looking for a cosy drink to warm up your day? ☕️ Try a Dirty Chai Latte. It combines the warmth of chai spices with the kick of espresso, the perfect autumn companion. Find it in Breve:
apps.apple.com/app/apple-st...
#CoffeeLovers
#CoffeeBreak
#AppDesign
0
6
1
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
Just released
@brevecoffeeapp.bsky.social
version 1.1! Updated the timers, added a new setting to switch to precise measurements for all recipes for those who like to weigh everything, and made a few other small improvements based on user feedback:
apps.apple.com/app/apple-st...
#iOSDev
#IndieDev
0
13
2
reposted by
Matthaus Woolard
Nil Coalescing
3 months ago
Learn how to define custom environment values in SwiftUI, eliminate boilerplate with the Entry macro, and pass data through the view hierarchy effectively:
nilcoalescing.com/blog/CustomE...
#SwiftUI
#iOSDev
loading . . .
Custom environment values in SwiftUI
Learn how to define custom environment values in SwiftUI, eliminate boilerplate with the @Entry macro in Xcode 16, and pass data through the view hierarchy efficiently.
https://nilcoalescing.com/blog/CustomEnvironmentValuesInSwiftUI/
0
9
2
reposted by
Matthaus Woolard
Breve
3 months ago
Breve version 1.1 is here! Enjoy improved brewing timers, a new precise mode for ingredient measurements, and other improvements to make your coffee experiments at home even more delightful! Download on the App Store:
apps.apple.com/app/apple-st...
#iOSApp
#IndieDev
#CoffeeLovers
loading . . .
1
6
3
reposted by
Matthaus Woolard
Natalia Panferova
3 months ago
Exciting to see
@brevecoffeeapp.bsky.social
included in the latest issue of Those Who Swift newsletter 🤩
thosewhoswift.substack.com/p/those-who-...
0
10
1
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
When testing Dynamic Type support in
@brevecoffeeapp.bsky.social
I noticed that text would get truncated at larger text sizes for no real reason. I had to apply fixedSize(horizontal:vertical:) as a workaround to force the text to wrap instead:
nilcoalescing.com/blog/Avoidin...
#SwiftUI
#iOSDev
loading . . .
Avoiding text truncation in SwiftUI with Dynamic Type
Prevent unnecessary text truncation at larger text sizes with the fixedSize(horizontal:vertical:) modifier, forcing the text to expand vertically as needed.
https://nilcoalescing.com/blog/AvoidingTextTruncationInSwiftUI
0
14
3
reposted by
Matthaus Woolard
Nil Coalescing
4 months ago
Format interpolated values like arrays of strings, measurements, and dates directly inside SwiftUI Text views using FormatStyle, and display dynamic dates using Text.DateStyle:
nilcoalescing.com/blog/Formatt...
#SwiftUI
#iOSDev
#SwiftLang
loading . . .
Formatting data inside SwiftUI Text views
Format interpolated values like arrays of strings, measurements, and dates directly inside SwiftUI Text views using FormatStyle, and display dynamic dates using Text.DateStyle.
https://nilcoalescing.com/blog/FormattingDataInsideSwiftUITextViews/
0
5
2
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
I wrote a blog post taking a closer look at my new app
@brevecoffeeapp.bsky.social
from a technical perspective, sharing what I learned while building it for iOS 26 with Liquid Glass design, new SwiftUI APIs, and system integrations:
nilcoalescing.com/blog/Introdu...
#iOSDev
#SwiftUI
#IndieDev
loading . . .
Introducing Breve: an arty coffee app built for iOS 26
Take a closer look at my new app Breve, exploring the technical insights around Liquid Glass design, iOS 26 SwiftUI APIs, and system integrations.
https://nilcoalescing.com/blog/IntroducingBreve
0
24
5
reposted by
Matthaus Woolard
Nil Coalescing
4 months ago
Swift 6.2 is here with iOS 26 and Xcode 26, and while most of the focus is on concurrency, there are other noteworthy changes and improvements too. Get up to speed with the non-concurrency updates in Swift 6.2:
youtu.be/0hI_4OWN31o
#SwiftLang
loading . . .
What’s New in Swift 6.2 (Beyond Concurrency Updates)
YouTube video by Nil Coalescing
https://youtu.be/0hI_4OWN31o
0
7
2
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
The September issue of the Nil Coalescing newsletter is now out! I've shared some technical insights from building my new app
@brevecoffeeapp.bsky.social
for iOS 26, and it also includes a picture of a cat 😁 Find it in your inbox or read online:
nilcoalescing.com/newsletter/2...
#iOSDev
#SwiftUI
loading . . .
Nil Coalescing - Nil Coalescing Newsletter - September 2025
September was a really eventful month with iPhone 17 launch, iOS 26 release, and many great events running in the iOS developer community. The newsletter got slightly delayed this time, I was focusing...
https://nilcoalescing.com/newsletter/2025-09-30/
0
9
2
reposted by
Matthaus Woolard
Breve
4 months ago
Breve has a new home on the web! Take a peek:
breve.coffee
#Coffee
#CoffeeTime
#iOSDev
#AppLaunch
loading . . .
Breve
Breve is a beautifully designed iPhone and iPad app that brings the café experience to your kitchen with easy to follow coffee recipes and guides.
https://breve.coffee/
0
5
2
reposted by
Matthaus Woolard
Breve
4 months ago
Breve is now available on the App Store! Make cappuccinos, lattes, mochas, iced drinks, and more with easy recipes that adapt to your equipment. Choose from professional or casual espresso brewing and milk frothing methods to make every cup your own.
apps.apple.com/app/id674730...
#Coffee
0
8
3
reposted by
Matthaus Woolard
Nil Coalescing
4 months ago
Learn how to leverage the new glass appearance for partial sheets in iOS 26, and set up morphing transitions for sheets presented from toolbar buttons using SwiftUI APIs:
nilcoalescing.com/blog/Present...
#iOSDev
#SwiftUI
loading . . .
Presenting Liquid Glass sheets in SwiftUI on iOS 26
Learn how to leverage the new glass appearance for partial sheets in iOS 26, and set up morphing transitions for sheets presented from toolbar buttons using SwiftUI APIs.
https://nilcoalescing.com/blog/PresentingLiquidGlassSheetsInSwiftUI/
0
9
2
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
Started working on the September newsletter. It will be a bit late this time, got delayed by
@brevecoffeeapp.bsky.social
launch and
#shipaton2025
submission 😅 You can still sign up here to get it in your inbox:
nilcoalescing.com/newsletter
loading . . .
Nil Coalescing - Newsletter
https://nilcoalescing.com/newsletter
0
6
3
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
Submitted
@brevecoffeeapp.bsky.social
to
#shipaton
! And made a demo video:
youtu.be/MTmp_qpXYTs
loading . . .
Breve iOS App Launch Demo | Coffee Recipes, Brewing, and More
YouTube video by Nil Coalescing
https://youtu.be/MTmp_qpXYTs
0
10
2
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
Made a landing page for
@brevecoffeeapp.bsky.social
:
breve.coffee
#IndieDev
#iOSDev
#Coffee
loading . . .
Breve
Breve is a beautifully designed iPhone and iPad app that brings the café experience to your kitchen with easy to follow coffee recipes and guides.
https://breve.coffee/
0
16
4
reposted by
Matthaus Woolard
Nil Coalescing
4 months ago
Make your views and controls fit perfectly within their containers using new SwiftUI APIs in iOS 26 such as the ConcentricRectangle shape and the containerShape() view modifier:
nilcoalescing.com/blog/Concent...
#SwiftUI
#iOSDev
loading . . .
Corner concentricity in SwiftUI on iOS 26
Make your views and controls fit perfectly within their containers using new SwiftUI APIs in iOS 26 such as the ConcentricRectangle shape and the containerShape() view modifier.
https://nilcoalescing.com/blog/ConcentricRectangleInSwiftUI/
0
6
2
reposted by
Matthaus Woolard
Natalia Panferova
4 months ago
Here’s my custom stretchy() SwiftUI modifier built with visualEffect(), powering the stretchy header in
@brevecoffeeapp.bsky.social
☕️ I shared the code for it earlier in my blog post:
nilcoalescing.com/blog/Stretch...
#iOSDev
#SwiftUI
loading . . .
2
48
7
Load more
feeds!
log in