What does it mean that a device supports "glance" without supporting "widget"? (e.g. fenix8 series)
A user is scrolling through the glance views, and then... can they select one? And then what happens?
What does it mean that a device supports "glance" without supporting "widget"? (e.g. fenix8 series)
A user is scrolling through the glance views, and then... can they select one? And then what happens?
All CIQ 4+ devices have dropped support for the CIQ app type of widget. This includes all devices which are currently supported with feature firmware updates and monetization. Instead, the widget functionality has been merged with the existing watch-app / device app app type.
End users can see this from the fact that if they open the CIQ phone app and click on the search field, the available app types to filter by do not include Widget, if they've selected a newer a device. If they select an older device, the app types do include Widget.
The way it works on CIQ 4+ devices is:
- Any app with a type of widget in manifest.xml is actually compiled as "watch-app" (device app) instead. (You can see this by looking in the .IQ file that's generated when you export your project - it's really just a ZIP file with a bunch of PRGs and manifest files - one set for every part number.)
- Any device app can provide a glance view, in addition to being available from the app/activity launcher. To do so, simply implement getGlanceView(). NOTE: older CIQ 3 devices which supported glances but still had a widget app type would provide a default glance view for widgets that do not implement getGlanceView(). If such an app is ported to a CIQ 4+ device without implementing getGlanceView, it will lack a glance view. This is a problem for certain older widgets which need to function with "widget-like" properties, such as the ability to be launched while an activity is running. Unfortunately, irl a few older widgets have been ported this way, leading to complaints that they're no longer useful on new devices
- If a user launches your device app via the glance, it gains widget-like properties, such as the inability to record an activity, and the fact that it will time out and exit after a period of user inactivity
- There's no way to implement an app available as a glance but not from the app/activity launcher
A user is scrolling through the glance views, and then... can they select one? And then what happens?
Just as with older devices that support glances, a CIQ app with a glance loads the smaller part of itself that supports the glance view (returned by getGlanceView) when the glance in question becomes visible (i.e. due to user scrolling). When the user "selects" the glance (by tapping on it or pressing START), then the full app is loaded and the primary view (returned by getInitialView) is displayed.
Thanks for this explanation.
Unfortunately, irl a few older widgets have been ported this way, leading to complaints that they're no longer useful on new devices
Hmm right. I encountered some of your commentary on that earlier: https://forums.garmin.com/developer/connect-iq/f/discussion/245387/super-apps-and-widgets-in-ciq-4-0/1843614
There are two exceptional devices that are CIQ 4+ and the compiler.json indicates they support both widget and watchApp types; etrextouch and gpsmaph1. In both cases they don't support glance. Are these erroneous inclusions of "widget" into "appTypes"? Or is there some special interpretation of "widget" on these devices? Or is it as you say that the app is launched in *widget* mode on these devices and is subject to timeout and inability to record activities?