First impressions developing on ConnectIQ

hi,

I just developed my first data field. I started off fairly simple but then did something more advanced, trying to figure out when a new lap had started after a rest period, and displaying multiple stats in a single field. I had some good & bad impressions of the environment, and was wondering what others think.

On the plus side I thought
- it was very easy to get started, with good instructions
- the build process works. Not kidding here, in my current commercial developer role it can take days or more to get a build going.
- parts of the development process work v well, e.g. nice API documentation, simulator with .fit files giving preview, and easy to side-load onto the watch

On the negative side
- it's difficult to figure out where errors occur. You get a message back stating that there's an exception, e.g. symbol is wrong, but you don't even get a line number / a stack backtrace. This seems very basic. I ended up having to add print statements throughout the code to see where it was broken.
- fit file simulation doesn't correspond very closely to what you see on the watch (I was using Vivoactive, maybe this is better for other watches that record second-by-second)
- finally, there just wasn't enough information in the activity.info. As has been mentioned many times before, the lap number is missing together with any data about the lap (I would assume it would make sense to get one info for the overall workout, and another for the current lap). Also a number of metrics are missing that are available in the built-in data fields. For my purpose the number of steps would have been v v helpful (you can back this out from average cadence and time but it's not reliable -- sometimes you see a decrease in steps from one second to the next after a rest period). It feels like custom data fields are very much second-class citizens compared to built-in ones, which is odd compared to APIs I've been using professionally, where company supplied widgets tend to use the same APIs as end-user widgets.

So overall, I was pleased and excited to get as far as I did, and feel the environment has a lot of potential, but without some improvements (especially in terms of the data available) I wouldn't be keen to spend a lot more time on it. Interested to hear what others think. Maybe I've got some of this wrong or there's stuff I ought to be aware of.
  • hi,

    - fit file simulation doesn't correspond very closely to what you see on the watch (I was using Vivoactive, maybe this is better for other watches that record second-by-second)


    Yes, .fit playback using a va file is a bit odd. Things update much more slowly (it's due to the "smart recording")

    - finally, there just wasn't enough information in the activity.info.
    ...

    For my purpose the number of steps would have been v v helpful (you can back this out from average cadence and time but it's not reliable -- sometimes you see a decrease in steps from one second to the next after a rest period).



    I use steps in two different ways with apps that record with activity.info data. In one case I just display the current steps (from ActivityMonitor), in the other, I get the step count when I start, and then the step count during the activity, and by subtracting "start steps" from "current steps", the step count just for the activity. The key here is you can get other info than what's in activity.info and use it too.

    But it would be nice for more stuff to be in activity info. For example, if you have a HRM and a Tempe, you get the HRM data in activity info, but not the temperature. You get that from sensor info (which also has the HRM info).
  • I get the step count when I start, and then the step count during the activity, and by subtracting "start steps" from "current steps", the step count just for the activity. The key here is you can get other info than what's in activity.info and use it too.

    But it would be nice for more stuff to be in activity info. For example, if you have a HRM and a Tempe, you get the HRM data in activity info, but not the temperature. You get that from sensor info (which also has the HRM info).


    thanks, interesting. Do you know if it's possible to get the steps and other info from a data field, or would I have to be running within a data field within a custom app to get that?
  • thanks, interesting. Do you know if it's possible to get the steps and other info from a data field, or would I have to be running within a data field within a custom app to get that?


    You can access ActivityMonitor stuff in a data field. I have a DF for standard apps (like running) that shows steps, goal, daily calories and a move bar, for example. I just get the data from ActivityMonitor. In that one I do nothing with activity.info at all.
  • You can access ActivityMonitor stuff in a data field.


    I had no idea that was possible. I didn't find it very obvious from the documentation.

    Moreover, in the simulator, the number of steps comes back as null. It was only when I tried it on the watch that it worked!!!

    Thanks a lot -- getting the steps directly is a lot more accurate than multiplying time by avg cadence (no more negative stride lengths) and this makes my data field a lot better :)

    Now if only we could get lap number and per-lap info as well...