Thanks to you and the dev team for the response.
I appreciate the technical challenge behind honouring the user interface implications, and for what its worth Djay seems to be the best in its class of integrating the latest AI technology while at the same time striving to retain a coherent user experience. There’s a lot which could go wrong with integrating AI-dependent features like stems into a vinyl-esque interface and in most ways Djay seems to have got it right. Bravo.
IMO there’s really only this issue and that issue of providing bass-stem FX assignment which are needed to give Djay a baseline coherent user experience.
As for the comparison between visual stem separation and Slip Mode state, I totally appreciate that from the perspective of the code, they’re both just application state and without deeper consideration then there is little to distinguish between how they should be handled.
Taking the Apple HIG strictly (which I think almost all developers should be doing unless they can muster an extremely strong argument to the contrary), then even the “simulated deck buttons” like Slip Mode could be expected to be persisted across restarts as Apple clearly intents a restart to be transparent to the user (unlike with more traditional platforms where a restart is understand by the user to be doing some sort of “cleanup”).
If we give ourselves the latitude to depart from a strict interpretation of Apple HIG, then the question is “what ‘cleanup’ might most users expect to be done on a restart of an application which simulates a DJ deck?”.
There is an argument to be made that the same sort of cleanup might be done as with a power-cycle on a DJ deck. Some decks might have a physical Slip Mode flip switch, others might have a digital button. So maybe if you argue that the physical deck which Djay is attempting to simulate (and thus honour a user’s expectations over) has only a digital Slip Mode button then Slip Mode might escape persistence.
However, one thing which we can say with certainty would be expected to persist across a power-cycle is a view preference. This is because, as with all user-preferences, it represents a property of the user, not the tool. Going back to the Apple HIG, chapter 5 “Start Instantly”:
Avoid asking people to supply setup information
By discarding the user’s preference on what is intended to be user-transparent operation, Djay is not merely not persisting an element of application state: Djay is requiring that, on restart, the user must resupply their preferences to the application, one very specific thing Apple’s Mobile HIG is very clear should not be done.