Delegating Progress Visualization to Source Application
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Users face frustration when launching a second software application from a first application, as they receive no feedback during time-consuming initial tasks, leading to multiple invocations and unnecessary instances of the second application, due to the lack of progress indicators during the initial operations.
Innovation Solution
The second application delegates the visualization of its progress status to the first application through a shared object, allowing the first application to display a progress indicator, transforming asynchronous communication to synchronous, and preventing multiple invocations by keeping the progress status up-to-date.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the second application performs initial tasks before displaying UI, then the application can be properly initialized, but the user receives no feedback during the waiting period
Solution Approach 1:
A shared object is introduced as an intermediary communication channel between the source application and target application. The target application updates the shared object with its progress status during initialization, and the source application reads from this shared object to display progress indicators to the user, thereby providing feedback without interfering with the target application's initialization process
Solution Approach 2:
The system implements a feedback mechanism where the target application's progress status is continuously updated in a shared object and reflected in the source application's UI through progress indicators. This gives users real-time information about the initialization process, reducing perceived waiting time and preventing multiple invocations
2Device complexity
If no progress indicator is displayed during initial tasks, then the application interface remains simple, but users may initiate multiple invocations of the second application
Solution Approach 1:
The shared object serves as a mediator that enables progress communication without adding significant complexity to either application's core logic. The source application maintains its simplicity by only needing to read from the shared object and update its UI, while the target application continues its initialization process independently
Solution Approach 2:
By providing progress feedback through indicators in the source application's UI, users are informed about the initialization status and are less likely to repeatedly invoke the target application. This feedback loop improves invocation efficiency without requiring complex interface changes
3Loss of time
If the second application loads UI before initial tasks are completed, then user feedback is provided, but the application may not be ready to function properly
Solution Approach 1:
The system separates the initialization process from the UI display process. The target application performs its initial tasks independently in the background while the source application displays a progress indicator. Only after initialization is complete does the target application's UI become fully functional, ensuring readiness without unnecessary user waiting
Data Source
AI summary
A target application loads target application's user interface (UI) after an initial preoperational task is completed. A task for visualizing a progress status for the target application is delegated to a source application that is used for launching the target application in a new window. The source application creates a shared object and assigns a unique identifier (ID) to the shared object. The unique ID of the shared object is passed to the target application, when the target application is launched from the source application. The shared object is accessed by the target application during the performance of the initial preoperational task. The target application stores progress status of the initial preoperational task in the shared object. The source application monitors the progress status stored in the shared object and presents it continuously on source application's user interface.


