Hacker News new | past | comments | ask | show | jobs | submit login

Yea some other commenter mentioned that they most likely re-wrote the whole thing Swift.

So is Swift just too crappy for this kind of UI, that accesses low level system stuff? or are the devs just incompetent? Who knows…




SwiftUI is not swift. It's about framework not language. But even that doesn't matter

I think Apple has decent QA for low level stuff (remember how they quietly converted every iphone to APFS and back just to test that it will work later) but bad QA for final GUI.

Most of cocoa/objc stuff was written long ago and back when QA was better. If this was cocoa and objective c today it would be equally buggy.


> SwiftUI is not swift. It's about framework not language.

True, imo.

> But even that doesn't matter > Most of cocoa/objc stuff was written long ago and back when QA was better. If this was cocoa and objective c today it would be equally buggy.

I don't think I agree about this entirely. Although you can write unperformant code in any language and framework, SwiftUI is a different world of heavy abstraction. Writing a list view in AppKit using the documentation available allows for and encourages much more deliberate implementation in such a way that it'll be an almost night and day difference compared to the likely NavigationSplitView they're using in Settings. It's an inverse relationship with performance that SwiftUI takes; efficiency of piecing together the high level details first, and little to no control or clarity on how you'd optimize for performance.

My hunch is that with Settings, they're using a NavigationView or NavigationSplitView and not letting each view be recreated on selection, so they're sticking around in memory. However, if they were recreating each pane on selection, it seems like the render of the view waits for some kind of I/O, maybe reading their .plist or interacting directly with a system level CLI, which is why there's a delay before the UI renders.

Another possibility is a combo of both, they're retaining the views in memory AND triggering I/O immediately on selection, so the reads and threads accumulate quickly without being released




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: