Is it me or is SwiftUI on macOS just awful?

I have recently created a pure (admittedly simple) SwiftUI app for iOS/iPad. Yes there are bugs and limitations I've had to face but eventually with a certain amount of compromise and without resorting to UIViewRepresentable, it works adequately.

Great, I thought, how hard can it be to create a macOS version of the same app? Take TextField (swiftUI) views which my app depends on a lot, the issues I have found have been numerous...

  1. TextField does not appear to update the Binded variable after each character is typed in. You have to hit the return key for it to register. Totally different functionality.

  2. Placeholder text shifts up a few pixels when it gets keyboard focus.

  3. The rectangle where the text is typed needs to be taller holding the text, currently it looks squashed.

  4. Manually adding a ‘clear text’ button on top of the TextField (at the right) appears not to to be active when the cursor is over it (most of the time)

  5. Lots of missing autocapitalisation type functionality is missing.

I could go back to a NSViewRepesentable solution of the TextField but that negates the use of 'supported' SwiftUI features. Has this half baked feature been pushed out there as a 'tick in the box' option or is Apple genuinely happy with their solution?

Anyhow, I thought let's do a MacCatalyst version of my App instead. But we get a TabView looking like a iPad/iPhone App, there is no option to make it look more mac like AFAIS without abandoning TabView itself!

Then there's the complication of making my Core Data App work as a 'Document Based' app with the new DocumentGroup/Scene solution.... how does NSPersistentDocument work in such scenarios? The documentation is vague at best, or simply not supported without a lot of workarounds.

Just these few things make me feel we are being hyped with solutions which are far too premature for any real world work on macOS at the moment.

What potential SwiftUI/macOS blockers have you encountered?

Post not yet marked as solved Up vote post of eleanorsp8 Down vote post of eleanorsp8
2.2k views

Replies

Did you file a bug report ?
Yup. I've filed lots.
No, you're not alone. How the hell are we supposed to localize the mac App menu in SwiftUI using the App protocol lifecycle?
The storyboard/xib approach gives us a complete menu bar with even added menu items at run time which the system inserts and localizes for free such as "Enter Full Screen" and "Show/Hide Toolbar". The menu that SwiftUI gives us seems to be stripped down and not only does it not auto-localizes but there doesn't seem to be a way to localize it using strings file.

Definitely not you. SwiftUI on macOS is so far from ready for prime time that it really should be in pre-beta. Trying to create anything except the very simplest UIs is completely beyond its capability. It's a toy. Perfect for iOS which isn't for serious computing. Trying to make macOS more like iOS is the most brain-dead thing Apple has ever done.

I found a lot of bugs/issues have been fixed in Ventura. Try it and if it works better, make it available only for Ventura.

SwiftUI on macOS, It's like a baby, Treat macOS developers like friends please.