- Print
Mandatory Implementations
- Print
Your app must be certified against the below implementations prior to approval to be released to the production environment.
Lifecyce.ready()
Part of your app’s mandatory Lifecycle Management implementation.
Required to dismiss loading screen.
Automatically triggers
Metrics.ready()
contributing to the Time To Minimally Useable (TTMU) SLA metrics.
Lifecycle.close()
Part of your app’s mandatory Lifecycle Management implementation.
Notifies the OS that your app is ready to be closed but does not terminate your app session immediately.
App to:
Listen to the OS unloading event
Clear listeners
Send Lifecycle.finished() for OS to close your app
There are use cases, such as during testing, where your app returns to the foreground before your app session is terminated, landing the user on the last seen UI (i.e., exit dialog). For better UX, your app should return to either your app’s homepage or the last screen prior to the exit dialog.
Parameter.initialization()
Part of your app’s mandatory Lifecycle Management implementation.
Required for deeplinking and app launch.
Payload includes ad tracking and privacy opt-in/out flags.
It's one of the places where your app can get the Ad tracking opt-in/out status.
Metrics.error()
A component of the Error Free Session Rate (EFSR) SLA metrics.
Shares the list of errors and troubleshooting guidelines with the platform, which will help with testing and production support.
Correct implementation includes:
Calling Metrics.error() for all errors occur from app launch to exit
The errors need to be tagged correctly as 'visible' or not to the customer
Manage app while in Inactive state
Your app is required to close video/audio playback session when going into the Inactive state. Playback continuing while your app is out of focus is both disruptive to the customer experience and other apps subsequently launched.
Part of your app’s mandatory Lifecycle Management implementation.
On device platforms which do not support the 'Inactive' state, your app session will be terminated on exit.
App to:
Stop playback and clear player instance
Stop UI loading
Reduce memory footprint to below 120Mb
For the best UX, it is recommended to prepare your app to return to the foreground and land on the UI closely related to the last experience prior to going into the inactive state. For example:
Same page, if it was on a stable UI
Content detail page, if playback was in progress
Inactive State Device Support
The Inactive state is currently supported on the following device platforms:
Xumo TV (formerly XClass TV)
Xumo Stream Box on Charter, Xfinity, and Mediacom.
Currently, this feature is only turned on for the primary video service of the distribution (i.e., Spectrum TV for Charter), but it is planned to expand to all apps in the future.
Support for the Inactive state is expanding to cover other devices in the future.
Memory guidelines
Your app should use ~190Mb in stable states. However, 220Mb is acceptable.
If your app is consuming more than 390Mb, then it will start seeing performance degradation and could ultimately crash due to the firmware needing to reclaim memory.
Your app should reduce memory consumption to below 120Mb while in the 'inactive' state
Use RWI Memory Monitor to check. Please note that the tool itself adds more memory during monitoring.