Elektrine lite

← Feed

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

  • Post #4462195

    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

  • Post #4285418

    I&amp;#39;ve released an update to my book &amp;quot;The SwiftUI Way&amp;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

  • Post #4285417

    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&amp;#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

  • Post #4285416

    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

  • Post #4285415

    Our app &amp;quot;Strolly: Generated Daily Walks&amp;quot; got an update! You can now indicate the areas you prefer to walk in and the areas you&amp;#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

  • Post #4285414

    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

  • Post #4285413

    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/

  • Post #3787064

    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

  • Post #2447086

    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

  • Post #1917945

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

  • Post #1917944

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

  • Post #1917942

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

  • Post #1754143

    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

  • Post #1695280

    SwiftUI&#39;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 &quot;The SwiftUI Way&quot;: https://books.nilcoalescing.com/the-swiftui-way/building-a-performant-...

  • Post #1648790

    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

  • Post #1648788

    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

  • Post #1498676

    It&amp;#39;s my birthday 🎊 To celebrate and to continue the tradition I&amp;#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

  • Post #1490540

    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

  • Post #1470373

    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!

  • Post #1365266

    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

  • Post #991174

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

  • Post #991173

    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/

  • Post #991171

    SwiftUI is approachable at first, but in real-life projects it&amp;#39;s easy to make mistakes that can compromise app stability and performance. My new book &amp;quot;The SwiftUI Way&amp;quot; will help you recognize the most common anti-patterns and choose better alternatives: https://books.nilcoalescing.com/the-swiftui-way #iOSDev #SwiftUI

  • Post #991170

    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

  • Post #991169

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

  • Post #914468

    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

  • Post #911542

    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

  • Post #755202

    My new SwiftUI book is finally out! 🎉 I wrote &amp;quot;The SwiftUI Way&amp;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&amp;#39;s internal expectations to avoid common pitfalls. https://books.nilcoalescing.com/the-swiftui-way #iOSDev #SwiftUI