I’ve been playing with Catalyst since WWDC. Well not so much playing with it, but thinking about it while completely rewriting my Wasted Time app into SwiftUI. The main catalyst for rewriting the app is all the frustrations I had with Storyboards and Autolayout. Every time I wanted to add a new UI element to my app, it seemed that Autolayout would freak out! I also used this opportunity to write a simple WatchOS only version of Wasted Time, and surprisingly it translated well. (It has been available on the Watch App Store since Oct.)
After writing the WatchOS version of Wasted Time, I used this as the basis for the full rewrite of the iOS app. I learned that some of the SwiftUI elements, didn’t translate well; just like some of the iOS elements didn’t work on WatchOS (Tabbed Menu Items). (Available on the iOS and iPadOS App Store since Jan. 2nd).
One of the key differences between this version on prior versions, is that I need to rewrite my Twitter code, which I have not yet done. As such, I don’t have Twitter enabled in the new version, and will probably not have this done for a few months (I am currently rehearsing for a new light opera which I will perform in late March, it consumes all my free time).
I also submitted the Mac version, using catalyst, at the same time as the iOS version; however, it has been rejected from the App Store multiple times! This has been an incredible learning experience. The most surprising aspect of the rejects is that they find one issue and immediately reject. Each of the items so far, could have been easily seen in the first submitted version. Let’s go thru them:
1) Rejection due to name mismatch. I had setup the app for the App Store as Wasted Time Mac! But when using Catalyst, it just used the name of the App in the about window. As such it was listed as “Wasted Time”. I was able to just go to iTunes Connect and rename the app, and then hit resubmit the same binary.
2) Rejection due to twitter switch not “working”. This was on me completely. I had added the UI element for the Twitter code as I started to work on Twitter. But I had not yet completed the Twitter code. So the App Store toggled the switch and nothing happened. (Unfortunately my plan was to get this work, but after half of my vacation coding time being taken away due to illness, the code wasn’t ready). Funny thing is, the iOS version has the same switch, and it passed the App Store check.
3) Reject due to help menu. When I first started working on the Mac version of the app, I did a truly native app version. I had issues with the App Store upload, I also decided it would be cooler to actually do the catalyst version. On the native version, I actually had gone in to the Storyboard and removed a bunch of menu items. On the Catalyst version, I had not removed non-functioning menu items. The basic app layout has a tab which explains how to use it. This is because on iOS devices there’s no real help system. In Catalyst you can’t use the storyboard “fix” to remove the menu items, but by using the menuBuilder function, I was able to remove all those items which do not function.
4) Forth time is the charm! Here’s the URL for Wasted Time – on the Mac!