They also provide means to mix-and-match AppKit and SwiftUI in both ways. In no way are they trying to "have you believe it's all SwiftUI now". It is simply the next generation of UI frameworks.
They also provide means to mix-and-match AppKit and SwiftUI in both ways. In no way are they trying to "have you believe it's all SwiftUI now". It is simply the next generation of UI frameworks.
First, they really need to beef up the docs.
Next, they need to stop punishing people for "leaving the lane." Not everyone wants their app to look and behave like a bundled Apple app.
I dislike Autolayout, and UIKit definitely has a lot of "old school" flavor, but with IB and UIKit, I can make an app that can do just about anything that I want.
Meanwhile autolayout was very intuitive. Define your variables, define your constraints, and it just magically works.
I will in no way deny the sheer power the latter/reach/etc has and I can see why people like it. Autolayout, while tricky to get at first, pretty much "just works" when I write it nowadays... and the older I get, the more annoying I find the cascade in CSS.
Apple may be pushing SwiftUI, but they aren’t stupid enough to kill off UIKit/AppKit.
I’ll lay odds that most AAA programs are still ObjC.
As (now just) a user of macOS, that’s EXACTLY what I want - consistency, not the output of some branding or UX person trying to mark their territory.
It's entirely possible to have unique branding, yet maintain consistency with standard Apple UX.
Just takes flexibility and compromise. Many designers aren't so good at that.
On a related note, did you ever try out Kai's Power Tools[0]? Now that was a nonstandard UX. Some folks really loved it, but it was an acquired taste.
The broader point is, I'm very glad Apple are making it harder for people to go off piste with regards to look and feel. Some people might be capable of doing a good job, but like with advertising, the well has been poisoned, and I assume that everyone doing it at all has poor intentions.
Games get a pass (though I don't personally play any on desktop computers).
The consistency you seek is gone, and has been for ages, if it ever even existed.
The fact that some first party apps are bad is not an excuse for third parties (who are inherently less trustworthy) to run rampant though.
This is a common refrain I hear w.r.t. Apple and while I write very little native mobile code I have to agree. It’s so sparse and rarely has more that I should be able to find out by hovering over a function/variable in my IDE.
Would it kill them to add a paragraph explain why or how you use the thing? To add code samples? Must be too much for one of the most valuable companies in the world… What kills me is that this is actively hurting their own platforms. I can understand some of Apple’s moves but this one is so incredibly short-sighted.
I don't think they care. Any useful application will be re-created by Apple and bundled with their OS eventually anyway. Outside devs aren't really necessary for anything but games.
I wrote a small SwiftUI app, to display simple bar charts of data from our social app. Number of active users, vs. ones that haven't signed in, user acceptance/rejection rates, etc.
The SwiftUI Charts library is pretty good for this. I consume a CSV file into a dataframe, and add some extra computed properties, etc.
I wanted to add the ability to pinch to zoom, so users don't need to look at the entire dataset, and try to find individual days, etc.
I banged my head for a couple of days, getting it working the way I needed (TL;DR, I did. Just took a while). I can add a magnification gesture adornment, but the docs for it suck, the docs for the charts suck, the docs for the viewbuilder suck, the docs for the view suck, and even the docs for the dataframe suck. I basically had to find out what I needed, by trial and error, and examining the exposed protocols. Some of the stuff is crazy easy, like translating the pinch to a usable number, but then, I wanted to add a bit of custom handling, for the edges, and allowing the user to pan the chart, while also being able to individually inspect bars (I ended up giving up on that, and have an ugly scrubber scrollbar under the chart). It also doesn't work on the Mac, which sucks, because I do a lot of admin stuff on the Mac.
It's a long story, and I'm sure that you would find fault with my work (one of the things geeks love to do, is point out errors made by other geeks), but it shipped, it works, and we've been using it for days.
And, in the end, even though it exhibits nonstandard behavior, it looks exactly like a Settings App panel. That's fine. It's a backend dashboard, but I'd be upset if it was something we needed to expose to end-users of the app.