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.