Dynamically updating a menu in Catalyst
For the macOS version of Rigelian I wanted to move the list of players into the main menu. Because those are detected on the fly (and players can come and go) this requires that the menu can be updated dynamically. Turns out this is possible through builder.system.setNeedsRebuild(). The following code snippet from my AppDelegate shows an example with RxSwift, where a rebuild is triggered every time the players observable publishes a next event.
Trouble with armv7 support
Rigelian supports iOS 10 and above, meaning it can run on some 32-bit devices (iPhone 5 & 5c, iPad 4th generation). For that in the build settings you need to target both armv7 and arm64. Unfortunately with the default build settings, the app will crash on these older devices if loaded through the AppStore. When building and deploying the app manually to an iPhone 5c, it runs fine, both the debug and release build. But a .ipa created by building an archive and then exporting this for ad-hoc deployment with bitcode generation like it is done for the AppStore, will […]
Rigelian goes Mac
I just submitted v1.0 of Rigelian for Mac for App Store review. In the last couple of days I finished the main changes needed for this MVP. The most important open topic was sharing a single Rigelian subscription across 2 platforms (iOS and Mac). With Xcode 11.4 this is finally made possible, unfortunately this version also broke things. Two items in particular caused extensive searches for a solution: Libraries included via Swift Package Manager and shared between the main application and a Today extension cause a compiler error about duplicate frameworks. This requires that those shared frameworks are created as […]