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
Pinned
I released a new book ๐ŸŽ‰

SwiftUI Fundamentals combines my knowledge and experience from using SwiftUI since its release and working on its source code at Apple to give you a solid understanding of the most important aspects of the framework: books.nilcoalescing.com/swiftui-fund...

#SwiftUI #iOSDev
SwiftUI Fundamentals
The essential guide to SwiftUI core concepts and APIs
books.nilcoalescing.com
Reposted by Natalia Panferova
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...
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.
nilcoalescing.com
February 3, 2026 at 12:00 PM
Reposted by Natalia Panferova
Display grammatically correct text in SwiftUI effortlessly with Foundation's automatic grammar agreement, handling pluralization without extra logic: nilcoalescing.com/blog/HandleP...
#SwiftUI #iOSDev
Handle plurals in SwiftUI Text views with inflection
Display grammatically correct text effortlessly with Foundation's automatic grammar agreement, handling pluralization without extra logic.
nilcoalescing.com
January 31, 2026 at 10:24 PM
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 ๐Ÿ˜Š
SwiftUI Fundamentals
The essential guide to SwiftUI core concepts and APIs
books.nilcoalescing.com
January 30, 2026 at 10:58 PM
Reposted by Natalia Panferova
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
Noncopyable types in Swift
Explore noncopyable types in Swift and learn how they enforce stricter ownership rules to avoid unintended errors and resource conflicts.
nilcoalescing.com
January 30, 2026 at 12:57 AM
Reposted by Natalia Panferova
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...
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.
nilcoalescing.com
January 28, 2026 at 4:30 PM
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
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...
nilcoalescing.com
January 28, 2026 at 9:26 AM
Reposted by Natalia Panferova
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
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.
nilcoalescing.com
January 27, 2026 at 10:22 PM
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
January 26, 2026 at 9:02 AM
Reposted by Natalia Panferova
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...
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.
nilcoalescing.com
January 22, 2026 at 10:12 PM
Reposted by Natalia Panferova
๐Ÿ”ค ๐˜‹๐˜ฆ๐˜ง๐˜ช๐˜ฏ๐˜ช๐˜ฏ๐˜จ ๐˜Š๐˜ถ๐˜ด๐˜ต๐˜ฐ๐˜ฎ ๐˜š๐˜ต๐˜ณ๐˜ช๐˜ฏ๐˜จ ๐˜๐˜ฏ๐˜ต๐˜ฆ๐˜ณ๐˜ฑ๐˜ฐ๐˜ญ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜‰๐˜ฆ๐˜ฉ๐˜ข๐˜ท๐˜ช๐˜ฐ๐˜ณ 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...
Defining custom string interpolation behavior in Swift
Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals.
nilcoalescing.com
January 20, 2026 at 8:01 AM
Reposted by Natalia Panferova
๐Ÿ“ข ๐—œ๐˜€๐˜€๐˜‚๐—ฒ ๐Ÿณ๐Ÿฑ is out!

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

#iOS #Development

ios-newsletter.snappmobile.io/issues/2026-...
iOS Newsletter Issue 75
Issue 75 โ€ข January 16, 2026
ios-newsletter.snappmobile.io
January 19, 2026 at 9:45 AM
It makes me very happy to hear that ๐Ÿ˜ƒ
January 16, 2026 at 2:56 AM
Reposted by Natalia Panferova
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
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.
nilcoalescing.com
January 15, 2026 at 9:32 PM
Reposted by Natalia Panferova
โœจ ๐ด๐‘›๐‘–๐‘š๐‘Ž๐‘ก๐‘–๐‘›๐‘” ๐‘†๐น ๐‘†๐‘ฆ๐‘š๐‘๐‘œ๐‘™๐‘  ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ 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...
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.
nilcoalescing.com
January 14, 2026 at 9:01 AM
Reposted by Natalia Panferova
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
January 14, 2026 at 8:14 AM
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
Defining custom string interpolation behavior in Swift
Extend Swiftโ€™s string interpolation to define custom behavior, such as value formatting, directly inside string literals.
nilcoalescing.com
January 13, 2026 at 6:06 AM
Reposted by Natalia Panferova
๐Ÿ“ข Issue ๐Ÿ•๐Ÿ’ is out!

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

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

#iOSDev
iOS Newsletter Issue 74
Issue 74 โ€ข January 9, 2026
ios-newsletter.snappmobile.io
January 12, 2026 at 8:00 AM
Reposted by Natalia Panferova
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
Initializing Observable Classes
YouTube video by Stewart Lynch
youtu.be
January 11, 2026 at 2:36 PM
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.
December 28, 2025 at 9:56 AM
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
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...
nilcoalescing.com
December 28, 2025 at 9:49 AM
Reposted by Natalia Panferova
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
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.
nilcoalescing.com
December 22, 2025 at 6:51 AM
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...
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.
nilcoalescing.com
December 18, 2025 at 5:59 AM
Reposted by Natalia Panferova
Configure the NavigationStack and Form background in SwiftUI so partial height sheets keep the translucent Liquid Glass appearance on iOS 26: nilcoalescing.com/blog/LiquidG...
#iOSDev #SwiftUI
SwiftUI Liquid Glass sheets with NavigationStack and Form
Configure the NavigationStack and Form background in SwiftUI so partial height sheets keep the translucent Liquid Glass appearance on iOS 26.
nilcoalescing.com
December 15, 2025 at 9:12 PM
Reposted by Natalia Panferova
๐Ÿ“ฑ ๐ด๐‘‘๐‘‘ ๐‘Ž๐‘› ๐‘–๐‘›๐‘›๐‘’๐‘Ÿ ๐‘ โ„Ž๐‘Ž๐‘‘๐‘œ๐‘ค ๐‘ก๐‘œ ๐‘Ž ๐‘ ๐‘ฆ๐‘š๐‘๐‘œ๐‘™ ๐‘–๐‘š๐‘Ž๐‘”๐‘’ ๐‘–๐‘› ๐‘†๐‘ค๐‘–๐‘“๐‘ก๐‘ˆ๐ผ by Natalia Panferova (@natpanferova.bsky.social)

Learn how to create SF Symbols that appear cut out from their background using inner shadows for subtle depth effects in SwiftUI.

#SwiftUI #iOSDev #UIDesign

nilcoalescing.com/blog/AddAnIn...
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.
nilcoalescing.com
December 15, 2025 at 2:30 PM
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
December 12, 2025 at 11:01 AM