Super apps and widgets in CIQ 4.0

Hi, on the Garmin virtual conference you mentioned that in the CIQ 4.0 widgets will go away, and they will merge with device apps.

I had a good discussion with one user today. He uses a GRouteLoader IQ widget, so he can display the widget while the navigation is running on his EDGE device. He can download a new tour and replan the tour on the go. This is really cool and cannot be done with standard device apps. It means he does not need to stop the recording, and he can change the tour which is he navigating. There is a good article about it: https://www.mysysadmintips.com/other/mobile-devices/928-download-course-route-from-garmin-connect-while-activity-is-running 

Is this use case also considered with the new super apps? Will I be able to start "a part of my app" when the navigation is running? And when this CIQ 4.0 functionality is planned to be released (and on which devices)?

It seems it does not make sense to create a separate widget now, and rather wait for the super apps. Is this correct?

  • It's taking a while to get 3.2 onto devices and not all devices will get it. My app supports 2.4 too.

    In my case, it was easy to also create the widget version. Most of the features in the app are available in the widget (the widget doesn't let you download multiple courses at once because that might time-out).

    I could have just made a widget version (you can always use them).

    I think that, in terms of "marketing", you are better off having both.

  • Yes. But for widget you need to create a different app submission. Users need to download both the widget and the app... This can be confusing for users, as well as more complicated from a marketing / support side.

    And you cannot share the data between them, so users would need to log in twice. This is not a good experience... If the CIQ 4.0 is planned soon (and at least the EDGE 530, 830 and 1030 would get it), I would wait.

  • Make just a widget version. That would have worked in my case.

    I doubt we are going to see 4 soon on anything. It will be even longer for multiple devices.

    My app runs on a lot of devices. If you don't need 4 features, why not support them too?

    Having a widget and an app is a bit confusing but that's not really much of a problem.

    People might look for apps (and not widgets) and miss your widget-only app, People might be confused with how widgets work (or don't want your widget cluttering up their widget list).

    Nothing is perfect.

  • From the presentation and Q&A it sounds like the only devices that support CIQ 4 will be new devices, none of the existing ones, and for compatibility, the glance mode device apps will be widgets on the older devices.  Many of my widgets already will run as device apps by doing nothing more that changing the app type in the manifest but without glance mode.  I do that for testing at times.

  • Well now that its there he can't do this while navigation is running, because the F7 and Epix2 have a bug that stops GPS as soon as you open a CIQ widget.

    forums.garmin.com/.../fenix-7-series---gps-track-recording-is-stopped-during-activity-when-a-widget-is-displayed

  • I had a super widget on my instinct 2. This widget is not working on my 955, because it is an activity and not a widget anymore. Has this something to do with your topic? And if so, how can I change it, so that I do have a widget on my FR955.

    Thanks in advance

  • Contact the developer of the widget

  • I had a super widget on my instinct 2. This widget is not working on my 955, because it is an activity and not a widget anymore. Has this something to do with your topic? And if so, how can I change it, so that I do have a widget on my FR955.

    You can't change it. As flocsy said, you have to contact the developer of the widget. They have to make a change to the app (implement getGlanceView()).

      this kind of thing has happened more than once, where a legacy widget has turned into a device app (with no glance) on CIQ 4+ devices, because CIQ 4+ devices (with super app support) require that a glance view is explicitly specified by implementing getGlanceView(). While this requirement makes perfect sense for new apps with a type of "watch-app", it has obviously caused problems for old apps with a device type of "widget" (which ofc are compiled as "watch-app" for CIQ 4+ devices.) When these old apps are ported to CIQ 4+ devices, they don't act as a widget/glance anymore unless the dev takes explicit action. The problem here is that there a few apps which were developed specifically with "widget" functionality in mind (i.e. the ability to launch the app during an activity.) These apps become useless if they're ported to CIQ 4 devices without explicitly implementing a glance view.

    I'd like to make the same suggestion I've made in the past: when an app with an app type of "widget" is compiled for CIQ 4+ devices, the compiler should add a default glance view to the app if one is not explicitly specified. This default glance view could be the equivalent of the default glance view that was implemented in older devices.

    At the very least, the compiler could warn the developer that this "widget" app won't have a glance view in newer devices, and that the developer should probably implement getGlanceView().

    I will also point out that normal users and reviewers have no idea what super apps are, don't care that CIQ widgets technically no longer exist, and think of any app with a glance view as a "widget". (Notice that when DC Rainmaker reviewed the Garmin GoPro remote control app, he referred to it as a "widget".) To me this indicates that the super app concept is more of a convenience for devs, who no longer have to release two separate variants of the same CIQ app - one device app and one widget - to support a fairly common use case.

    For the benefit of others reading this, the history is:

    - [oldest devices which only support full-screen widgets] CIQ widget apps are displayed as full-screen widgets (obviously)

    - [older devices which support widgets or glances] CIQ widget apps are displayed as full-screen widgets or glances, depending on user settings. If a glance view is not explicitly provided, then a default glance is provided by the device (consisting of app name and launcher icon)

    - [CIQ 4+ devices which support super apps] Any CIQ app that has a type of "widget" in the manifest is actually compiled as a "watch-app", so the only way to see a glance is for the dev to implement getGlanceView()

  • But the problem is probably mostly not for active developers that still could recompile with the current SDK and upload it to the store, but with inactive developers who haven't update their widget for years. Their widgets are useless on new devices.

  • But the problem is probably mostly not for active developers that still could recompile with the current SDK and upload it to the store, but with inactive developers who haven't update their widget for years. Their widgets are useless on new devices.

    In my experience, most newer devices don't work as targets of auto-migration (*), so I would say that most old apps which are now available on newer devices were in fact recompiled with explicit support for those devices. So indeed, I am referring to the case where a developer explicitly updates their widget app to work with newer devices, but does not explicitly implement a glance view. Again, I have seen complaints about this in the forums more than once. Literally: "I got a new watch and downloaded my favorite CIQ widget but it's not a widget anymore!"

    (*) iirc, I haven't seen any of my apps auto-migrate to any of the currently supported (but not latest gen) devices, such as FR255, FR265, FR955, FR965, Fenix 6, Fenix 7, etc. And even after updating my apps to work with all of those devices, none of them were auto-migrated to the very latest devices (Fenix 8, Enduro 3.) Some of these apps include simple data fields. Not only are these apps "simple data fields" (so they don't even render their own display), but their functionality is very simple (e.g. no background/communication process), which means that they should be prime candidates for auto-migration. (I am not saying that having a background process would disqualify an app for auto-migration, only that some of these apps are so simple that there's no conceivable reason they wouldn't continue to work if auto-migrated, even to a device with a different display resolution.)

    And ofc, not to state the obvious, but auto-migration is typically barred when the display resolution changes between the old device and the new device, which automatically rules out migration from MIP to AMOLED.

    But let's say I'm wrong, and these old widgets that are available on newer devices were in fact auto-migrated (meaning the dev took no explicit action.) My suggestion can be extended to auto-migration: as part of the auto-migration process, the store could add a default glance view to the app. (Ofc this is a bit risky, as it could possibly cause an app that's on the edge of the memory limit to run out of memory, due to that small extra bit of code, assuming that the memory limit for device apps on the new device is the same as the memory limit for widgets on the old device. In that case, the auto-migration rule could enforce that the memory limit has to be bigger on the new device.)

    I'm really trying to suggest that any app which was originally (or currently) specified as a "widget" in the manifest is intended to either be a full-screen widget or to have a glance view, and that intent matched reality until CIQ 4 devices were released.