fenix series BehaviorDelegate oddities

Are there any known issues or idiosyncrasies with the fenix series when it comes to BehaviorDelegate? In the space of a few days I've had some users report that they can't navigate two different apps of mine with the physical buttons. I don't know whether or not (yet) things work with the touch screen. Similar reports from:

  • fenix 5s Sapphire
  • fenix 5x
  • fenix 7 Pro Sapphire Solar

Example: see the reviews in https://apps.garmin.com/apps/7ce6349b-d6b0-40e2-a791-5b1056fd3379

  • onKeyPressed and onKeyReleased have been known to be flaky on some devices for years.  Just search this forum.

    To be fair, the devices in question are Forerunner 235 (and other watches of the same/similar generation). FR235 is 10 years old at this point.

    The only reason it's been known "for years" is because those devices haven't been updated in years, and the bug (or missing implementation) was never rectified at all. This fact in no way implies that those functions would not or should not work on newer devices. In 2035 will you say that onKeyPressed/onKeyReleased have been broken for 20 years? It will technically be true (for FR235 and cousins), but it will also have no bearing on the same functionality in contemporary watches.

    Yes, it's good to be aware of old bugs on old devices, especially if you want to support those devices. But at some point you probably have to move on and accept that some things that were broken on old devices might actually work on newer devices.

    By the same logic, will you not use any functionality that was added to CIQ after 2015?

    I could also point out that WatchUI.animate() seems to be broken on some devices from that era too. Should I just never use that function ever, even on the latest devices?

    I do think it is a shame that bugs like this are not faithfully reproduced in the sim. (Yes, we are all painfully aware it's not an emulator.)

    Contrast with iOS development, where the simulator runs the real operating system (or something very similar to it), and bug and quirks of the real devices are reproduced much more faithfully than they are in CIQ. You can even run older OS's in the sim (with more-or-less faithful reproduction of various version-specific bugs and quirks.) Yes, I'm aware that the iOS simulator is not 100% faithful either. But it's much closer than CIQ.

    On the contrary, in the CIQ sim, we can see issues sometimes like behaviour intended for newer devices being applied to older devices (e.g. with respect to certain bitmap-related functions - when one dev tried to use them incorrectly, they found that the functions failed in the sim in a different - and misleading - way than you'd expect them to fail on a real device). Ofc the dev was still doing something that they shouldn't have, but because of the odd sim behaviour, they were led to the wrong conclusion about why their code was failing.

    Yeah, I also get that Garmin doesn't have nearly the same amount of resources that Apple does. We can also see that it took literally 10 years for the CIQ store to gain built-in monetization.