My WWDC26 book sale will be running for a few more days!
My WWDC26 book sale will be running for a few more days!
Natalia Panferova
Natalia Panferova
My annual WWDC book sale has started! All my Swift and SwiftUI books, including my most recent book, The SwiftUI Way, are now 30% off!
You can learn more about the available books and bundles on my website: books.nilcoalescing.com
#iOSDev #SwiftLang #SwiftUI
My annual WWDC book sale has started! All my Swift and SwiftUI books, including my most recent book, The SwiftUI Way, are now 30% off!
You can learn more about the available books and bundles on my website: books.nilcoalescing.com
#iOSDev #SwiftLang #SwiftUI
Natalia Panferova
Natalia Panferova
I wrote about two additions to SwiftUI's navigation transition APIs in iOS 27. The new crossFade transition provides an alternative presentation animation, while AnyNavigationTransition makes it possible to choose a transition dynamically at runtime: nilcoalescing.com/blog/SwiftUI...
SwiftUI now includes CrossFadeNavigationTransition, a built-in cross-fade navigation transition, and AnyNavigationTransition, a type-erased wrapper that allows transitions to be selected dynamically a...nilcoalescing.com
iOS 27 extends support for swipe actions beyond List to any scroll container using the new swipeActionsContainer() modifier in SwiftUI: nilcoalescing.com/blog/CustomS...
🔧 𝐼𝑛𝑖𝑡𝑖𝑎𝑙𝑖𝑧𝑖𝑛𝑔 @𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑙𝑒 𝑤𝑖𝑡ℎ @𝑆𝑡𝑎𝑡𝑒 𝑖𝑛 𝑋𝑐𝑜𝑑𝑒 27 by Natalia Panferova (@natpanferova.bsky.social)
@𝑆𝑡𝑎𝑡𝑒 is now a macro with lazy evaluation for @𝑂𝑏𝑠𝑒𝑟𝑣𝑎𝑏𝑙𝑒 classes. No more wasted init cycles or optional workarounds.
#Swift #SwiftUI
nilcoalescing.com/blog/Initial...
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...
iOS 27 extends support for swipe actions beyond List to any scroll container using the new swipeActionsContainer() modifier.
nilcoalescing.com
SwiftUI's @State changes from a property wrapper to a macro in Xcode 27, gaining lazy evaluation of the initial value and fixing unnecessary @Observable model initialization on view recreation.
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.
I've just released an update for @brevecoffeeapp.bsky.social! It adds Home Screen widgets with daily coffee suggestions, recipe sharing, improved search, and better VoiceOver support ☕️
In iOS 27 we can add swipe actions to items in any scroll container, not just List, by applying the new swipeActionsContainer() modifier to the wrapping ScrollView. I wrote a post with some examples:
nilcoalescing.com/blog/CustomS...
#WWDC26 #iOSDev #SwiftUI
I've built a macOS app for designing mesh gradients.
Tintly generates gradients from pasted color palettes and lets you adjust control points visually. It can export images, SVGs, CSS, and SwiftUI code.
It's now available on the Mac App Store: apps.apple.com/us/app/tintl...
#macOSDev #IndieDev
iOS 27 extends support for swipe actions beyond List to any scroll container using the new swipeActionsContainer() modifier.
Breve v1.2 is now live! You can now get daily coffee suggestions right on your Home Screen with the new widgets and share your favorite coffee recipes from the app with friends! Get it on the App Store: apps.apple.com/us/app/breve...
#iOSDev #IndieDev #Coffee