Natalia Panferova

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

8,123 Followers 538 Following 297 Posts Joined Jan 2024
1 day ago
Preview
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.

Explore SwiftUI APIs for customizing scroll behavior, including paging and view-aligned snapping, and learn what to watch out for to avoid unexpected results: nilcoalescing.com/blog/ScrollV...
#iOSDev #SwiftUI

5 1 0 0
6 days ago
Preview
Mesh gradients in SwiftUI Explore ways to create and customize mesh gradients in SwiftUI, including color adjustments, finer control with Bezier points, and color position animations to add variety and emphasis to your design.

Explore ways to create and customize mesh gradients in SwiftUI, including color adjustments, finer control with Bezier points, and color position animations to add variety and emphasis to your design: nilcoalescing.com/blog/MeshGra...
#iOSDev #macOSDev #SwiftUI

11 2 0 0
1 week ago
Preview
Adjusting line height in SwiftUI on iOS 26 iOS 26 introduces the lineHeight(_:) modifier and AttributedString.LineHeight attribute for adjusting vertical spacing between lines of text in SwiftUI.

On iOS 26, we have a new #SwiftUI modifier, lineHeight(_:), for adjusting the distance between the baselines of two subsequent lines of text. There are a few options available in this new API, so I thought I would look through how they behave in practice: nilcoalescing.com/blog/Adjusti...

12 5 0 0
1 week ago
Preview
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.

Add symbol effect animations and transitions to symbol images in SwiftUI to handle icon state changes without custom drawing or animation logic: nilcoalescing.com/blog/Animati...
#iOSDev #SwiftUI

5 2 0 0
1 week ago
Preview
Nil Coalescing - Nil Coalescing Newsletter - February 2026 February is the shortest month of the year, yet for our team at Nil Coalescing, it was an incredibly packed one. We spent most of it on the move! I recently had the opportunity to speak at the ARCtic ...

The February issue of the Nil Coalescing newsletter is out ๐Ÿ“ฌ
Itโ€™s been a busy month for our team with lots of travel! I've shared a glimpse into my "Swift's Hidden Gems" talk from the ARCtic Conference, a new SwiftUI post, and plans for the near future.
nilcoalescing.com/newsletter/2...

7 2 0 0
2 weeks ago
Preview
Isolate SwiftUI animations to specific attributes Precisely scope animations to specific animatable attributes by using the animation(_:body:) API introduced in iOS 17.

โœจ ๐ผ๐‘ ๐‘œ๐‘™๐‘Ž๐‘ก๐‘’ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘Ž๐‘›๐‘–๐‘š๐‘Ž๐‘ก๐‘–๐‘œ๐‘›๐‘  by Natalia Panferova (@natpanferova.bsky.social)

iOS 17's ๐‘Ž๐‘›๐‘–๐‘š๐‘Ž๐‘ก๐‘–๐‘œ๐‘›(_:๐‘๐‘œ๐‘‘๐‘ฆ:) modifier offers granular control over which attributes animate. Learn how to adopt it in your apps.

#SwiftUI #Animation #iOSDev

nilcoalescing.com/blog/Isolate...

6 1 0 0
2 weeks ago
Preview
Defining custom string interpolation behavior in Swift Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals.

Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals: nilcoalescing.com/blog/Definin...
#SwiftLang

5 2 0 1
3 weeks ago
Preview
Snapp iOS Weekly | Subscription I agree to receive your newsletters and accept the data privacy statement.

๐—๐—ฎ๐—ป๐˜‚๐—ฎ๐—ฟ๐˜†'๐˜€ ๐˜๐—ผ๐—ฝ ๐Ÿฏ ๐—บ๐—ผ๐˜€๐˜-๐—ฒ๐—ป๐—ด๐—ฎ๐—ด๐—ฒ๐—ฑ:

๐Ÿฅ‡ @natpanferova.bsky.social on ๐˜š๐˜ ๐˜š๐˜บ๐˜ฎ๐˜ฃ๐˜ฐ๐˜ญ๐˜ด ๐˜ข๐˜ฏ๐˜ช๐˜ฎ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ
๐Ÿฅˆ @fatbobman.com on ๐˜Š๐˜ฉ๐˜ช๐˜ญ๐˜ฅ ๐˜š๐˜ต๐˜ข๐˜ต๐˜ฆ ๐˜ถ๐˜ฑ๐˜ฅ๐˜ข๐˜ต๐˜ฆ๐˜ด
๐Ÿฅ‰ @natpanferova.bsky.social on ๐˜š๐˜ต๐˜ณ๐˜ช๐˜ฏ๐˜จ ๐˜ช๐˜ฏ๐˜ต๐˜ฆ๐˜ณ๐˜ฑ๐˜ฐ๐˜ญ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ

Subscribe and never miss an issue - ios-newsletter.snappmobile.io/subscribe.html

Full articles ๐Ÿ‘‡

#iOS #SwiftUI #Swift

5 1 2 0
3 weeks ago
Preview
Isolate SwiftUI animations to specific attributes Precisely scope animations to specific animatable attributes by using the animation(_:body:) API introduced in iOS 17.

For precise control over which attributes should animate in #SwiftUI, especially in generic components that accept arbitrary content, we can use the animation(_:body:) API introduced in iOS 17 to avoid accidental animations.

I've written a post about it: nilcoalescing.com/blog/Isolate...

18 4 0 0
3 weeks ago
Sunset over Iso Syรถte with snow covered trees in the foreground shaped by heavy frost, glowing orange light from the low winter sun on the horizon, and an expansive frozen forest stretching into the distance under a clear blue sky Natalia Panferova standing in a snowy park in Oulu, wearing a dark winter coat, knit hat, scarf, and boots, smiling on a snow covered path with frost covered trees and a dark sculpture visible in the background Reindeer standing in a snowy forest enclosure at a reindeer farm, partially framed by frost covered evergreen branches, with antlers visible and snow covering the ground and surrounding trees Natalia Panferova speaking on stage at the ARCtic Conference, standing at a podium under blue stage lighting with a large screen behind her displaying a Swift logo with heart shaped balloons

Last week I had an amazing opportunity to be part of the ARCtic Conference and present a talk on lesser known Swift language features. I really enjoyed the conference and my stay in Lapland โ„๏ธ โ˜ƒ๏ธ ๐ŸฆŒ Thank you to all the organizers, speakers and attendees!

14 2 0 0
1 month ago
Preview
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.

Using @Observable is great, but it has one small caveat. The initializer of the @Observable objects will be called multiple times, even with @State

@nilcoalescing.com's excellent article covers that topic in more detail.

#iOS #swiftUi

nilcoalescing.com/blog/Initial...

11 4 0 0
1 month ago
Preview
Handle plurals in SwiftUI Text views with inflection Display grammatically correct text effortlessly with Foundation's automatic grammar agreement, handling pluralization without extra logic.

Display grammatically correct text in SwiftUI effortlessly with Foundation's automatic grammar agreement, handling pluralization without extra logic: nilcoalescing.com/blog/HandleP...
#SwiftUI #iOSDev

9 3 0 0
1 month ago
Preview
SwiftUI Fundamentals The essential guide to SwiftUI core concepts and APIs

Yesterday I joined a book club session with iOS developers at Expedia who have been reading SwiftUI Fundamentals (books.nilcoalescing.com/swiftui-fund...). We talked through less obvious parts of SwiftUI, and they shared very positive feedback about the book. Made writing it feel worthwhile ๐Ÿ˜Š

10 2 0 1
1 month ago
Preview
Noncopyable types in Swift Explore noncopyable types in Swift and learn how they enforce stricter ownership rules to avoid unintended errors and resource conflicts.

Explore noncopyable types in Swift and learn how they enforce stricter ownership rules to avoid unintended errors and resource conflicts: nilcoalescing.com/blog/Noncopy...
#SwiftLang

8 3 0 0
1 month ago
Preview
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.

Initializing `@Observable` objects in SwiftUI views isn't as simple as it looks. ๐Ÿง

@natpanferova.bsky.social explains why you need `@State` and how to handle the lifecycle correctly.
nilcoalescing.com/blog/Initia...

5 1 0 0
1 month ago
Preview
Nil Coalescing - Nil Coalescing Newsletter - January 2026 In this issue of the newsletter, I want to share some insights from iOS Conf SG, including the main ideas from my own talk, as well as a few learnings from other talks at the conference. I hope you wi...

The January issue of the Nil Coalescing newsletter has been sent out and is now available online!

I shared some insights from iOS Conf SG, the main ideas from my own talk on building a SwiftUI mindset, and also a few learnings from other talks: nilcoalescing.com/newsletter/2...

#iOSDev #SwiftUI

9 3 0 0
1 month ago
Preview
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.

Add symbol effect animations and transitions to symbol images in SwiftUI to handle icon state changes without custom drawing or animation logic: nilcoalescing.com/blog/Animati...
#iOSDev #SwiftUI

7 1 0 0
1 month ago
Natalia Panferova speaking on stage at iOS Conf SG, presenting a talk titled "The SwiftUI Mindset" Group photo of speakers, organizers and attendees gathered at iOS Conf SG Natalia Panferovaโ€™s iOS Conf SG speaker badge displayed with RevenueCat plush toys and photo booth printouts on a table

I had a great time at iOS Conf SG last week! I really enjoyed chatting with developers in the iOS community, learning from other speakers, and sharing my SwiftUI talk. Big thank you to all the organizers and volunteers for such a great conference experience ๐Ÿคฉ
#iOSConfSG

17 3 0 0
1 month ago
Preview
Create a fully custom About window for a Mac app in SwiftUI Design a custom About window for your SwiftUI macOS app with a personalized layout, detailed app information, and a styled background that fits your appโ€™s look and feel.

Needed to add some information to the About window in the admin app. This post by @natpanferova.bsky.social was really helpful.

nilcoalescing.com/blog/FullyCu...

7 2 0 0
1 month ago
Preview
Defining custom string interpolation behavior in Swift Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals.

๐Ÿ”ค ๐˜‹๐˜ฆ๐˜ง๐˜ช๐˜ฏ๐˜ช๐˜ฏ๐˜จ ๐˜Š๐˜ถ๐˜ด๐˜ต๐˜ฐ๐˜ฎ ๐˜š๐˜ต๐˜ณ๐˜ช๐˜ฏ๐˜จ ๐˜๐˜ฏ๐˜ต๐˜ฆ๐˜ณ๐˜ฑ๐˜ฐ๐˜ญ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜‰๐˜ฆ๐˜ฉ๐˜ข๐˜ท๐˜ช๐˜ฐ๐˜ณ by Natalia Panferova (@natpanferova.bsky.social)

Learn how to extend Swift's string interpolation with custom behavior for formatting dates and values directly in string literals.

#Swift #SwiftUI

nilcoalescing.com/blog/Definin...

3 1 0 0
1 month ago
Preview
iOS Newsletter Issue 75 Issue 75 โ€ข January 16, 2026

๐Ÿ“ข ๐—œ๐˜€๐˜€๐˜‚๐—ฒ ๐Ÿณ๐Ÿฑ is out!

This week's squad:
๐Ÿค– ๐˜“๐˜ข๐˜ฏ๐˜จ๐˜ถ๐˜ข๐˜จ๐˜ฆ ๐˜”๐˜ฐ๐˜ฅ๐˜ฆ๐˜ญ ๐˜›๐˜ฐ๐˜ฌ๐˜ฆ๐˜ฏ๐˜ช๐˜ป๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ
๐Ÿ”ค ๐˜Š๐˜ถ๐˜ด๐˜ต๐˜ฐ๐˜ฎ ๐˜š๐˜ต๐˜ณ๐˜ช๐˜ฏ๐˜จ ๐˜๐˜ฏ๐˜ต๐˜ฆ๐˜ณ๐˜ฑ๐˜ฐ๐˜ญ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ
โš™๏ธ ๐˜š๐˜ธ๐˜ช๐˜ง๐˜ต ๐˜Š๐˜ฐ๐˜ฎ๐˜ฑ๐˜ช๐˜ญ๐˜ฆ๐˜ณ ๐˜๐˜ข๐˜ค๐˜ฌ๐˜ด
๐Ÿ“‹ ๐˜Œ๐˜ท๐˜ฆ๐˜ฏ๐˜ต๐˜’๐˜ช๐˜ต ๐˜™๐˜ฆ๐˜ฎ๐˜ช๐˜ฏ๐˜ฅ๐˜ฆ๐˜ณ๐˜ด
๐ŸŽต ๐˜”๐˜ถ๐˜ด๐˜ช๐˜ค๐˜’๐˜ช๐˜ต ๐˜”๐˜ข๐˜ด๐˜ต๐˜ฆ๐˜ณ๐˜ค๐˜ญ๐˜ข๐˜ด๐˜ด
๐Ÿ‘๏ธ ๐˜๐˜ช๐˜ด๐˜ช๐˜ฐ๐˜ฏ ๐˜๐˜ณ๐˜ข๐˜ฎ๐˜ฆ๐˜ธ๐˜ฐ๐˜ณ๐˜ฌ ๐˜›๐˜ถ๐˜ต๐˜ฐ๐˜ณ๐˜ช๐˜ข๐˜ญ
๐Ÿค ๐˜›๐˜ฆ๐˜ข๐˜ฎ๐˜ด & ๐˜ˆ๐˜
๐Ÿ› ๏ธ ๐˜”๐˜ฆ๐˜ต๐˜ข๐˜ญ ๐˜›๐˜ฐ๐˜ฐ๐˜ญ๐˜ค๐˜ฉ๐˜ข๐˜ช๐˜ฏ ๐˜›๐˜ถ๐˜ณ๐˜ช๐˜ฐ๐˜ด

#iOS #Development

ios-newsletter.snappmobile.io/issues/2026-...

5 2 1 1
1 month ago

It makes me very happy to hear that ๐Ÿ˜ƒ

0 0 0 0
1 month ago
Preview
Customizing the appearance of symbol images in SwiftUI Learn how to adjust size, color, rendering modes, variable values, and design variants of SF Symbols in SwiftUI apps.

Learn how to adjust size, color, rendering modes, variable values, and design variants of SF Symbols in SwiftUI apps: nilcoalescing.com/blog/Customi...
#iOSDev #SwiftUI

15 1 5 0
1 month ago
Preview
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.

โœจ ๐ด๐‘›๐‘–๐‘š๐‘Ž๐‘ก๐‘–๐‘›๐‘” ๐‘†๐น ๐‘†๐‘ฆ๐‘š๐‘๐‘œ๐‘™๐‘  ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Natalia Panferova (@natpanferova.bsky.social)

Get icon animations without custom drawing code using SwiftUI symbol effects and content transitions.

#SwiftUI #SFSymbols

nilcoalescing.com/blog/Animati...

9 2 0 0
1 month ago
Screenshot of the Chestnut Latte recipe in Breve app

Have you tried this seasonal special yet?

Chestnut Latte - a silky balance of espresso and creamy milk enriched with the buttery sweetness of chestnut purรฉe.

You can find the recipe in Breve: apps.apple.com/app/apple-st...

#CoffeeLovers #CoffeeTime

4 1 0 0
2 months ago
Preview
Defining custom string interpolation behavior in Swift Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals.

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

12 3 0 0
2 months ago
Preview
iOS Newsletter Issue 74 Issue 74 โ€ข January 9, 2026

๐Ÿ“ข Issue ๐Ÿ•๐Ÿ’ is out!

Featuring:
๐Ÿค– ๐‘ƒ๐‘Ÿ๐‘œ๐‘š๐‘๐‘ก๐‘–๐‘›๐‘” ๐‘Ž๐‘› ๐‘œ๐‘›-๐‘‘๐‘’๐‘ฃ๐‘–๐‘๐‘’ ๐‘“๐‘œ๐‘ข๐‘›๐‘‘๐‘Ž๐‘ก๐‘–๐‘œ๐‘› ๐‘š๐‘œ๐‘‘๐‘’๐‘™
๐Ÿ“ฑ ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘†๐‘–๐‘‘๐‘’๐‘๐‘Ž๐‘Ÿ ๐‘†๐‘’๐‘™๐‘’๐‘๐‘ก๐‘–๐‘œ๐‘›
๐Ÿ“„ ๐ถ๐‘ข๐‘ ๐‘ก๐‘œ๐‘š ๐ท๐‘œ๐‘๐‘ข๐‘š๐‘’๐‘›๐‘ก ๐‘‡๐‘ฆ๐‘๐‘’๐‘ 
โœจ ๐ด๐‘›๐‘–๐‘š๐‘Ž๐‘ก๐‘–๐‘›๐‘” ๐‘†๐น ๐‘†๐‘ฆ๐‘š๐‘๐‘œ๐‘™๐‘ 
๐Ÿ”„ ๐ถโ„Ž๐‘–๐‘™๐‘‘ ๐‘†๐‘ก๐‘Ž๐‘ก๐‘’ ๐‘ˆ๐‘๐‘‘๐‘Ž๐‘ก๐‘’๐‘ 
โšก ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ ๐‘ƒ๐‘’๐‘Ÿ๐‘“๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘›๐‘๐‘’
๐Ÿ’พ ๐‘ˆ๐‘ ๐‘’๐‘Ÿ๐ท๐‘’๐‘“๐‘Ž๐‘ข๐‘™๐‘ก๐‘  ๐‘†๐‘ก๐‘Ÿ๐‘ข๐‘๐‘ก๐‘ 
๐ŸŽจ ๐ด๐ผ-๐‘”๐‘’๐‘›๐‘’๐‘Ÿ๐‘Ž๐‘ก๐‘’๐‘‘ ๐ผ๐‘๐‘œ๐‘›๐‘ 

ios-newsletter.snappmobile.io/issues/2026-...

#iOSDev

4 2 1 0
2 months ago
YouTube
Initializing Observable Classes YouTube video by Stewart Lynch

If youโ€™ve ever wondered where to create your observable class in SwiftUI, this video walks through every case with real examples. Inspired by and credited to @natpanferova.bsky.social 's blog. Seven demo views that finally make it click. youtu.be/z0GD03x3gc4

13 1 0 0
2 months ago

Thank you for buying the book, I hope you'll find it useful! Regarding the architecture choice, I think it depends on the specific project needs, but the general advice from me would be to keep it simple and stick to something that is clear to you and others working on the same project.

1 0 1 0
2 months ago
Preview
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...

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

16 5 0 0