Some interesting differences about List on Mac:

1️⃣ Swipe Actions are eagerly loaded. On iOS these are lazily loaded.

2️⃣ List immediately buffers ~300 cell bodies. On iOS it's about 10.

3️⃣ Cells don't respond to isFocussed, whereas on iOS they do.

4️⃣ “Select All” will immediately buffer all cells and lock up your app.

@phill The more I learn about it, the more I wonder if SwiftUI on Mac was ultimately a mistake. Like maybe we’d be better off if SwiftUI was only for UIKit, and they leaned harder into legitimizing Catalyst.

@brandonhorst maybe, though hindsight is always 20/20. I really like SwiftUI, which is why it's so frustrating to see it let down by such an inconsistent implementation. We're year 4 now and the lack of maturity in some areas is really bothersome.

@phill You’re building cross platform, right? I suspect building a Mac-only app wouldn’t be so bad either, just avoid the problem children.

@brandonhorst that is definitely a big part of it, yes. Get something working on one platform, see it behave weird/broken on another.

@phill It's been like that since day one and it's just insane that List has been ignored for so long on the Mac.

@xmollv when the iPad build running on Mac has better List performance than the build made for Mac

@phill Yeah... i just don't get it. Everyone has been complaining about List since the beginning and it seems to be completely ignored.

On Abyss I had to limit to 50 cells and then load on demand as the user scrolls, otherwise the performance was just unacceptable.

My biggest regret is having rewritten Abyss in SwiftUI instead of keeping it on UIKit and Catalyst on the Mac, it was way more performant before 🥲

@xmollv also paginating the List 🙃

I guess it will be this way until they rebuild their flagship apps with it. No way they would let Mail.app stutter at a few hundred rows.

Sign in to participate in the conversation
The Not So Big Company

The home of The Not So Big Company on Mastodon.