Reported a terrible NSViewRepresentable animation bug which probably is why List and Table are so flakey on macOS.
FB22270146
| Blog | http://www.malcolmhall.com |
Reported a terrible NSViewRepresentable animation bug which probably is why List and Table are so flakey on macOS.
FB22270146
New blog post! A close look at Tahoe menu icons. With 109 illustrations! https://tonsky.me/blog/tahoe-icons/
idk if i'm the minority in this, but i never liked the "icon for every item in menus"
it's extra noise to me.
Apple always felt like one of the hold outs on this. I could always reference them when I had this design argument.
But now with tahoe, they gave in and I feel increasingly isolated on my island of "exclude icons in context menus"
I also wrote a deep dive on the evolution of the project—from failed KeyPath experiments and memory leak traps to the final "Shadow Storage" design that powers the library today, read it here:
🚀 I just released Swift Streamable Actors v1.0!
If you’ve ever wanted to observe changes to a Swift Actor's state as an AsyncStream without writing 30 lines of boilerplate for every property, this macro is for you.
Key highlights: ✅ 100% Type-safe (no type-erasure/AnyKeyPath) ✅ Memory safe (static factories avoid strong reference cycles) ✅ Clean API: @Streamable does it all.
Check out the code: https://github.com/malhal/swift-streamable-actors
This WWDC 2025 sample is really sad. It uses @State with a class (leaks heap memory) and the class's init is really heavy, creating AV objects.
Also it uses a ViewModel class instead of #SwiftUI @Binding.
The worst thing is it's using @Observable for view data (it's designed for model data) that has a func that has Combine code (pipelines should be in ObservableObject init).
Something has gone badly wrong at Apple that the devs don't know what tools to use for what.
https://developer.apple.com/documentation/AVFoundation/capturing-spatial-audio-in-your-ios-app
🗣️ I do enjoy a good rumor, so I'll share this nugget:
I have heard that SwiftUI has been losing political capital, and credibility, internally at Apple because it has repeatedly failed to meet software engineering goals, and needs. It's no longer thought of as clear default choice for new stuff.
That might explain why it was deemphasized at WWDC compared to the past few years.
Comforting that Apple might finally be waking up to the reality of SwiftUI, 6 years in. Glad I waited that one out 😅
Xcode 26.1 beta 3 iOS Simulator is crashing constantly again!
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: MercuryPosterExtension [31654]
Path: /Volumes/VOLUME/*/MercuryPosterExtension
Identifier: com.apple.MercuryPoster
Version: 1.0 (1)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd_sim [29890]
Coalition: com.
Here's a shocker from Building a workout app for iPhone and iPad https://developer.apple.com/documentation/HealthKit/building-a-workout-app-for-iphone-and-ipad
import Combine
@Observable final class CountDownManager {
var timeRemaining: TimeInterval = 3
var duration: TimeInterval = 3
private let timerFinishedSubject = PassthroughSubject<Void, Never>()
var timerFinished: AnyPublisher<Void, Never> {
timerFinishedSubject.eraseToAnyPublisher()
}
And the usual heap leak:
@State private var manager = CountDownManager()
I updated this post with a trick to still make $ work:
struct ChildView: View {
@Environment(\.appStorageToggle) var _isOn
var body: some View {
@Binding(projectedValue: _isOn) var isOn
Toggle("Toggle", isOn: $isOn)