Device support best practise

This is a friendly request for potential advice for maximizing the stability of code.

I generally check api level / supported device in docs, I have has/null/etc checks in code,

and I test run all devices in sim.

However, with a recent publish of a watch face, I had feedback regarding problems

on a device which I do not own. Also, I've seen inconsistencies between docs and

sim devices. This made me wonder how people deal with ensuring your apps run on all devices?

  • What are the users seeing?  Does your app crash?  If so, look at the ERA logs, as you should see the crash, along with a friendly stack trace, If you don't see in in ERA, ask a user to send you their ciq_log files.  See the "Tips and Tricks" Wifi to translate the pc values into a friendlier stack trace

    Then it really depends on what the error is.

  • In the case I mentioned it did not crash, just an unexpected and hard-to-explain behavior.

    Hmmm ... is the general user willing to send log files? That would be nice. Have you found this to be the case?

    I wonder how many of users use garmin express?

    Could use a volunteer network of developers exchanging hardware test services ... ;-)

  • Before ERA, I had users send me ciq_log files quite often, and still do on occasion.

    What is the behavior?  One thing that happens at times is things like dc.getFontHeight() has a different value in the sim than on a real device for the same font.  In cases like that, just having the user take a picture of what they see on the watch can help.

  • No crash, so no ERA reports, and no ciq_log file I guess. Had some kind of non-crash behavior which is not explained by a photo. But maybe it's an edge case ...

    The more broader query was whether people do/check anything else to assure running apps.

  • Memory can be an issue.  Things can fun fine, but if you change app setting while something like a watch face is running, you get a spike in memory usage - but then you'll like get a crash.  What is it that users are seeing?

  • Yes, I do have a look at memory usage, but I find it hard to analyze.

    I admire your engagement :--)

    I think my specific issue appeared as a "impossible logical" bug. Would be nice to be able to send a prg file for sideloading to a user ...

  • There is no reason you can't send a sideload to the user if they agree to try it.  Make sure you included basic details like how to install the sideload.