Natalia Panferova
banner
natpanferova.bsky.social
Natalia Panferova
@natpanferova.bsky.social
Software Engineer | iOS | macOS | Swift | SwiftUI | Previously SwiftUI at Apple | Author of books for Swift developers: https://books.nilcoalescing.com
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:
November 3, 2025 at 8:39 AM
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
October 22, 2025 at 5:37 AM
On iOS 26 we have a new `close` button role in SwiftUI to dismiss a view without losing the user's progress, unlike a cancel action. A convenient way to add a dismiss button for modals without the need to define a custom button label!
#SwiftUI #iOSDev
October 18, 2025 at 8:22 AM
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
October 15, 2025 at 11:06 PM
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
October 12, 2025 at 6:32 AM
Exciting to see @brevecoffeeapp.bsky.social included in the latest issue of Those Who Swift newsletter 🤩

thosewhoswift.substack.com/p/those-who-...
October 9, 2025 at 8:39 AM
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
September 27, 2025 at 10:12 AM
Very excited to share that my new app @brevecoffeeapp.bsky.social is now available on the App Store!

Built for iOS 26 with Liquid Glass design, Breve offers handcrafted recipes and guides for making coffee drinks at home that adapt to your equipment.

apps.apple.com/app/id674730...
September 26, 2025 at 7:39 AM
Stretchy headers are a common pattern in iOS apps where the image expands as the user pulls down. We can create this effect in SwiftUI using the visualEffect() modifier without changing the image frame. I've just published a post about it: nilcoalescing.com/blog/Stretch...
#iOSDev #SwiftUI
June 16, 2025 at 8:42 AM
My annual WWDC book sale has started! You can get any of my Swift and SwiftUI books with a 30% discount: books.nilcoalescing.com

It’s a great time to brush up on the foundations to be ready to dive into the new APIs next week 🚀 And all my books come with free lifetime updates!

#SwiftUI #SwiftLang
June 2, 2025 at 10:08 AM
When we wrap content in a ScrollView to support larger text on iOS, it adds bounce behavior even when the content fits with default settings. To avoid it, and still allow scrolling when needed, we can apply .scrollBounceBehavior(.basedOnSize), introduced in SwiftUI in iOS 16.4.
#SwiftUI #iOSDev
May 26, 2025 at 10:42 AM
A useful Xcode shortcut I just learned 💡
We can quickly format long function calls or initializers with many parameters by placing the cursor inside the parentheses and pressing Control (⌃) + M. Selecting the entire expression will also format values like arrays and closures.
#iOSDev #SwiftLang
May 2, 2025 at 6:25 AM
Had some fun playing around with glow effects and built a little word game for Mac. Now available on the App Store: apps.apple.com/us/app/lexim...
#macOSDev #macOS #IndieDev
April 26, 2025 at 8:57 AM
Since the foregroundStyle() modifier was introduced in iOS 15, it’s been the preferred way to color text and symbols in SwiftUI. Unlike the now-deprecated foregroundColor(), it accepts a ShapeStyle, supporting gradients and other advanced styling: nilcoalescing.com/blog/Foregro...
#iOSDev #SwiftUI
April 17, 2025 at 8:00 AM
We can set a custom background for a window on macOS in SwiftUI using the containerBackground() modifier. And to extend it to the toolbar, we need to apply toolbarBackgroundVisibility(.hidden, for: .windowToolbar) to the window’s content.

Learn more: nilcoalescing.com/blog/Customi...

#macOSDev
April 12, 2025 at 9:32 AM
SwiftUI Text views support flexible data formatting through a format parameter that takes a FormatStyle, adapting content to different contexts and locales.

For example, an array can be formatted as a grammatically correct list: books.nilcoalescing.com/swiftui-fund...

#iOSDev #SwiftUI
April 5, 2025 at 5:30 AM
Text is an important #SwiftUI view that supports localization, formatting, and styling, but its behavior isn’t always obvious.

To understand how it works and how to use it effectively, check out the free sample chapter from my book SwiftUI Fundamentals: books.nilcoalescing.com/swiftui-fund...
April 4, 2025 at 7:05 AM
I recently took part in two great podcasts: EmpowerApps with Leo Dion and Dev Conversations with Natan Rolnik.
In case you missed them, you can find links to both episodes (along with other talks and videos I've done) on the Nil Coalescing website: nilcoalescing.com/talks/
March 26, 2025 at 5:03 AM
Got a nice, thoughtful review for @exstoapp.bsky.social 😃 Really great to see it being discovered by artists who get the idea behind our slightly weird app, are willing to experiment with it in their creations, and share some useful suggestions to improve it too.
March 25, 2025 at 10:52 PM
SwiftUI lets us specify a preferred color scheme for modal presentations, which can be useful with a custom background to always keep text and controls legible. The preference set inside the modal will only affect that modal and not the rest of the app: nilcoalescing.com/blog/ModalPr...
#iOSDev
March 25, 2025 at 6:32 AM
Custom images from an asset catalog don't automatically resize with text. If an image is not purely decorative, we should ensure it scales appropriately when users adjust their preferred font size. We can easily do it with the ScaledMetric API in #SwiftUI: nilcoalescing.com/blog/Adaptin...
March 23, 2025 at 11:28 PM
The line spacing in the top text segment is tighter than the bottom text segment. You might find it easier to see when the same text segments are displayed side by side.
March 21, 2025 at 12:35 AM
We can adjust line spacing in SwiftUI using the leading(_:) font modifier. We can set the leading to loose to improve readability or tight to conserve space.
#SwiftUI #iOSDev
March 20, 2025 at 10:54 PM
When creating a custom modifier in #SwiftUI, we don't always need to define a new type conforming to ViewModifier. If there is no need for stored properties or mutable state, we can simply add a method in a View extension, like in this example with a custom environment value:
March 17, 2025 at 6:38 AM
Excited to share that a podcast episode @leogdion.bsky.social and I recorded together, where we chat about my new book "SwiftUI Fundamentals", common SwiftUI misconceptions, and building iOS and macOS apps, is now live: brightdigit.com/episodes/197...
#SwiftUI #iOSDev #macOSDev
March 15, 2025 at 9:24 AM