Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Natalia Panferova

@natpanferova@mastodon.social
mastodon 4.8.0-nightly.2026-10-06
  • Open on mastodon.social

Software Engineer | iOS | macOS | Swift | SwiftUI | Previously SwiftUI at Apple | Author of books for Swift developers: https://books.nilcoalescing.com

3504 Followers
436 Following
50 Posts
Joined June 28, 2024
Nil Coalescing Blog:
https://nilcoalescing.com/blog
SwiftUI Fundamentals Book:
https://books.nilcoalescing.com/swiftui-fundamentals
The SwiftUI Way Book:
https://books.nilcoalescing.com/the-swiftui-way
Swift Gems Book:
https://books.nilcoalescing.com/swift-gems
Open post
Natalia Panferova @natpanferova@mastodon.social
· 3w ago
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
Diagnosing ForEach performance issues in SwiftUI lazy containers
Nil Coalescing

Diagnosing ForEach performance issues in SwiftUI lazy containers

Learn how to enable SwiftUI

14
0
12
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

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

nilcoalescing.com
36
2
11
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

Our app "Strolly: Generated Daily Walks" got an update! You can now indicate the areas you prefer to walk in and the areas you'd like to avoid, and future generated walks will take your preferences into account. Thank you @hishnash@mastodon.social 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

mastodon.social

Matthaus Woolard (@hishnash@mastodon.social) - Mastodon

27
2
12
1
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

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

nilcoalescing.com
27
0
6
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

My new SwiftUI book is finally out! 🎉

I wrote "The SwiftUI Way" 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's internal expectations to avoid common pitfalls.

https://books.nilcoalescing.com/the-swiftui-way

#iOSDev #SwiftUI

books.nilcoalescing.com
100
16
46
5
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

I've released an update to my book "The SwiftUI Way"! 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

books.nilcoalescing.com
16
2
8
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Boosted by @joe@f.duriansoftware.com

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-and-stable-interface/maximizing-the-performance-of-dynamic-lists/

#SwiftUI #iOSDev

books.nilcoalescing.com
50
0
16
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago
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
Equatable properties in @Observable classes
Nil Coalescing

Equatable properties in @Observable classes

Prevent unnecessary SwiftUI view updates by making custom types stored in @Observable properties conform to Equatable.

13
0
5
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 4mo ago

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

A guide to macOS window toolbar styles in SwiftUI
Nil Coalescing

A guide to macOS window toolbar styles in SwiftUI

Customize the appearance of the macOS window toolbar in SwiftUI using scene and view modifiers to control its layout, title visibility, and background.

29
2
9
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

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'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

apps.apple.com
9
0
3
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago

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/

nilcoalescing.com
6
0
1
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

We can easily animate insertion and removal of SF Symbols in SwiftUI with symbol effect transitions. We don'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

nilcoalescing.com
20
0
7
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

It's my birthday 🎊 To celebrate and to continue the tradition I'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

Nil Coalescing Books
Nil Coalescing Books

Nil Coalescing Books

Swift and SwiftUI books from Nil Coalescing

20
24
14
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

Published a new YouTube video covering some advanced techniques for working with Optionals in Swift. I shared these as part of my presentation "Swift's Hidden Gems" at the @ARCticConference@mastodon.social and many developers were surprised.
▶️ https://youtu.be/qgDIOrKnmuw
#Swift #iOSDev

21
0
12
2
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

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

mastodon.social

Mastodon

18
0
2
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

SwiftUI is approachable at first, but in real-life projects it's easy to make mistakes that can compromise app stability and performance.

My new book "The SwiftUI Way" will help you recognize the most common anti-patterns and choose better alternatives: https://books.nilcoalescing.com/the-swiftui-way

#iOSDev #SwiftUI

books.nilcoalescing.com
19
0
7
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

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

nilcoalescing.com
18
1
7
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 7mo ago

Last week I had an amazing opportunity to be part of @ARCticConference@mastodon.social 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!

27
0
5
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

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

nilcoalescing.com
14
0
3
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

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

15
0
7
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

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

mastodon.social

Mastodon

11
1
1
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

Just noticed that my talk 'The Evolution of SwiftUI' from try! Swift Tokyo got featured in Tech Talks Weekly 🙌
https://www.techtalksweekly.io/p/issue-101-i-hate-ai-software-dev

techtalksweekly.io
9
0
2
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 1mo ago
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
nilcoalescing.com
1
0
3
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago

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 'The SwiftUI Way' book, and new content this month: https://nilcoalescing.com/newsletter/2026-04-29/

nilcoalescing.com
5
0
1
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

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/

try! Swift Tokyo
try! Swift Tokyo

try! Swift Tokyo

Swiftを使った開発のコツや最新の事例を求めて 世界中から開発者が集います。 日頃のSwiftの知識やスキルを披露し、協力しあうことを目的に、 2027年3月2日 - 4日の3日間開催します!

6
3
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago
Replying to
@KabukiVision@mastodon.social thank you, Adam! Really glad that you found it helpful 🙌
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 2mo ago
Replying to
@hexaedre@dice.camp the main book page has the updated version so you can just read it online there or download the PDF and EBUB which have also been updated. If your cookie expired you can request a new link using this form: https://books.nilcoalescing.com/the-swiftui-way/request-access
Nil Coalescing Books - Request Book Access
Nil Coalescing Books

Nil Coalescing Books - Request Book Access

Request access to The SwiftUI Way for an existing purchase.

1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago

The March issue of the Nil Coalescing newsletter has been sent out and is now available online. I shared details on my new book "The SwiftUI Way", talk recordings from the iOS conference in Singapore and plans for April: https://nilcoalescing.com/newsletter/2026-03-27/
#iOSDev #SwiftUI

nilcoalescing.com
4
0
3
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@fahrni thank you, Rob 😃
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@lucia thank you 😃
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@harshil thank you ☺️
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@ricobeck thank you, Rico 😀
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@dinesharjani see you there! Glad you enjoyed my talk from iOS Conf SG 😃
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@sanguish thank you Scott 🙌
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@StewartLynch thank so much Stewart! I hope you’ll enjoy it 🙏
1
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@maccatalan thank you so much for your kind words and for supporting my work, it means a lot! I really appreciate your feedback on my new book as well, really glad to hear that you are enjoying it 🙏
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 7mo ago
Replying to
@twostraws @dvrzan @tanaschita thank you 🙏
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@filmaniac thank you 🥳
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@scottmbolin thank you so much 🙌 🙏
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@easeout thanks Kevin 🙏
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@fmarini thank you, Francesco 😃
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@mlysons thank you ☺️
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@twostraws thank you so much 🙌 I really appreciate your support, Paul!
0
0
1
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@adrianziobro thank you 🙏 All the best for your job search! I hope you’ll find something great really soon!
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@ogden thank you!
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@danwood thank you Dan 🙌
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@StewartLynch thank you, Stewart!
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 6mo ago
Replying to
@seeegs thank you very much for your support, Dan!
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@ranvel thank you 🙌
0
0
0
0
Open post
Natalia Panferova @natpanferova@mastodon.social
· 5mo ago
Replying to
@nmedou thank you, Naoufal!
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 23:26:51 UTC