Natalia Panferova
natpanferova@mastodon.social
<p>Software Engineer | iOS | macOS | Swift | SwiftUI | Previously SwiftUI at Apple | Author of books for Swift developers: <a href="https://books.nilcoalescing.com" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">books.nilcoalescing.com</span><span class="invisible"></span></a></p>
Posts
-
View post
To diagnose performance issues caused by the structure of ForEach content in SwiftUI's List and lazy stacks, we can enable slow-path logging in Xcode. My new post shows how to set it up, interpret the diagnostic messages, and address the reported issues: https://nilcoalescing.com/blog/DiagnosingForEachPerformanceIssuesInSwiftUILazyContainers/ #iOSDev #SwiftUI
-
View post
SwiftUI introduced a range of new toolbar customization APIs in iOS 27. They give us more control over how toolbars adapt as apps become resizable and appear in more contexts. I explored all the new additions, with examples showing how each one works: https://nilcoalescing.com/blog/AdaptiveSwiftUIToolbarsInIOS27/ #iOSDev #SwiftUI
-
View post
I&#39;ve released an update to my book &quot;The SwiftUI Way&quot;! It expands the coverage of SwiftUI data flow, view updates, and performance, and includes new guidance for changes introduced in Xcode 27: https://books.nilcoalescing.com/the-swiftui-way #iOSDev #SwiftUI
-
View post
One of my favorite features in Tintly is the ability to easily reorganize colors for quick experimentation when designing a gradient. In v1.1, it&#39;s also possible to select multiple points on the canvas and swap or shuffle their colors for a more controlled change: https://apps.apple.com/us/app/tintly-mesh-gradient-editor/id6766786609 #IndieDev #macOSDev
-
View post
SwiftUI has three similarly named grouping modifiers: geometryGroup(), compositingGroup() and drawingGroup(). If, like me, you sometimes forget which one does what, I’ve just published a guide explaining how they differ and when to use each one: https://nilcoalescing.com/blog/GeometryCompositingAndDrawingGroupsInSwiftUI/ #iOSDev #SwiftUI
-
View post
Our app &quot;Strolly: Generated Daily Walks&quot; got an update! You can now indicate the areas you prefer to walk in and the areas you&#39;d like to avoid, and future generated walks will take your preferences into account. Thank you @hishnash for working on it! Strolly 1.6 is now available on the App Store: https://apps.apple.com/us/app/strolly-generated-daily-walks/id6480581550 #IndieDev #iOSDev
-
View post
I’ve been wanting to explore and document SwiftUI’s blend modes for a while. I finally worked through all 21 of them, with visuals and practical examples showing how each one works and when it can be useful: https://nilcoalescing.com/blog/BlendModesInSwiftUI/ #iOSDev #SwiftUI
-
View post
The July issue of the Nil Coalescing newsletter is out! It includes our trip to the /dev/world on tour conference, The SwiftUI Way book update, and a catalog of our recent Swift and SwiftUI blog posts. You can read it online: https://nilcoalescing.com/newsletter/2026-07-29/
-
View post
When storing custom values in properties of an @Observable, it’s recommended to make them Equatable to minimize SwiftUI view updates. I’ve just published a post looking at how @Observable handles equal assignments and why Equatable conformance matters: https://nilcoalescing.com/blog/EquatablePropertiesInObservableClasses/ #SwiftUI #iOSDev
-
View post
Knowing which SwiftUI modifiers to reach for when styling the macOS window toolbar is not always obvious, and similar appearances can often be achieved in more than one way. I put together a reference for the different ways to do it on macOS 26: https://nilcoalescing.com/blog/AGuideToMacOSToolbarStylesInSwiftUI/ #macOSDev #SwiftUI
-
View post
Just noticed that my talk &#39;The Evolution of SwiftUI&#39; from try! Swift Tokyo got featured in Tech Talks Weekly 🙌 https://www.techtalksweekly.io/p/issue-101-i-hate-ai-software-dev
-
View post
The April issue of the Nil Coalescing newsletter has been sent out and is now available online 📬 I shared links to talks from try! Swift Tokyo, the reception of &#39;The SwiftUI Way&#39; book, and new content this month: https://nilcoalescing.com/newsletter/2026-04-29/
-
View post
We can easily animate insertion and removal of SF Symbols in SwiftUI with symbol effect transitions. We don&#39;t even need to apply an implicit animation with the animation(_:value:) modifier or wrap the state modification in a withAnimation {} call. You can learn more about different ways to animate SF symbols in my blog post: https://nilcoalescing.com/blog/AnimatingSFSymbolsInSwiftUI/ #iOSDev #SwiftUI
-
View post
The onChange() modifier in SwiftUI has gone through some API changes since it was introduced. I wrote an overview of the modern variants, including how to access old and new values, and trigger the action on initial appearance: https://nilcoalescing.com/blog/OverviewOfonChangeInSwiftUI #iOSDev #SwiftUI
-
View post
SwiftUI's List is only lazy when SwiftUI can determine how many views a ForEach element resolves to without evaluating the closure. Two common patterns prevent this: - Using an `if` statement inside ForEach - Wrapping rows in AnyView In both cases, SwiftUI evaluates the ForEach closure for every element before any rows are displayed. You can learn more in the free sample chapter of my book "The SwiftUI Way": https://books.nilcoalescing.com/the-swiftui-way/building-a-performant-...
-
View post
The recording of my talk from try! Swift Tokyo is already available on YouTube! I shared my perspective on what drives change in SwiftUI, how new APIs come to life, and why we should try to keep up with the changes: https://www.youtube.com/watch?v=SQ-bn9iC5gw #tryswift #iosdev #swiftui
-
View post
Got home from Japan and try! Swift Tokyo, the trip was amazing! It was so good to meet the local iOS community and explore Tokyo a bit. Thank you so much for having me ☺️ #tryswift
-
View post
It&#39;s my birthday 🎊 To celebrate and to continue the tradition I&#39;m doing a special book sale just for today! You can get any of my Swift and SwiftUI books and bundles with a 20% discount using the coupon code BD2026 applied at checkout: https://books.nilcoalescing.com #iOSDev #Swift #SwiftUI
-
View post
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: https://books.nilcoalescing.com/swiftui-fundamentals #SwiftUI #iOSDev #Swift
-
View post
Last week I had an amazing opportunity to be part of @ARCticConference 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!
-
View post
Today was the last day of the try! Swift Tokyo conference and also the day of my talk. I think it went well 😌 Thank you so much to everyone involved for such an amazing experience! #tryswift
-
View post
The March issue of the Nil Coalescing newsletter has been sent out and is now available online. I shared details on my new book &quot;The SwiftUI Way&quot;, talk recordings from the iOS conference in Singapore and plans for April: https://nilcoalescing.com/newsletter/2026-03-27/ #iOSDev #SwiftUI
-
View post
Excited to be attending try! Swift Tokyo in just two weeks and giving a talk on the evolution of SwiftUI from my perspective, as someone who has worked with the framework from the very first release and also contributed to its development at Apple. See you in Tokyo! https://tryswift.jp/en/
-
View post
SwiftUI is approachable at first, but in real-life projects it&#39;s easy to make mistakes that can compromise app stability and performance. My new book &quot;The SwiftUI Way&quot; will help you recognize the most common anti-patterns and choose better alternatives: https://books.nilcoalescing.com/the-swiftui-way #iOSDev #SwiftUI
-
View post
I wrote a post on how we can embed SF Symbols in Text and style them with modifiers in SwiftUI by leveraging LocalizedStringKey interpolation: https://nilcoalescing.com/blog/EmbeddingSFSymbolsInSwiftUIText/ #iOSDev #SwiftUI
-
View post
Published a new YouTube video covering some advanced techniques for working with Optionals in Swift. I shared these as part of my presentation &quot;Swift&#39;s Hidden Gems&quot; at the @ARCticConference and many developers were surprised. ▶️ https://youtu.be/qgDIOrKnmuw #Swift #iOSDev
-
View post
I built a small macOS utility for URL encoding and decoding strings for my own use, but I thought it might be helpful to others too, so I released it on the App Store: https://apps.apple.com/us/app/encodedecode-url-encoding/id6739855060 It runs in the menu bar, includes settings to customize how strings are encoded, and provides system-wide services with keyboard shortcuts for quick access. #IndieDev #macOS
-
View post
I recently learned that if we want to have a lazy var inside an Observable class in Swift, we need to annotate it with @ObservationIgnored to skip synthesizing observation logic for the property. I wrote a blog post with an example: https://nilcoalescing.com/blog/LazyVarsInObservableClasses/ #Swift #iOSDev
-
View post
My new SwiftUI book is finally out! 🎉 I wrote &quot;The SwiftUI Way&quot; for developers who feel like they are fighting the framework as their projects grow in complexity. The book will help you align your code with SwiftUI&#39;s internal expectations to avoid common pitfalls. https://books.nilcoalescing.com/the-swiftui-way #iOSDev #SwiftUI