manton
manton

It’s 2026 and AppKit is the best way to build Mac apps. Even a part-time luddite like me is surprised by this. SwiftUI is great for new programmers who don’t want to embrace AI-assisted coding, but old school developers should not feel any guilt sticking with AppKit. It’s still the gold standard.

|
Embed
Progress spinner
johnbrayton
johnbrayton

@manton When I first started working on Unread for Mac in 2023, I initially tried to do everything I could using SwiftUI. That mistake cost me a solid month. AppKit FTW.

|
Embed
Progress spinner
andreagrandi@mastodon.social
andreagrandi@mastodon.social

@manton why not SwiftUI + assisted coding? (I'm currently developing an iOS app at very slow pace because Claude is instructed to proceed as a step by step tutorial, teaching me concepts first, allowing me to try, giving me hints, fixing stuff, completing boring and repeatitive tests etc...)

|
Embed
Progress spinner
manton
manton

@johnbrayton Sucks you lost a month! I wish Apple would rethink their strategy, find some way to have an SDK that starts to unify these divergent paths… Not sure that’s even possible at this point, though.

|
Embed
Progress spinner
ezellwrites
ezellwrites

@manton If I’m reading between the lines, should I take this to mean that LLMs are bad at SwiftUI? Is that primarily a function of a lack of training data?

|
Embed
Progress spinner
lwdupont
lwdupont

@manton It’s funny I was working on a “cross platform” app at work, all in SwiftUI, and was very tempted to suggest switching to AppKit for one of the main windows. SwiftUI can’t do really good, proper, macOS UI yet. IMHO.

|
Embed
Progress spinner
manton
manton

@ezellwrites To be clear, that’s not what I meant, although I think that’s partially true too. Mostly I think SwiftUI still isn’t a natural fit for Mac UI. But also Swift has changed a lot, and that probably hurts AI training because it’s a moving target.

|
Embed
Progress spinner
manton
manton

@andreagrandi I think for iOS, SwiftUI is probably great. iOS apps tend to be more modal, more based around navigation controllers, and even nonstandard UI on iOS doesn’t really stick out in the way it would on the Mac.

|
Embed
Progress spinner
manton
manton

@lwdupont Yep, that’s exactly the problem. Although it’s also admittedly hard to justify something completely different on the Mac for cross-platform apps.

|
Embed
Progress spinner
ezellwrites
ezellwrites

@manton I see. I’ve only tried SwiftUI in the iOS usage and then only casually. This is good perspective should I ever build a Mac app. Thanks for clarifying!

|
Embed
Progress spinner
fahrni
fahrni

@lwdupont I’ve been working to get Stream for Mac completed for a very long time now. Years and years. One of the things that is driving me nuts is layout of a cell. I come from 15 years of UIKit experience so AppKit feels familiar but I’ll be damned if I can get autolayout of an NSTableViewCell to work properly. This is, of course, a me thing but I was able to get it working in SwiftUI in an hour, and I’m not an experienced SwiftUI dev.

Now, that brought other issues to the surface so I’ve gone back to trying to get an AppKit version working. 😂 I hope I can figure this out soon or I may just quit my job and go to work at WalMart as a greeter.

|
Embed
Progress spinner
tg@indieweb.social
tg@indieweb.social

@manton my stuff is all swiftui minus a few bridges. ¯\_(ツ)_/¯

|
Embed
Progress spinner
manton
manton

@tg There’s definitely a more compelling case for apps that are on all Apple platforms, vs. an app that is Mac-only.

|
Embed
Progress spinner
lwdupont
lwdupont

@fahrni You’ll get it. :) I’m a visual learner and really liked setting up constraints in interface builder. But depends on how complex you are trying to make it, it’s not as flexible as SwiftUI for sure.

|
Embed
Progress spinner
In reply to
lwdupont
lwdupont

@fahrni btw, if you want to do a zoom call to talk through it with someone, happy to do it on the weekend. It’d be fun to meet “in person”. :) Can’t promise I could fix it, but it might help to rubber duck program it.

|
Embed
Progress spinner
Eyebeemania
Eyebeemania

@manton I’ve been disappointed to find some apps that are iOS only and that I can’t run on my Mac. No, I don’t want to use iPhone mirroring, but have a native app

|
Embed
Progress spinner