Friday, October 18, 2019

Catalyst in Catalina

Craig Federighi:

When we released the first set of apps using Catalyst [in Mojave], some of the concerns that were voiced placed a certain amount of focus on the technology, but that was really design decisions we made. There were pure design decisions that were different design teams pushing the bounds of what is the future of media oriented design. I think we’re finding our balance there, pulling back in some areas. And the underlying technology has improved.

Dieter Bohn:

iOS apps on the Mac [in the Catalina developer beta] are starting to feel like a pretty sweet solution.

I wanted Apple to go hard and show developers the right way to do these. This is not that.

Jason Hiner:

“Wait for the public beta. We’re still tuning everything up. That’s where it gets really good,” Federighi said.

Well, the public beta came in July, and Catalina shipped in October, but nothing seems to have changed. The state of Apple’s Catalyst apps, as well as the APIs and documentation available to developers, is just sad. We still have weird panels within windows, spinny date pickers, and buttons that don’t look like buttons. There are no APIs for making standard pop-up menus or table views. Developers who care about making their apps more Mac-like are having to reimplement AppKit controls and resort to private API. The Human Interface Guidelines have been updated to include iOS-style switches, which the News app goes on to use in the opposite of the prescribed way.

Steve Troughton-Smith:

Here we are, couple weeks from release, and it seems clear once again Apple can’t walk & chew gum at the same time. SwiftUI was announced a year too early to sabotage Catalyst on the Mac, and now neither are reliable. Catalyst completely undocumented and starved of dev resources

William Gallagher:

“Their quality varies,” says Andrew Madsen, Mac and iOS developer, “but none of them could be called a great Mac app. Apple has made some public commentary to assuage concerns around these apps, going so far as to say that they’d be majorly improved in the first public beta of Catalina.”

“Despite that public pronouncement,” he continues, “the apps have not seen major changes since the first Catalina beta, and seem on track to ship in a less-than-excellent state for another year. If Apple can’t make really great Mac apps using Catalyst, what hope do third-party developers have?”

Peter Steinberger:

Worked all day to implement “Open Recent” which you’d get for free on AppKit. Result: feature doesn’t work, two new radars filed[…]

Steve Troughton-Smith:

It’s more than a little frustrating that to access the full range of NSToolbar functionality in Catalyst you have to resort to using an AppKit plugin.

Steve Troughton-Smith:

Recreating AppKit controls in UIKit for fun and profit — vertically-resizable split views are an easy one.

[…]

It doesn’t take much to style UISegmentedControl more like a Mac app. Little tweaks like this make it far less obvious that you’re looking at UIKit on the desktop.

Konrad Kołakowski:

I don’t really understand why Apple won’t do it themselves, to style UIKit apps more like macOS apps.

Or at least share some code do allow it easily, without having to reinvent the wheel by every Catalyst dev

Peter Steinberger:

With the help of some Apple folks, I finally managed to get security scoped bookmarks working under Mac Catalyst!! You need to redefine some unavailable enum values (🙀) but hey, nothing’s perfect ;)

Colin Cornaby:

The guess that Catalyst was going to be a big driving force behind Apple Arcade? So far the games I’ve looked at all seem to be AppKit native builds from a game engine like Unity. Game engines make the build environment kind of irrelevant.

Steve Troughton-Smith:

I don’t expect a single game in Apple Arcade on macOS to use Catalyst in any form, but if you come across one do let me know!

Steve Troughton-Smith:

Catalyst can’t support any game on Apple Arcade, nor is there a path towards it doing so. It’s an incredibly bad fit for immersive game experiences right now

Steve Troughton-Smith:

I have a feeling Catalyst is gonna be the sole focus of my radars for a while… 😂

Jason Snell:

Mac Catalyst can be simultaneously

1- A source of a bunch of interesting new Mac apps
2- Limited and frustrating for developers
3- In a strange limbo state where it’s unclear how much more work Apple will put into developing it

Michael Love:

3) is the worst for my purposes because it’s hard to come up with a long term product strategy on desktops without knowing whether or not Apple is serious about this thing.

Apple:

For iPad developers, macOS Catalina makes it easier than ever to bring your apps to the Mac: The process starts by checking a single box in Xcode.

[…]

Whether you want to edit photos, learn a language, balance your budget, or play a cutting-edge game, these awesome apps offer the great Mac experience you’ve come to expect, while taking full advantage of the larger screen and powerful hardware.

Jeff Johnson:

They’re seriously advertising this.

Manton Reece:

Trying to resist judging Catalyst by the initial apps out with Catalina today. Most developers were surprised by Catalina shipping so soon, and porting apps is more difficult than “checking a single box in Xcode”. In 6 months we’ll have a better idea.

Mark Gurman:

So far, the reality has fallen short for some developers and is even leaving consumers paying twice for apps.

[…]

On day one of Apple’s new technology debut, the Mac App Store showed only about 20 compatible iPad apps, out of a possible library of more than a million iPad-optimized applications.

[…]

Many of the issues originate from Apple’s initial promise of checkbox simplicity. It is indeed that easy, but the resulting ported app still carries over vestiges of its iPad optimizations that don’t work as well on Mac computers.

James Thomson (Upgrade):

The “single check box” Catalyst version of PCalc is a single resizable window, with many tables and popovers that seem to me to be out-of-place on the Mac.

[…]

It became pretty clear to me that I would need to rewrite a lot of the user interface, to find a happy middle ground between the iPad and the Mac. Which would probably benefit both in the long run, to be fair. But with everything else that was going on this summer, I couldn’t justify that work, with no guarantees at the end of the day that I would have something I was happy to ship.

[…]

From the business side, there is also no way for somebody to get the Catalyst version of the app for free when they buy the iOS version. And no great way to share in-app purchases either if you have a free app. That generally means that somebody will have to pay a second time to get a copy. There is definitely an argument that building a Catalyst version is actual work, work that should be paid for, but I can equally see the side of consumers that have been told it’s just a simple check box. Apple said a shared store will come in two years, but that’s still a way off.

John Gruber (tweet):

I don’t buy the “ran out of time” excuse. Catalyst has had this particular problem — touch-based spinners in place of pop-up menus — since 10.14 Mojave last year. It’s madness. Has there ever been a GUI toolkit for any mouse-pointer-based platform that didn’t offer pop-up menus as a standard control? Mac, Windows, Motif, Amiga, all the various toolkits for Unix X11 systems — they all had pop-up menus.

John Gruber:

But Catalyst is a developer technology. Users have no idea what it is and shouldn’t need to. “You have to pay for iPad and Mac versions separately” doesn’t seem like a big deal to me because it’s been that way all along, regardless of Catalyst.

[…]

At WWDC in early June — four months ago — Apple showcased the catalyzed Asphalt 9 port on stage, with the following quote from Gameloft: “We had Asphalt 9: Legends for Mac running on the first day. It looks stunning and runs super fast using Metal on powerful Mac hardware.”

But it’s now been “slightly delayed.”

Steve Troughton-Smith:

Netflix won’t be making a Catalyst app ☹️ Also didn’t realize Apple had pulled their marketing for the only game they were promoting as a Catalyst app

Colin Cornaby:

I continue to be impressed at the whiplash of Catalyst is the future of Mac apps but it doesn’t work very well but it helps you write your apps without learning AppKit but you need to learn AppKit to make a good Catalyst app but the Mac UI is dead but make it more Mac like

Paul Haddad:

I got some test code running on Catalyst and the thing I found most glaring is how unatural it felt with a mouse. Trackpad was fine, but good luck if you don’t have one.

Steve Troughton-Smith:

Catalyst developers! What are you missing right now? What would you really like Apple to provide as soon as possible?

I’ll go first:

• a roadmap
• the ability to choose to use shared App Store records
• TestFlight

James Thomson:

Equivalent AppKit controls, like popup buttons and checkboxes, and the ability to switch off the scaling.

Peter Steinberger:

NSUIKitHostingView in AppKit. Then let me write my app in AppKit + load stuff as needed.

And performance + bug fixes.

Daniel Jalkut:

Hm, well obviously “native-feeling” isn’t an agreed, objective standard. But FWIW I’ve yet to see a Catalyst app that meets all my expectations of “native feeling” on the Mac.

Colin Cornaby:

Just to be clear on my position on Catalyst:

It’s something that seems reasonable for smaller, more contained applications that have heavy dependencies on UIKit.

That’s very different than building it up to be the replacement for AppKit or the environment for all Mac software.

Steve Troughton-Smith:

I think text editing in Catalyst apps is gonna be a huge point of contention for a while; there’s certainly a disconnect between the iOS editor and what it bridges to on the AppKit side that makes everything feel like it barely works in every app

Steve Troughton-Smith:

I expect the Twitter Mac team have had an incredibly stressful summer getting a Catalyst app of this complexity out the door. There are plenty of UI areas that are going to need another pass, for sure. The double-toolbar just isn’t a good fit for the Mac

Jane Manchun Wong (via John Gruber):

On Twitter for Mac, it’s easy to fix the small fonts issue

Colin Cornaby:

I think it’s also interesting how Apple is adjusting their user facing language on these applications in their marketing copy. They’re now usually calling them iPad Apps on the Mac, and not Mac apps. Which is a pretty accurate description and expectation for Twitter.

[…]

Sometimes I think Catalyst suffers from the hype of it’s own advocates. If you view Twitter as the iPad app on a Mac, it’s pretty decent. If you try and look at it as a full Mac app, then it’s kind of problematic.

Michael Love:

Obviously they’d keep some sensitive new hardware-related stuff secret, but with Catalyst/SwiftUI this year e.g. I can totally understand the argument for announcing them both at WWDC but there was no reason they had to actually ship this fall.

Ben Sandofsky:

I can spot flaws in Catalyst apps because I’m a Mac nerd. For normal people, Catalyst 1.0 apps are already better than web apps, and infinitely better than Electron.

Vidit Bhargava:

I’m sharing this design document to highlight some of the design considerations I made for bringing LookUp’s iOS App to macOS. And while I did use fall backs to AppKit in certain situations (Even though i had no prior knowledge to AppKit, the APIs were relatively easy to get to), I still feel that a lot of apps can design a good experience without having to use them.

Jason Snell:

Unfortunately, a few apps haven’t really improved much—the four apps sourced from iOS last year as a part of the Mojave update, via what we now call Mac Catalyst. They’re all still pretty rudimentary, and while it’s better to have them than not, they could be much better than they are. The Home app has added support for home automation shortcuts (but it’s so buggy as to be unusable), and setting time-based automations still requires you to spin an iOS-style date picker. That date-picker design should not ever appear on macOS, period—it’s a touchscreen interface that doesn’t work with a mouse or trackpad. I can’t believe Apple has left it untouched.

Steve Troughton-Smith:

Going searching for Catalyst documentation is fun. Doesn’t seem like any of the iPad Apps for Mac WWDC sessions have sample projects either

Steve Troughton-Smith:

Here's a fun one: Lotto Machine for macOS gets a blanket App Store rejection

[…]

To bring your iOS app to the Mac you battle your way through Catalyst without documentation, you lose months of progress with macOS SceneKit bugs, and then when you finally go to ship, Apple tells you they don’t think the app should be on the platform at all

Adam Overholtzer:

There’s a difference between “can” and “can but with a ton of work and lots of hacks”. Catalyst is buggy, undocumented, and requires AppKit hacks to get some of the most basic Mac features working. If a developer doesn’t have time for all that, it doesn’t mean they’re lazy.

Marvis App:

Sadly not, while Catalyst focuses on having common UI for Mac and iOS with some common frameworks, MediaPlayer framework that’s on iOS doesn’t work on Mac in my tests, that means the whole backend of the app wouldn’t work. So, I’m sorry to say, no plans. 😔

John Voorhees:

Less successful is Catalyst. I’ve had high hopes for Catalyst since it was previewed at WWDC in 2018. The realization over this summer that Apple wasn’t going to update its original four Catalyst apps was a big disappointment, as was the lack of documentation and sample code and the inability of developers to bundle Mac apps with iOS and iPadOS apps. Together with the workload imposed on developers by changes to iOS and iPadOS 13, many I’ve spoken to put their Catalyst plans on hold, which is understandable. That’s not encouraging because, in the short-term, it means we’re unlikely to see many of the sort of new ideas and competition that the Mac app ecosystem needs to be sustainable long-term.

Nick Heer:

Catalyst is a frustrating bridge between the entirely-discrete AppKit and UIKit worlds, and the ostensibly cross-platform SwiftUI model. It’s “frustrating” because apps built with it don’t feel like Mac apps, and it’s probably too early to start building with SwiftUI since it will likely change dramatically for developers over the next few years. It’s an awkward middle ground that isn’t as good as either. Apple’s promotion of it as “just a checkbox” in Xcode — and, weirdly, using that as part of its pitch to users — is overly optimistic.

That’s not to say that there are no good Catalyst apps. John Voorhees reviewed Lire for MacOS and was fairly impressed with its platform-specific customizations. But it’s a harder process than Apple promotes to developers, and I’m still not confident we’ll see truly great apps built with Catalyst.

John Voorhees:

So far, the most common path to releasing a Mac Catalyst app on the Mac App Store has been to adapt and release an existing iPadOS app as a first-time Mac app. However, that’s not the only route to the Mac App Store. Apple allows developers to use Mac Catalyst in a variety of ways, as Steve Troughton-Smith has demonstrated with HCC Solitaire, a Mac-only game built using Mac Catalyst. He and Brian Mueller, the creator of CARROT Weather, have also used Mac Catalyst to release new versions of Mac apps that were previously built with AppKit.

Corbin Dunn:

News.app on the mac is such a second class citizen. It is pretty easy to crash with keystrokes, and focus navigation is horrific. (Yeah, “Log a bug”)

Steve Troughton-Smith:

There is some new complex sample code (as of this week?) for creating menu commands and contextual menus in Catalyst apps, including spawning dropdown menus at will without needing to right-click, something I wasn’t aware was possible at all.

As of yet there’s no complex sample code for: using a Mac toolbar, using the Touch Bar, managing multiple titled windows & tabbing behavior, customizing your settings bundle to make a reasonable-looking Mac preferences window, or any further integration with AppKit

Maximilian M:

Catalyst has been quite the journey so far. Bringing over @instapdf for Mac to UIKit from AppKit has been difficult. I’ve started creating some OS code to bridge missing functionality[…]

Previously:

Update (2019-10-21): AppStories:

This week, Federico and John interview James Thomson, the creator of PCalc and Dice, for a developer’s perspective on Mac Catalyst[…]

Peter Steinberger:

We finally figured out how to get the system accent color on Mac Catalyst. UIButton gets it, so we use one to set it on the UIWindow subclass…

Update (2019-10-25): Alison DeNisco Rayome (MacRumors):

Apple is taking developer feedback into account when it comes to improving Catalyst, Benjamin said. “For many of the early Mac Catalyst developers, it was their first time ever developing an app for the Mac, and it’s amazing what they’ve been able to achieve in such a short time,” he added. “We’re learning a ton from these early adopters, and are planning additional resources and support to help them create amazing Mac experiences with Mac Catalyst.”

Juli Clover:

Several developers have taken advantage of the new capabilities in Catalina to create Mac Catalyst apps for the Mac App Store, and we thought we’d round up the most useful of these for those who are wondering how Mac Catalyst apps work and how they compare to their iPad app counterparts.

Corbin Dunn:

News.app on macOS suffers from so many UI issues due to the poor UIKit port. When focusing, the sidebar and titlebar don’t appear as the key-window color simultaneously, making it blink in a few frames later.

Update (2019-11-27): Adam Demasi:

the best and worst thing about Catalyst is that apps don’t get killed for high CPU/RAM resource usage.

best - because some apps really do need those resources
worst - because some apps could have bugs that were never fixed because iOS’s Jetsam kills the app after a few seconds

these existing bugs will be fixed over time, and likely new ones will be caught in development since all new code written will be tested on both iOS and Mac. unfortunately this does imply that users of the current set of Catalyst apps are acting as beta testers…

14 Comments RSS · Twitter

Wait, can Catalyst apps only be distributed on App Store, not on your own?

@bob Catalyst apps can be distributed outside the Mac App Store.

"But Catalyst is a developer technology. Users have no idea what it is and shouldn’t need to."

They just know that an app feels a little "off." That's good for neither pple, the app developer, nor the end user.

Apple should be embarrassed to be releasing what is obviously alpha and beta level software as a finished product. Yeah, Steve Jobs used to release some crap every now and then back in the day but I can't help but think, seriously, he would not be happy with all of this Catalyst BS. These apps completely miss everything that it means to be a Mac app. People are saying "It's better than Electron" but that's like saying "My turd stinks less than your turd" when we should really be discussing, I dunno, Michelin rated sushi.

For one example, News.app still sucks. I can't even tell what's really changed between the Mojave and Catalina version. Maybe it's better with News+ but I stopped subscribing a couple months ago because it was so infuriating to use, find the magazines I was subscribed to, bookmark articles to revisit later, etc. It also never seemed to learn anything about my reading preferences, constantly suggesting a bunch of mainstream political, sports, pop culture crap, even though the only stuff I read was about music recording, synthesizers, guitars, and organic farming. Even Google News easily and quickly figures out what I like to read, and I'm using a one-off throwaway Google account with that.

The whole point of digital should be to facilitate a BETTER and improved experience from reading paper copies. But News provided no way whatsoever to organize anything, to bookmark anything, to highlight or make notes, to save anything permanently, etc. There's hardly any preferences at all that you can set for this app. And it just annoys me that it puts the Plus content in the main news feed even if you're not a subscriber, so I'm constantly clicking on stuff that I want to read, only to be told it's paywalled (yes, I finally noticed the small News+ icon below the article title) -- what's really ridiculous is that I can often go to the magazine's official website and read the same article for FREE. WTF?

I really hate how Apple has gone from making amazing apps to making stuff which is half-ass (but good enough to nearly destroy the 3rd party market for the same apps, when those are often better and more powerful than Apple stuff). They were really on a winning streak 10-15 years ago with iMovie, Garageband, iWork, Aperture, etc and the massive updates that followed their initial releases. But in the last 10 years they have all but given up on this stuff. Other than a few token updates to add a very few features here and there, and maintain compatibility with newer OS releases, they've really let these crown jewels linger.

I don't wanna be one of those people who say "If Steve Jobs were still alive..." but you have to admit, is it really a coincidence that most of this neglect of the Mac has happened since he died? It seems like it's not just on the consumer side either, based on what I see from developers on this blog and on Twitter, support for developers (including documentation, help with bugs, sample code, etc) has also gone downhill.

Every time Tim Cook says "We love the Mac!" I'm thinking "No. No you don't."

@Ben G
You just described my worry when platform vendors dip their toes in software markets. If the apps are good enough, they come to dominate the ecosystem, but when the platform vendor loses interest, it's hard for alternatives to fill the void, at least at first, on account of the platform vendor destroying the market for third parties.

If Catalyst is not particularly better than Electron and Electron is cross platform, what is my incentive to make Catalyst apps? I mean, a Twitter app? A bunch of neglected apps Apple released last time around? A super easy to port game from iOS that was done in a day, but will now take months to fix?

Yay? Maybe? I admire Indie Mac developers and I feel bad for them at this point. Sorry Michael et al.

Apple is a phone manufacturer that dabbles disinterestedly in operating systems. The sooner people adapt to that reality, the better off they’ll be.

> For normal people, Catalyst 1.0 apps are already better than web apps, and infinitely better than Electron

Are they, though? The Electron apps I'm using are pretty great. Come to think of it, I wish more of the apps on my Mac were Electron apps, so I could run them on all of my devices. In fact, I think all Mac users should hope for more Electron apps, since the way Apple is treating macOS, we'll all be using something else sooner or later.

Can we get Omni to port OmniGraffle to Electron?

@Lukas
That might be heretical. Omni was T H E place to go for first class Cocoa apps (do they use Swift these days?), but now you want them to pivot to Electron? That would be lovely for cross platform considerations, but I cannot imagine it. Has Omni ever sold/developed apps for something other than NeXTStep, OS X, or iOS?

I am not slamming you at all, I would love more good apps over here on Linux and Windows.

To be clear, I don't really think it's a reasonable idea to get Omni to port OmniGraffle to Electron. My point is rather that there are really great Electron apps (an obvious example being Visual Studio Code), and that they have the clear advantage of avoiding platform lock-in, so Mac users should stop shooting themselves in their feet and start acknowledging that good Electron apps are actually beneficial to them.

Sören Nils Kuklau

they have the clear advantage of avoiding platform lock-in, so Mac users should stop shooting themselves in their feet and start acknowledging that good Electron apps are actually beneficial to them.

The calculus isn’t that simple.

If the apps I use aren’t Mac-specific, why get a Mac at all?

Because the OS is better? Not if the apps don’t make use of it!

Because the hardware is better? Not as far as the keyboard goes…

@Sören
I think @Lukas means the developers themselves would benefit by opening themselves up to Windows and Linux markets, not Apple specifically. Apple, as the platform operator, needs to provide compelling use cases for their developers to stick around and frankly I am not seeing it.

Oh and Mac users should stop hating on cross platform apps because that ship has long since sailed. Catalyst is a throw in the towel move by Apple, iOS matters, Mac OS does not. Pretty sure I would rather use an Electron app rather than a Catalyst app. At least some of those Electron apps have found fans with some users, Catalyst apps? Not so much.

Sören Nils Kuklau

Oh and Mac users should stop hating on cross platform apps because that ship has long since sailed.

Maybe, but at that point, I might as well get a Chromebook.

Which isn’t a prospect I’m comfortable with.

At least some of those Electron apps have found fans with some users, Catalyst apps? Not so much.

VS Code has arguably found fans despite being Electron, not because of it.

Electron is also six years old. Apple is making some mistakes with Catalyst, but it’s still young.

Leave a Comment