FitContributor :nativeNum functionality

There are not many posts on the functionality and/or any documentation concerning the FitContributor and :nativeNum.
My goal, I would like to write to the main 'distance' in the fit file, but I cannot. I'm successfully writing to a custom distance field as a workaround.

Is this nativeNum functionality broken in SDK 2.2.4 or am I misinterpreting the nativeNum functionality?


I've tried this as a Fit.MESG_TYPE_RECORD (snip below) and as Fit.MESG_TYPE_SESSION (total_distance :nativeNum=>9)

relevant code snips

// initialization of dist, the id is unique
dist = DataField.createField("distance", 1,Fit.DATA_TYPE_FLOAT,{:nativeNum=>5, :mesgType=>Fit.MESG_TYPE_RECORD, :units=>"m" });

...
//later in code
dist.setData(distance_m); // in meters as a float



FitContributor XML
<fitField id="1"
displayInChart="false"
displayInActivitySummary="false"
sortOrder = "0"
precision="2"
dataLabel="@Strings.distance_label"
unitLabel="@Strings.distance_unitsm" />
  • What is wrong with you garmin? What is the problem to make it working? I am a complete beginner at monkey c programming. I haven't written a single complete app yet, but I'm already thinking of giving it up. Many ideas are limited by your strange policy. Do you really want the Garmin iq store to evolve?

    The same applies to the ability of non-native apps to use the persistent content like exercises. Is it possible to run a technical exercise for a swimming activity from my app to manually put the distance? No. Unless I've missed something... I wonder how many more problems there are that I don't know about... Please do something. Don't waste this potential.
    How long we need to wait?

  • Garmin is very picky about the general data they use (things like distance) and will only use data they generate.  That's why nativeNum will not override Garmin data.  Let's say due to a bug, you made distance 10x what is should be, and if Garmin used that, it would mess up other data. 

    You can tell it's been this way since fitContrib came out based on the age of the posts in this thread.  I'd say there is zero chance of it changing.

    Also there are a number of things native apps can do that CIQ apps can't do.  It's always been that way. You may find that some things are better down as data field instead of device apps.

  • I still don't get it. Why as a user I can change values like distance etc in Garmin connect but as a programmer I'm considered a source of problems? I have already thought to solve my problem using data field. I was quickly brought down to earth by the lack of input handling. I still don't fight with programming problems but opportunity problems. Thanks for your reply anyway.

  • I purchased this watch with the specific intention of pairing with my Sole E35 elliptical which it does well. What it did not do well was estimate distance with the stock Garmin app for Elliptical. I am requesting Garmin change their policy so that third-party app makers can make full use of the Garmin environment and make things like distance show in the activity page. 

  • Pitiful NEVER a Reply from Garmin, just excuses.  They could easily QC and certify the code since their crappy inhouse code bangers write all kinds of lame apps that don't provide much value and yet the 3rd party developers who make for a rich user and development support community are hobbled and hamstrung and 'censored' from using the puts and calls they are providing.   EVERY piece of code can create mistakes if it sucks?   Even the firmware.   

    The lack of interest by Garmin to the 1/2 decade thread is the key message to us all that we are VICTIMS and they don't give a crap.......NOT valued customers.  

  • Why as a user I can change values like distance etc in Garmin connect but as a programmer I'm considered a source of problems

    Just speculation and educated guesses but:

    - as with Stryd, Garmin doesn't want the user to blame them for the actions of a 3rd-party app. When a user changes values like distance, they know that they did it. If an app does it, the user doesn't necessarily know

    - When the user changes values like distance, it still doesn't affect Firstbeat metrics like training effect, etc. So even the user is limited in what they can do

    - (Even more speculation) Garmin doesn't 3rd party apps to compete on a level playing field with native apps. I'll quote this again:

    "I have a Venu and cannot do open water swims using it natively. I either had to upgrade to a much more expensive alternative or find an app that can measure open water swims."

    Obviously Garmin wants you to buy the more expensive watch lol. I personally dislike the fact that Garmin has like 500 different watch models, but it's obviously worked well for them (so far.)

    Before I get attacked for being a Garmin fanboy, I'm actually one of the biggest critics of Garmin (and I'm regularly criticized for "whining"), but in this case I find it hard to criticize them for an intentional design decision which is in their own best interests. I'll reiterate that the vast majority of runners I've trained with (anywhere from 2:30 marathon to 5:00 marathon) give zero Fs about Connect IQ, if they've even heard of it. The only care about time, distance, pace, heart rate and especially the ability to upload runs to Strava.

    Connect IQ has lots of other issues and I'd put this one near the bottom of the list tbh.

  • I bought the watch to do what it was advertised to do.  The native apps are average to below average at best.  Look at the watch faces, swim, cycling, running and ALL the thousands of apps created by third party - they are all supporting Garmin business and profits by providing functionality and capability Garmin enables but DOES NOT ACTUALLY deliver? Except in a very very basic and unimpressive way.  I have 3rd party Cycling, Swimming (open & indoor), Hiking, Walking and other apps and they are simple censored, hobbled, and cripple on purpose by Garmin and I can pass accurate (and I trust my 3rd party developers a LOT better than the factory knuckleheads.....some of those apps have HUNDREDS of bug and feature posts that NEVER get resolved for years and its because they just want to sell watches....I get it.    So let the REAL developers support and develop the watch to the betterment of Garmin and the delight of their customers.   The Open Water Garmin app is abysmal, old, and featureless.  The 3rd party apps blow it away but are useless for Posting, Challenge credits and of course passing to Strava, Swim.com/USMS, and Relive etc etc.    Simple stupid and on purpose.......could be fixed in a single day and surly with less effort then all of our messages here.

    Garmin just doesn't give a crap.  Its THAT simple.  Just scan this board or others.  Like calling the Indian helpdesk except in Garmins' case they don't even answer the phone or reply.

    A LOT of competition out there now .......My next watch is unlikely to be a Garmin.  The winner is the one with the APPS that everybody wants.    If you don't support the sports or activities except with crappy canned internal programs and apps.......you will go the way of Commodore computer and a VIC 64?????   

  • Six years........Garmin that is PITIFUL. Shame on you.

  • Lol like I tried to explain more than once, very few Garmin customers know or care about Connect IQ, much less nativeNum functionality. Garmin watches are simply not built from the ground up to revolve around 3rd-party apps, and I'm pretty sure everyone except you understands that. If you look at a competitor like COROS, it doesn't even support 3rd-party apps on the watch lol. (The Apple Watch is technically a "competitor" but I think we can all agree it's not the same kind of product.) Polar doesn't support apps and Suunto sunsetted its basic app platform which was a lot more limited than CIQ.

    Someone I know in the real world just bought a Fenix because she likes the way it looks. It was always going to be a Garmin, but the specific choice of Garmin model was due to looks.

    Similarly, I see people buying the Apple Watch Ultra because of the social status (their words.)

    If you look at the opinion of CIQ from people outside of these forums, the few people who mention it all usually say that it's a wasteland full of amateurish hobbyist stuff. (No offense to any of the devs here - these users clearly want polished stuff from big-name corporations, and it's hard for unpaid devs to deliver that kind of product, especially with all the restrictions Garmin places on us.)

    So I don't think Connect IQ will make or break Garmin, and I don't think nativeNum won't make or break Connect IQ.

    I actually agree with you that Garmin doesn't care about a lot of problems but I'm not sure why you're hyper-focused on this one. Just buy an Apple Watch and write whatever app you want. Can't wait to see the 5-star reviews on the app store.

    we are VICTIMS

    You're not a victim, you're an unhappy customer who is perfectly free to complain, and Garmin is perfectly free to ignore you. Get a grip lol.

    (Note that I'm not telling you not to complain, and I'm not telling you that your complaint is invalid. I'm saying that I don't think Garmin's product strategy should revolve around support for nativeNum lol and I don't think that scolding from one user is going to change their minds about a deliberate decision.)

  • For anyone who wants to see this change, I would suggest submitting an idea here:

    [https://www.garmin.com/en-US/forms/ideas/]

    I wish Garmin would maintain a public idea / feature request page like some other companies which allows for sharing and voting. I just submitted an idea for that haha but I doubt Garmin will ever implement it :/.

    Obviously these forums are not quite the same thing. The closest thing here is the Connect IQ bug reports section, but that only pertains directly to Connect IQ. Maybe it wouldn't hurt to open a Connect IQ bug report so others could vote for it:

    [https://forums.garmin.com/developer/connect-iq/i/bug-reports]