Natalia Panferova
@natpanferova.bsky.social
5.4K followers 540 following 260 posts
Software Engineer | iOS | macOS | Swift | SwiftUI | Previously SwiftUI at Apple | Author of books for Swift developers: https://books.nilcoalescing.com
Posts Media Videos Starter Packs
Pinned
natpanferova.bsky.social
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
natpanferova.bsky.social
Automatic button adaptation in SwiftUI before iOS 26 did not include the title, only the icon, you can see what it looks like on iOS 18 in my post.
natpanferova.bsky.social
I noticed that on iOS 26, the default swipe action appearance changed to show both an icon and a title instead of just the icon. If we want to restore the previous icon-only look, we can use the labelStyle() modifier in SwiftUI: nilcoalescing.com/blog/ShowIco...
#iOSDev #SwiftUI
Show icons only in SwiftUI swipe actions on iOS 26
Starting with iOS 26, SwiftUI shows both title and icon in swipe action buttons by default, but the previous icon-only appearance can be restored using the labelStyle() modifier.
nilcoalescing.com
natpanferova.bsky.social
It was a nice reason to experiment with AlarmKit 😊
Reposted by Natalia Panferova
danoleary.me
@natpanferova.bsky.social I wanted to say thank you for the nice walkthrough on how to implement push notifications in a SwiftUI App. It was very clearly written and I didn't have any issues! Now I just need to get the code working on my Vapor server. nilcoalescing.com/blog/RemoteP...
iOS app setup for remote push notifications
This post will walk you through all the necessary setup so that you can enable remote push notification functionality in your iOS project.
nilcoalescing.com
natpanferova.bsky.social
Thank you 🙌 I implemented them at my previous work and thought it was important to document everything because there are so many steps!
natpanferova.bsky.social
Oh nice! Good to hear that the cocktails section is useful too 😁
Reposted by Natalia Panferova
brevecoffeeapp.bsky.social
Really happy to see such kind reviews for Breve on the App Store 😍
Three App Store reviews for Breve praising its design, artwork, adaptive recipes, search, and Liquid Glass effects
Reposted by Natalia Panferova
nilcoalescing.com
In SwiftUI, the popover() modifier shows a popover on iPad but turns into a sheet on iPhone by default. To prefer popover presentation even in compact size classes, we can apply presentationCompactAdaptation(_:) inside the popover's content: nilcoalescing.com/blog/Popover...
#iOSDev #SwiftUI
Show a popover on iPhone in SwiftUI
Starting with iOS 16.4, we can use the presentationCompactAdaptation(_:) modifier to tell SwiftUI that we prefer popover presentation even in compact size classes.
nilcoalescing.com
natpanferova.bsky.social
Just released @brevecoffeeapp.bsky.social version 1.1! Updated the timers, added a new setting to switch to precise measurements for all recipes for those who like to weigh everything, and made a few other small improvements based on user feedback: apps.apple.com/app/apple-st...
#iOSDev #IndieDev
Three iPhone screens showing the Breve coffee app. The first screen displays an espresso recipe with a watercolor cup illustration and brewing timer. The second shows Preferences with options for brewing methods and a new precise ingredient setting. The third shows the Sweet & Flavored drinks section featuring Dirty Chai Latte and Caramel Latte Macchiato cards with watercolor artwork.
Reposted by Natalia Panferova
Reposted by Natalia Panferova
brevecoffeeapp.bsky.social
Breve version 1.1 is here!

Enjoy improved brewing timers, a new precise mode for ingredient measurements, and other improvements to make your coffee experiments at home even more delightful!

Download on the App Store: apps.apple.com/app/apple-st...

#iOSApp #IndieDev #CoffeeLovers
Reposted by Natalia Panferova
iosdevweekly.com
iOS Dev Weekly – Issue 730 is out! Happy Friday, everyone! 🚀 Another week where it’s earlier than usual, this time because I’m going on a short holiday! 🎉

iosdevweekly.com/issues/730/#...

#swiftlang #iosdev
Issue 730 – iOS Dev Weekly
iosdevweekly.com
natpanferova.bsky.social
Exciting to see @brevecoffeeapp.bsky.social included in the latest issue of Those Who Swift newsletter 🤩

thosewhoswift.substack.com/p/those-who-...
Screenshot of the Friends section from Those Who Swift newsletter showing the Breve: Barista Recipes app promotional banner
Reposted by Natalia Panferova
nilcoalescing.com
Explore different ways to work with the SwiftUI environment, including reading and setting values, creating custom environment keys, and using it to pass down actions and observable classes: nilcoalescing.com/blog/SwiftUI...
#SwiftUI #iOSDev #SwiftLang
SwiftUI Environment
Explore different ways to work with SwiftUI environment, including reading and setting values, creating custom environment keys, and using the environment to pass down actions and observable classes.
nilcoalescing.com
natpanferova.bsky.social
When testing Dynamic Type support in @brevecoffeeapp.bsky.social I noticed that text would get truncated at larger text sizes for no real reason. I had to apply fixedSize(horizontal:vertical:) as a workaround to force the text to wrap instead: nilcoalescing.com/blog/Avoidin...
#SwiftUI #iOSDev
Avoiding text truncation in SwiftUI with Dynamic Type
Prevent unnecessary text truncation at larger text sizes with the fixedSize(horizontal:vertical:) modifier, forcing the text to expand vertically as needed.
nilcoalescing.com
Reposted by Natalia Panferova
nilcoalescing.com
Format interpolated values like arrays of strings, measurements, and dates directly inside SwiftUI Text views using FormatStyle, and display dynamic dates using Text.DateStyle: nilcoalescing.com/blog/Formatt...
#SwiftUI #iOSDev #SwiftLang
Formatting data inside SwiftUI Text views
Format interpolated values like arrays of strings, measurements, and dates directly inside SwiftUI Text views using FormatStyle, and display dynamic dates using Text.DateStyle.
nilcoalescing.com
Reposted by Natalia Panferova
natpanferova.bsky.social
I wrote a blog post taking a closer look at my new app @brevecoffeeapp.bsky.social from a technical perspective, sharing what I learned while building it for iOS 26 with Liquid Glass design, new SwiftUI APIs, and system integrations: nilcoalescing.com/blog/Introdu...
#iOSDev #SwiftUI #IndieDev
Introducing Breve: an arty coffee app built for iOS 26
Take a closer look at my new app Breve, exploring the technical insights around Liquid Glass design, iOS 26 SwiftUI APIs, and system integrations.
nilcoalescing.com
Reposted by Natalia Panferova
nilcoalescing.com
Swift 6.2 is here with iOS 26 and Xcode 26, and while most of the focus is on concurrency, there are other noteworthy changes and improvements too. Get up to speed with the non-concurrency updates in Swift 6.2: youtu.be/0hI_4OWN31o
#SwiftLang
What’s New in Swift 6.2 (Beyond Concurrency Updates)
YouTube video by Nil Coalescing
youtu.be
natpanferova.bsky.social
Thank you 🙌 Happy that you are enjoying it!
Reposted by Natalia Panferova
natpanferova.bsky.social
Started working on the September newsletter. It will be a bit late this time, got delayed by @brevecoffeeapp.bsky.social launch and #shipaton2025 submission 😅 You can still sign up here to get it in your inbox: nilcoalescing.com/newsletter
Nil Coalescing - Newsletter
nilcoalescing.com