Which device can run a widget as an app?

I need a widget to stay active for as long as the user do not close it and running a widget as an app allows this. I know my Fenix 7S Pro has that feature. Is there a list somewhere that states which device has that feature?

  • I' not sure it is running a widget as an app, For some reason, on Fenix 7 it seems like in the Garmin Connect Mobile app widgets appear in the "My Device Apps" category rather than the "My Widgets" category, which is missing altogether.  On the watch, widgets still are accessed via the widget carousel, and not in the apps list.

  • What you're thinking of are "super apps" and they're implemented on all devices with CIQ API level >= 4.0.0. (Note that this does not include older "System 4 devices" with CIQ >= 3.2.0 but  < 4.)

    It's not actually the case that a "widget is being run as an app", it's that the widget app type doesn't really exist for these devices anymore. if anything, the opposite is closer to the truth: device apps can now run as "widgets" (or glance, if you prefer.) Another way of looking at it is that Garmin merged the device app and widget app types, effectively getting rid of the widget app type in the process.

    Any device app can run either from the activity/app list (as before), or from the glance loop (provided that the app implements a glance view.) One big change here is that a device app can provide a glance view (which is obviously not possible on older devices which don't support "super apps", which means that device apps and widgets are completely separate.)

    When you build and export an app with type "widget" in manifest.xml, you'll see that the app type gets changed to device app (literally "watch-app") in the manifest.

    So unfortunately, I don't think this really does what you want. My understanding of your request is that you want to be able to run a "widget" (launched from the glance loop) without it timing out, but that's still impossible. This is because any app that is launched from the glance loop is *still* subject to the standard "widget" inactivity timeout.

    What the "super app" feature really accomplishes is that the dev can make one app that serves either as a "regular app" or widget, which also saves the user from having to download two different versions of the same app. But the same old device runtime behavior rules for device apps vs. widgets still apply. e.g. If you launch an app from the glance loop, it can't record an activity and it will time out after inactivity.

    Couple of notes:

    - for devices that use super apps, it's now impossible to make a CIQ app that's only available from the glance loop and not also the activity/app list. Some will argue this doesn't matter, but there's plenty of native apps which are only available from the glance loop

    - older widget apps which do not explicitly implement a glance view (and rely on the fact that older devices would provide a default glance) will no longer be available from the glance loop. (The fix is to implement a glance view.) Again, some will argue this doesn't matter, but there have been complaints about more than one widget which is unavailable as a glance on newer devices, thereby limiting its usefulness (because the app is designed to be used during an activity, for example.)

    Unfortunately Garmin has removed the super app CIQ documentation for some unfathomable reason (and I don't have the archive dot org link handy)

  • It's not missing, but under Appearance/Glances in the Connect App. But yeah, they can be put in the App folder and launched as an app.

  • I' not sure it is running a widget as an app, For some reason, on Fenix 7 it seems like in the Garmin Connect Mobile app widgets appear in the "My Device Apps" category rather than the "My Widgets" category, which is missing altogether.  On the watch, widgets still are accessed via the widget carousel, and not in the apps list.
    It's not missing

    Actually it is, from the perspective that true "widget" apps no longer exist for newer devices, as explained above. (Again, if you try to build an app with a "widget" app type for newer devices, it gets changed to "watch-app" / device app by the compiler. Furthermore, if you look in compiler.json for newer devices, the "widget" app type no longer exists.)

    On new devices, what we think of as CIQ widgets (or CIQ glances) are simply device apps that implement a glance view.

    It could be argued that all of this is confusing and not really explained well to the user or developer (in fact they got rid of the super app docs, as I mentioned.) But what else is new.

  • Ok, that makes sense. As my app runs from the Activity/App list, it's considered a "Super app"? In the manifest file, it still is defined as type="widget". So I guess I can use the CIQ 4.0.0 as a criteria for this feature then?

  • As with a lot of this stuff, the definition of "super app" is kind of fuzzy. Just think of "super apps" as device apps on CIQ 4+ devices. The idea was that a "super app" is the merging of the "device app" and "widget" app types (while getting rid of the widget app type). But they're still referred to as device apps (or apps, or "watch-app") in most cases. It's not like the store ever mentions "super apps" to end users.

    So imo nobody really uses this terminology anymore (especially when talking to end users.) I think the reason Garmin got rid of the super app docs is because they just want people to think of device apps going forward, where any device app can optionally have a glance view.

    But again, there's a real problem with widget apps that were originally released before CIQ 4 (but after devices started using glances) will sometimes lack a glance view (again bc they relied on the default glance view provided by the system.) CIQ 4 devices don't provide a default glance view (bc they want the dev to provide a glance view to signify that the app should be available from the glance loop), which means these "widgets" aren't really widgets anymore.

    I argued elsewhere that the CIQ compiler should've provided a default glance view for widget apps that lacked a glance view, for devices with CIQ 4+, to avoid this problem. But that's never gonna happen now.

    In the manifest file, it still is defined as type="widget".

    Yeah like I said, the compiler changes the app type to watch-app (device app) for newer devices. You can see this by opening the IQ file with a tool that supports ZIP files. So on a newer device, it makes no different whether the manifest says "watch-app" (device app) or "widget". Both app types will be compiled to "watch-app".

    Newer devices will never see an app type of widget. Again, the only criteria for allowing an app (specifically a device app) to be available from the glance loop is that it provides a glance view.

    So I guess I can use the CIQ 4.0.0 as a criteria for this feature then?

    Yep, but again it really doesn't help you much, because when the user launches your app from the glance loop, it will be subject to the same restrictions as an actual widget on older devices (e.g. it can't record an activity and it will time out after user inactivity.)

    You can also look at appTypes in compiler.json. If a device's appTypes list has "glance" (*) but not "widget", then it uses super apps. If it has both "glance" and "widget", then it doesn't use super apps (but it does support glances). If a device has "widget", but not "glance", then it only supports old fullscreen widgets.

    (* obviously here "glance" is not literally a separate app type, it's just an entry which specifies the amount of memory available to the glance view of an app.)

  • TL;DR the user experience for "glances" vs "apps" hasn't really changed (aside from some bugs/regressions that I won't go into), the real change is that a single app can be launched either from the glance loop or the activity/app list.

  • Wow!  Goes to show you that even after 2 years of use I still have a lot more to learn about about CIQ!

  • You can also look at appTypes in compiler.json. If a device's appTypes list has "glance" (*) but not "widget", then it uses super apps. If it has both "glance" and "widget", then it doesn't use super apps (but it does support glances). If a device has "widget", but not "glance", then it only supports old fullscreen widgets.

    Yeah, that's something I really want the user to be aware of and put a disclaimer. The app is to send commands to a Tesla vehicle and to monitor it state. One feature of a Tesla vehicle is its "Dog mode" where the climate stays active for as long as the battery has over 20% of charge. The screen in the car displays a big message telling bystanders that the dog in the car is fine and displays the inside temperature. If something fails, the user is warned through the Tesla app on his phone.

    The code I added to the app is to keep checking the temperature of inside the car and if it gets over 25C or hasn't been received for over 2 minutes, the watch will vibrate and sound an alarm (depending on the available feature) to warn the user. Hopefully, a continually vibrating watch can be better noticed than a vibrating phone in a purse. But for this to work, the app must be launched from the Activity wheel and not the glance wheel, hence why I asked with watch has 'superapps' so I can exclude those that don't.

    This is what it looks like: