SwiftUI performance is much slower on macOS than on iOS. macOS running SwiftUI is even slower than the iOS simulator.
As a simple example, create a List with a few hundred rows (anything over 100 gets pretty bad). macOS scrolling gets unacceptably slow. This is made even worse if the rows have interactive items like Slider or TextField (think a medium complexity inspector). Take the same exact code and Build and Run on iOS and it feels much smoother.
Is this an issue with the Window Server? I keep hearing from Apple that SwiftUI is the future of UI for Apple Platforms. And I believe you. But we’ve been waiting a year for performance improvements so that we can seriously consider SwiftUI in our new products and they haven’t come to macOS. Can we expect to see a fix? If SwiftUI isn’t the right framework for multi-platform pro applications (image rendering/editing) then what is?
Note that using Equatable helps stop the entire view from recomputing and I've also tried using the new Lazy* Views which do help a bit but I'm not seeing anything close to iOS performance on macOS.
As a simple example, create a List with a few hundred rows (anything over 100 gets pretty bad). macOS scrolling gets unacceptably slow. This is made even worse if the rows have interactive items like Slider or TextField (think a medium complexity inspector). Take the same exact code and Build and Run on iOS and it feels much smoother.
Is this an issue with the Window Server? I keep hearing from Apple that SwiftUI is the future of UI for Apple Platforms. And I believe you. But we’ve been waiting a year for performance improvements so that we can seriously consider SwiftUI in our new products and they haven’t come to macOS. Can we expect to see a fix? If SwiftUI isn’t the right framework for multi-platform pro applications (image rendering/editing) then what is?
Note that using Equatable helps stop the entire view from recomputing and I've also tried using the new Lazy* Views which do help a bit but I'm not seeing anything close to iOS performance on macOS.