Firebolt has a few use cases that require two-way communication around starting up an app.
As a platform owner, I want to show a loading screen, e.g. branding for the app, while the app is loading, and unable to show anything on it's own. I want to hide this loading screen once the app is "ready."
As a platform owner, I want to load some apps in the background to facilitate fast app launching, e.g. apps that are used frequently. I need a way for the app to let me know once it's minimally loaded, so I know when activating it will be a good experience for the user.
Justification
Fast app launching is a high priority, but high resource feature. The platform needs a way to decide when it will be leveraged in order to best manage it's resources. Apps need to be prepared to be hot-launched (e.g. activated after previously being loaded into the background) or cold-launched (e.g. full load & activate all at once).
Changes
added ready() callback, that apps must call in order to be activated
set initial state to "loading", once app calls ready(), platform can now decide whether to immediately activate the app, or put it in the background, pending a hot-launch later
Overview
Firebolt has a few use cases that require two-way communication around starting up an app.
As a platform owner, I want to show a loading screen, e.g. branding for the app, while the app is loading, and unable to show anything on it's own. I want to hide this loading screen once the app is "ready."
As a platform owner, I want to load some apps in the background to facilitate fast app launching, e.g. apps that are used frequently. I need a way for the app to let me know once it's minimally loaded, so I know when activating it will be a good experience for the user.
Justification
Fast app launching is a high priority, but high resource feature. The platform needs a way to decide when it will be leveraged in order to best manage it's resources. Apps need to be prepared to be hot-launched (e.g. activated after previously being loaded into the background) or cold-launched (e.g. full load & activate all at once).
Changes
ready()
callback, that apps must call in order to be activatedready()
, platform can now decide whether to immediately activate the app, or put it in the background, pending a hot-launch later