User experience, sound, vibration and gps

Hi,

I'm trying to make my app as close as possible to a native app in look and feel, however I miss some information from the developer docs (http://developer.garmin.com/connect-iq/user-experience-guide/appendices/)

0.) Layouts. With the resent update of the documentation, this is fixed. Thank you!

1.) Sound. What sounds should I use for start/stop/pause etc? Ok, not hard to find out but it would have saved me some time.

2.) Vibration. Same as for sound, what patterns should I use to get the same behavior as native apps?

3.) GPS. The gps location fix progress bar I had to imitate in my app from looking at my fenix3. Almost impossible to do for other watches. A api or guideline would be nice.

All questions more or less exclusively aimed at Garmin but if anyone could contribute with e.g. vibration patterns I'm more than happy!
  • 1. - tones. The API doc helps here, by the name of the tones, such as TONE_START, TONE_STOP, TONE_LAP
    2. - vibes. Some devices don't support patterns, and for those that do, I'm not sure if the patterns are the same from device to device

    That said, the way I use both is make sure they can be noticed as much as possible, but maybe not the same as native apps. For example, in one app I just use TONE_LOUD_BEEP for everything. For VIBE, I make the duty cycle 100, but might vary the duration a bit (and I don't use a short duration!). If someone has headphones on, they might miss the tone all together, but the vibration should catch the user's attention. Both the va and va-hr had early problems with weak vibrations in native apps, so I make sure they aren't weak! :)

    If users miss tones/vibrations, that's one of the things that users might mention in reviews.

    3. - on all devices you have the 0-4 values for GPS accuracy in CIQ. The FW and native apps have far detail available for this. For example, on an Edge, while waiting for GPS there are 10 bars that come and go as the device is getting a GPS lock.

    When I display accuracy, I tend to use the words "poor", "usable", "good", etc (that map to the 0-4 values), and might do something like display it in green if it's usable or good, and red otherwise.

    I also do something that is not done by native apps, but I feel it's a better way to do things. After I start up GPS, I wait for an accuracy better than "poor" before I allow the user to start the recording. With native apps, you could be 5 minutes into your activity before there's a GPS lock, meaning the GPS based data (the track itself, speed, distance) for that first 5 minutes could be missing or very odd.

    So, these are things that might vary from the UX guilde, but as long as they aren't too odd, users likely won't complain (well, at least not too much - I had one user that was in a concrete building and he couldn't start recording where GPS was basically blocked. He was used to doing that with native apps. He just had to step outside to get good GPS)

    I just watch the accuracy in onPostion() to see when the user can start....
  • 1. - tones. The API doc helps here, by the name of the tones, such as TONE_START, TONE_STOP, TONE_LAP
    2. - vibes. Some devices don't support patterns, and for those that do, I'm not sure if the patterns are the same from device to device

    That said, the way I use both is make sure they can be noticed as much as possible, but maybe not the same as native apps. For example, in one app I just use TONE_LOUD_BEEP for everything. For VIBE, I make the duty cycle 100, but might vary the duration a bit (and I don't use a short duration!). If someone has headphones on, they might miss the tone all together, but the vibration should catch the user's attention. Both the va and va-hr had early problems with weak vibrations in native apps, so I make sure they aren't weak! :)

    If users miss tones/vibrations, that's one of the things that users might mention in reviews.

    3. - on all devices you have the 0-4 values for GPS accuracy in CIQ. The FW and native apps have far detail available for this. For example, on an Edge, while waiting for GPS there are 10 bars that come and go as the device is getting a GPS lock.

    When I display accuracy, I tend to use the words "poor", "usable", "good", etc (that map to the 0-4 values), and might do something like display it in green if it's usable or good, and red otherwise.

    I also do something that is not done by native apps, but I feel it's a better way to do things. After I start up GPS, I wait for an accuracy better than "poor" before I allow the user to start the recording. With native apps, you could be 5 minutes into your activity before there's a GPS lock, meaning the GPS based data (the track itself, speed, distance) for that first 5 minutes could be missing or very odd.

    So, these are things that might vary from the UX guilde, but as long as they aren't too odd, users likely won't complain (well, at least not too much - I had one user that was in a concrete building and he couldn't start recording where GPS was basically blocked. He was used to doing that with native apps. He just had to step outside to get good GPS)

    I just watch the accuracy in onPostion() to see when the user can start....



    Thanks for you reply.

    For vibrations I understand they vary from device to device but then why not include them in the spec? The simulator doesn't really do a good job of showing vibrations ;D

    For gps on the fenix 3, I have done a animation showing a circular progress bar of just like native apps and hides it once accuracy is good. I believe it's in Garmin's interest to have a common user experience thus my question. I could do my own implementation and users won't complain but then we are back to the early days of android where apps looked like **** and behaved like ****...
  • Thanks for you reply.

    For vibrations I understand they vary from device to device but then why not include them in the spec? The simulator doesn't really do a good job of showing vibrations ;D

    The simulator window shakes.. :) As far as documenting them, not only might they vary based on devices, they might vary based on the user settings on the device (such as the general vibration level)
    For gps on the fenix 3, I have done a animation showing a circular progress bar of just like native apps and hides it once accuracy is good. I believe it's in Garmin's interest to have a common user experience thus my question


    I don't have a f3, and have not seen this on any other device. If stuff like this was documented for each device, I kind of doubt many people would do something device specific in many CIQ apps (there isn't a lot of free memory in complex apps as it is.. 64k isn't much memory :) ). You might suggest that CIQ expose the native the stuff. A good example of where that happened is with menus and the FW "Pickers" (NumberPicker and TextPicker). They vary based on device, and are shown generically in the sim.