Status Quo
Currently, when we are unable to perform certain tasks, the user can only hear soundAudioError or soundAudioToneBusy with no additional information about what to do. Although developers are able to check logs for the cause, it is hidden in a large number of console outputs.
Suggestions
- Queue the alerts instead of reporting busy when already showing an alert
- However, most of the alerts is better delivered using notification style UI, might want to use notification instead: https://stackoverflow.com/questions/39713605/getting-local-notifications-to-show-while-app-is-in-foreground-swift-3
- For the Share plugin, maybe disable UI while it's unavailable so we won't even need to play the busy tone?
- For errors that developers should pay special attention to during development, consider using https://www.pointfree.co/blog/posts/70-unobtrusive-runtime-warnings-for-libraries (implementation in https://github.com/pointfreeco/swift-composable-architecture/pull/943) to generate runtime warnings
- Resolved with comprehensive Developer Tools and logging mechanism