Apple has finally released a version of their Developer app for the Mac, porting their iOS app to the Mac using Catalyst. The initial relief quickly gave way to frustration. As a basic app, it certainly functions ok. But it has so many little details wrong.
A few of these are due to Catalyst. However, most are just the result of a software organisation at Apple that doesn't care. One that, despite having some of the best designers and engineers in the world (people who I know care about these things), has increasingly put out software that merely tries to meet the a baseline of functionality, rather than being examples of excellence we should all strive to match.
So what I'd like to do is outline some of the issues I've found in about 10 minutes of looking through the Developer app. I've included feedback numbers below in case anyone would like to file duplicates.
The focus ring on the search field has square corners (FB7739183)
When you select the search field in the Developer app it shows the focus ring. Unfortunately this focus ring has square corners, rather than the rounded corners seen on every other focus ring on the Mac. You can see the difference below between the Developer app, and the Mac App Store.
The search field focus ring does not go away if you click elsewhere in the app (FB7739196)
Another issue with the focus ring, is that it stays stuck on the search field, even when the focus has moved elsewhere. It does vanish when you tab, but not when you click. Speaking of tabbing…
Tabbing goes through each table cell rather than each view (FB7739200)
If you are on a table view on the Mac and you hit the tab key, you expect the focus to switch to another view. So if I was on the secondary table in the Developer app, hitting tab should move me to the details. Instead, the app seems to treat each cell as being part of the key loop, meaning you need to tab through every cell in the table to get to the details view.
Doesn't show window title when toolbar is hidden (FB7739203)
Personally I still find it weird to show a window title in the toolbar when you have configured the window to hide the title, but I can allow that to slide. What is a bug though is that the Developer app lets you hide the toolbar (as many Mac apps do), but doesn't show the window title in this hidden state.
Content size is too small (FB7739207)
One of the biggest problems I've been having is how small the content is. I'm usually not too bad with small text, but the Developer even has me leaning in to the screen to feel comfortable reading it. Given the Mac still doesn't have Dynamic Type (which is high on my wish list for 10.16), this presents a major usability/accessibility issue. I suspect this may partially be down to Catalyst, which scales UI down. This results in not only the text size being smaller, but also UI such as the video controls.
Tables do not use accent colour on selection to denote focus (FB7739220)
One of the key concepts on the Mac is that of UI focus. There should be a UI element that is the current focus, upon which keyboard input or menu items act. This is displayed by using the system accent colour. In cases like text fields or buttons, this is shown with a focus ring around the control. However, when it comes to tables, this is shown by having the selection colour be the accent colour. This makes it clear that, if you start hitting keys on the keyboard, it will act upon that table. Unfortunately the Developer app doesn't do this at all, leading to confusion as to where the focus currently is.
Tables do not support type selection (FB7739227)
Related to the last bug is type selection. When a table has focus on the Mac, users expect to be able to start typing in a word. The table will then jump selection to the cell who's content most closely matches the typed value. Sadly the Developer app does not support this (which seems to be another general Catalyst issue).
View options are placed in the Window menu (FB7739235)
The Developer app has a bunch of menu items allowing you to switch to common views in the app, such as the Discover view, your Favourites, etc. These are great to have (and have perfectly reasonable shortcuts). Unfortunately they are in the wrong menu. The Window menu is used for managing windows in your app. Having such items there implies that invoking them will open a new window. However, they merely switch the view inside the current window, so would be more apt in the View menu.
Table selection vanishes on mouse down in the sidebar (FB7739246)
This is another oddity I see in a lot of Catalyst apps. On the Mac, selection in a table view should change on either mouse down or mouse up, depending on whether the table supports drag & drop or not. Catalyst doesn't seem to follow this convention, but I can overlook that somewhat. The bigger issue is that sidebars seem to change selection on mouse up, but remove the old selection on mouse down, resulting in the selection vanishing briefly.
Can't collapse groups in the sidebar (FB7739250)
One thing you will find in a lot of sidebars on the Mac is the ability to collapse groups. Not all groups should be collapsable, especially those containing controls essential to actually use the app, but most groups should collapse (take a look at Finder, Music, or Mail for examples). However, the Developer app doesn't allow you to collapse any sections, making it harder to navigate.
Uses Navigation Controller rather than just navigating to content in the existing UI (FB7739256)
Navigation controllers work pretty well on iOS, as you have limited screen space and often lose access to parts of the navigation hierarchy as you delve deeper into the app. The Mac doesn't have this problem though, so navigation controllers often feel out of place, and can actually have the opposite effect as on iOS.
The Developer app is actually a good example of this, where clicking on various items in the content area will slide on that content, rather than simply changing the sidebar selection. The biggest example of this is in the Discover section. At the bottom is a button titled "See latest videos and articles". Rather than switching the sidebar navigation to the "What's New" section, it instead slides on the "What's New" list in the full content area.
Find toolbar does not share search string across OS (FB7739266)
One of the many little details that tie together Mac apps into a cohesive platform is the sharing of search strings across apps. If I type something into a find field in TextEdit, it will then be in find fields when I switch to Xcode. Unfortunately, the find field in the Developer app doesn't seem to hook into this (again, likely due to Catalyst not supporting it).
VoiceOver navigation is not great (FB7739272)
One of the few things Apple gets consistently right is accessibility. It often goes above and beyond in making its software accessible to all. Developer tools should be no exception.
Thankfully, the Developer app seems to let you actually use it, which is better than a lot of apps. Unfortunately the navigation when using something like VoiceOver is not great. Ideally it should present 4 general groups at the root level:
- The Toolbar
- The Sidebar
- The Secondary Table
- The Details View
The user can then navigate to those in turn, and navigate into them to interact with them. Unfortunately everything seems to be at the top level. And I mean everything. Every view, every table cell. Even the find bar can be navigated to, even though it is off screen. And worst of all, the ordering is incorrect. It navigates from the Toolbar to the cells of the Secondary Table. Once you have moved through all those cells you are then moved to the Details View. And only once you've got through the whole Details View can you navigate through the Sidebar. Apple should really know better.
There are other minor things I could have filed bugs about, but unfortunately I ran out of time. However, this shows just how much Apple has missed. And it is all entirely avoidable if Apple as an organisation took the time to put the care and love into their apps. They're still capable of doing so. Just look at their iWork apps or their Pro apps. They are still amongst the best apps on any platform.
Catalyst is almost a poster child for this problem. I'm under no illusion of the technical challenges involved, but it has effectively been released in an unfinished state, leaving apps feeling like they don't fully fit on the platform. Developers can put a lot of time and care into working around a lot of these, but some things can't be fixed, and every minute they spend fixing flaws in Catalyst is a minute not spent making their apps even better. However, Apple doesn't even do that with their Catalyst apps.
I suspect another issue is simply experience. It would not surprise me in the slightest if Apple's great Mac apps are built by long time Mac developers, whereas the Catalyst apps are built by iOS developers moving to the Mac. As such they don't have the knowledge or experience of where Catalyst is lacking and what needs to be fixed. You can even see this in 3rd party apps. The great Catalyst apps are built by people who know how to design and build for the Mac, whereas the mediocre ones are often iOS developers who are asked to just add the Mac as a platform, and those are the developer who need the tools to help them the most in acheiving these details.
Hopefully we'll start to see changes next week at WWDC. I'd love to see Apple acknowledge their software has not been up to the standard expected of them, and that they need to change internally to fix that. I'd love to see Catalyst more tightly integrate with AppKit, fixing all these little flaws that make using an unmodified Catalyst app feel like death by a thousand cuts, and allowing developers to push their apps to the next level.
And finally I hope Apple fixes these bugs in the Developer app. The content inside it is excellent, and shows Apple moving in a direction to start fixing flaws with developing for their platform. Unfortunately the vessel for accessing that content is incredibly lacking in its first version.