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...
iOS 27 extends support for swipe actions beyond List to any scroll container using the new swipeActionsContainer() modifier in SwiftUI: nilcoalescing.com/blog/CustomS...
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 βοΈ
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.
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...
Natalia Panferova
Natalia Panferova
Nil Coalescing
My WWDC26 book sale will be running for a few more days!
My WWDC26 book sale will be running for a few more days!
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
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
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.
π§ πΌπππ‘πππππ§πππ @πππ πππ£ππππ π€ππ‘β @ππ‘ππ‘π ππ πππππ 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...
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
Breve
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.
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
nilcoalescing.com
iOS 27 extends support for swipe actions beyond List to any scroll container using the new swipeActionsContainer() modifier.