A Good User Experience is one that shows what an App or whatever piece of software is doing at any particular moment. A meaningful message is one that shows to the user – the current state and if the app is actually doing something. A strategy often used in marketing is to include every time – Call to Action. It may be:
- What the user could do on the current screen or
- If the software is doing something – to show some percentage or intermediate progress.
This is the reason of the introduction of many of the features and restrictions in Android O for background services (and not only).
The common need of result or message is the reason a lot of Data Access, Rest Services and APIs have:
- A boolean flag with success
- String variable that contains constant key. It is value message mapped to more User Friendly one.
- Some concrete result of operation action
Good User Experience comes with User Interface Responsiveness. You could archive this by delegating all work to non-UI, subordinate threads. The approach may have different wrap ups on the different platforms, technologies and frameworks, but the idea is the same.
The bigger problem for developers come on the mobile platforms. On iOS and Android, the work may be put aside in the background worker or potentially delegated to a system component. Many times there is a request to you [developer] – to support offline first work and also online – as close to real time as possible. At that point the pain of coding start getting real, if you are not already using synchronizing frameworks like Firebase.
