{"id":27581,"date":"2019-12-16T15:54:37","date_gmt":"2019-12-16T20:54:37","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27581"},"modified":"2020-02-04T14:31:58","modified_gmt":"2020-02-04T19:31:58","slug":"catalyst-and-cohesion","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/12\/16\/catalyst-and-cohesion\/","title":{"rendered":"Catalyst and Cohesion"},"content":{"rendered":"<p><a href=\"https:\/\/wormsandviruses.com\/2019\/12\/catalyst-and-cohesion\/\">Jack Wellborn<\/a>:<\/p>\n<blockquote cite=\"https:\/\/wormsandviruses.com\/2019\/12\/catalyst-and-cohesion\/\">\n<p>Developers using first party tools from Apple shouldn&rsquo;t have to swim upstream to build cohesive Mac versions of their apps. I am not saying that the existence of <em>any<\/em> incongruous Catalyst ports is worrisome &mdash; incongruous ports are inevitable and Catalyst is an opportunity to make them better &mdash; what&rsquo;s worrisome is that incongruity seems to be the default with Catalyst.<\/p>\n<p>Look no further than Apple&rsquo;s own Catalyst ports.<\/p>\n<p>[&#8230;]<\/p>\n<p>The crux of the issue in my mind is that iOS and Mac OS are so fundamentally different that the whole notion of getting a cohesive experience through porting apps with minimal effort becomes absurd.<\/p>\n<\/blockquote>\n<p>Kind of like a <a href=\"https:\/\/www.businessinsider.com\/tim-cook-on-windows-8-its-a-toaster-refridgerator-2012-4\">toaster-fridge<\/a>.<\/p>\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/10\/18\/catalyst-in-catalina\/\">Catalyst in Catalina<\/a><\/li>\n<\/ul>\n\n<p id=\"catalyst-and-cohesion-update-2019-12-19\">Update (2019-12-19): <a href=\"https:\/\/pxlnv.com\/linklog\/catalyst-and-cohesion\/\">Nick Heer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pxlnv.com\/linklog\/catalyst-and-cohesion\/\">\n<p>It worries me that some of Apple&rsquo;s own MacOS apps lack cohesion; and, though Catalyst is the purest expression of this concern, it is not solely at fault. The redesigned Mac App Store that debuted in Mojave certainly looks like a Mac app, but it feels and functions like a crappy port from some distant platform.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/10\/12\/is-there-hope-for-the-mac-app-store\/\">Is There Hope for the Mac App Store?<\/a><\/li>\n<\/ul>\n\n<p id=\"catalyst-and-cohesion-update-2019-12-20\">Update (2019-12-20): <a href=\"https:\/\/daringfireball.net\/2019\/12\/catalyst_two_months_in\">John Gruber<\/a>:<\/p>\n<blockquote cite=\"https:\/\/daringfireball.net\/2019\/12\/catalyst_two_months_in\">\n<p>I&rsquo;m just not seeing it with Catalyst apps. They almost all look and feel and work wrong. I&rsquo;ll pick on Twitter because they&rsquo;re a big company. They&rsquo;ve made a bunch of improvements to <a href=\"https:\/\/apps.apple.com\/us\/app\/twitter\/id1482454543?mt=12\">their Catalyst Mac<\/a> app in the two months or so since it shipped. Some really <a href=\"https:\/\/twitter.com\/wongmjane\/status\/1182672138291032068\">preposterous<\/a> <a href=\"https:\/\/twitter.com\/gruber\/status\/1197405159111966720\">shortcomings<\/a> in the initial release have been fixed in a short amount of time, and I get the impression &mdash; both through their public comments and some private ones I&rsquo;ve exchanged with developers on their team &mdash; that they&rsquo;re trying to do the right thing and make Twitter for Mac a good Mac app, not just the iPad app running in a window on the Mac. But <a href=\"\/misc\/2019\/12\/twitter-mac-release-notes.png\">the release notes for the latest update<\/a> this week include new features like support for scrolling with the Page Up, Page Down, Home, and End keys. It&rsquo;s kind of crazy that support for those keys wasn&rsquo;t there from the start. 15 years ago you&rsquo;d almost never find a Mac app that didn&rsquo;t support them.<\/p>\n<p>[&#8230;]<\/p>\n<p>In short, I remain unconvinced that <em>standard<\/em> UIKit iPad apps are a good starting point for good Mac apps. But it&rsquo;s pretty obvious&#x2009;&mdash;&#x2009;and should have been right from the start&#x2009;&mdash;&#x2009;that <em>nonstandard<\/em> not-really-using-UIKit iPad apps make for a terrible starting point for a good Mac app. Developers can make it work&#x2009;&mdash;&#x2009;as a programmer friend once told me, &ldquo;It&rsquo;s all just typing&rdquo;&#x2009;&mdash;&#x2009;but it&rsquo;s so much work it seems to defeat the entire &ldquo;Just click a checkbox in Xcode&rdquo; premise and promise of Catalyst.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/10\/30\/twitter-for-mac-8-1\/\">Twitter for Mac 8.1<\/a><\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/douglashill.co\/page-up-page-down-home-end-catalyst\/\">Douglas Hill<\/a>:<\/p>\n<blockquote cite=\"https:\/\/douglashill.co\/page-up-page-down-home-end-catalyst\/\"><p>The standard UIKit scrolling class, <code>UIScrollView<\/code>, does not provide any keyboard-driven scrolling functionality.<\/p><p>[&#8230;]<\/p><p>Developers need to use the undocumented input strings <code>UIKeyInputPageUp<\/code> and <code>UIKeyInputPageDown<\/code> and write their own code to scroll up or down by the correct amount in response to those input events.<\/p><\/blockquote>\n<p>In other words, you need private API to offer a good user experience, but private API is not allowed in the App Store.<\/p>\n\n<p id=\"catalyst-and-cohesion-update-2019-12-23\">Update (2019-12-23): <a href=\"https:\/\/wafflelog.net\/2019\/12\/20\/catastrophe\/\">Jesper<\/a>:<\/p>\n<blockquote cite=\"https:\/\/wafflelog.net\/2019\/12\/20\/catastrophe\/\"><p>&ldquo;Project Catalyst&rdquo;, the adaptation of iOS and UIKit unto macOS, is <a href=\"https:\/\/wormsandviruses.com\/2019\/12\/catalyst-and-cohesion\/\">an unmitigated disaster<\/a>. Maybe it didn&rsquo;t <em>have to<\/em> be, but it definitely <em>is<\/em>. Let&rsquo;s take one of the better in-box apps, Podcasts, as an example.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/10\/13\/podcasts-in-catalina\/\">Podcasts in Catalina<\/a><\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/birchtree.me\/blog\/catalyst-problems\/\">Matt Birchler<\/a>:<\/p>\n<blockquote cite=\"https:\/\/birchtree.me\/blog\/catalyst-problems\/\"><p>I love native apps and prefer them in almost every case to using services in a browser. It&rsquo;s just a better experience for me in most cases, and has the added benefit of integrating more seamlessly into macOS systems like notifications, keyboard shortcuts, and automation. However, my experience with Catalyst apps from third parties has been so bad that I have uninstalled every one of them and gone back to using the web.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/pxlnv.com\/linklog\/waffle-podcasts-catalyst\/\">Nick Heer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pxlnv.com\/linklog\/waffle-podcasts-catalyst\/\">\n<p>It was somewhat concerning to see a collection of tech demos ship as user-facing apps in Mojave last year. But to have recurring complaints of basic MacOS features after a year &mdash; why the hell are <a href=\"https:\/\/twitter.com\/stroughtonsmith\/status\/1135721645769781248\">picker controls still touch-based spinners<\/a>? &mdash; is inexcusable.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/www.macworld.com\/article\/3510479\/2019-predictions-in-review-iphone-price-drops-catalyst-letdown.html\">Jason Snell<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.macworld.com\/article\/3510479\/2019-predictions-in-review-iphone-price-drops-catalyst-letdown.html\">\n<p>With the arrival of Mac Catalyst this summer, as promised by Apple last year, the Mac has started to benefit from apps developers originally on iOS. But I predicted that it would be a major onslaught that would dramatically change the Mac forever, and this was my biggest miss. Some combination of a rough summer of developer betas and limitations of the technology itself mean that there aren&rsquo;t nearly as many Catalyst apps as I thought, and a bunch of my favorite iOS apps still aren&rsquo;t anywhere close to shipping Mac versions. Catalyst may still change the Mac forever, but it&rsquo;s going to take a lot more than one year to make it happen.<\/p>\n<\/blockquote>\n\n<p id=\"catalyst-and-cohesion-update-2019-12-26\">Update (2019-12-26): <a href=\"https:\/\/twitter.com\/jcenters\/status\/1208161434498150401\">Josh Centers<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jcenters\/status\/1208161434498150401\">\n<p>What can you do with 40 GB of RAM? Have Apple News take up 28 GB of it.<\/p>\n<p>Do Catalyst apps not do any sort of garbage collection?<\/p>\n<\/blockquote>\n\n<p id=\"catalyst-and-cohesion-update-2020-01-24\">Update (2020-01-24): <a href=\"https:\/\/twitter.com\/0xced\/status\/1217093587869032448\">C&eacute;dric Luthi<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/0xced\/status\/1217093587869032448\">\n<p>Trying the Twitter app from the Mac App Store.<\/p>\n<p>&#8226; There is no padding at all between my username and the gray focus.<br \/>\n&#8226; The keyboard arrows do not move the cursor at all.<br \/>\n&#8226; Pressing the tab key does not select the password field!<\/p>\n<p>It confirms that Catalyst doesn&rsquo;t give you much.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/monkeydom\/status\/1216830807182053379\">Dominik Wagner<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/monkeydom\/status\/1216830807182053379\">\n<p>If you told me that Apple would seriously ship such an interface back in 2010 I would have been offended and called you a fool&#8230;<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/stroughtonsmith\/status\/1218255247522529281\">Steve Troughton-Smith<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/stroughtonsmith\/status\/1218255247522529281\">\n<p>Asphalt 9 shows exactly why Catalyst is so bad for games. It&rsquo;s an interaction nightmare. Every key input triggers the system beep, the escape key rips it out of fullscreen instead of triggering menu or &lsquo;back&rsquo;, and the whole thing is designed without manual acceleration controls<\/p>\n<\/blockquote>\n\n<p id=\"catalyst-and-cohesion-update-2020-02-04\">Update (2020-02-04): <a href=\"https:\/\/twitter.com\/colincornaby\/status\/1220841013872230400\">Colin Cornaby<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/colincornaby\/status\/1220841013872230400\"><p>Most of Catalyst this WWDC cycle has been me going &ldquo;Well maybe I&rsquo;m just a giant imposter because there should be a lot of issues here but I guess Apple knows better&rdquo; followed by me going &ldquo;Nope guess they don&rsquo;t.&rdquo;<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/steipete\/status\/1223669024489385984\">Peter Steinberger<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/steipete\/status\/1223669024489385984\">\n<p>Apple stopper commenting on my Catalyst bugs in November, there are about 30 open... it&rsquo;s pretty frustrating to be dependent on a company that has a yearly update cycle when customers report bugs and expect a fix within weeks, not years.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Jack Wellborn: Developers using first party tools from Apple shouldn&rsquo;t have to swim upstream to build cohesive Mac versions of their apps. I am not saying that the existence of any incongruous Catalyst ports is worrisome &mdash; incongruous ports are inevitable and Catalyst is an opportunity to make them better &mdash; what&rsquo;s worrisome is that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-12-16T20:54:41Z","apple_news_api_id":"c34219b5-99fc-4c89-ba33-82ee9c667330","apple_news_api_modified_at":"2020-02-04T19:32:02Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABg==","apple_news_api_share_url":"https:\/\/apple.news\/Aw0IZtZn8TIm6M4LunGZzMA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[1223,648,1621,125,30,32,39,1666,1013,49],"class_list":["post-27581","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple-news","tag-apple-podcasts","tag-marzipan","tag-keyboardshortcuts","tag-mac","tag-macapp","tag-macappstore","tag-macos-10-15","tag-private-api","tag-twitter"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=27581"}],"version-history":[{"count":8,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27581\/revisions"}],"predecessor-version":[{"id":28029,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27581\/revisions\/28029"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}