Compatibility problems with Fenix 3

Dear Garmin

It looks like there are sever mismatches between the simulator and a real physical watch. I have tested my apps intensively on one physical watch and on the simulator for the other watches. Everything worked fine.

Nevertheless it does not seem to work on physical watches of users as I get a lot of negative comments since the last week.

Here the link on Garmin App Store:
https://apps.garmin.com/de-DE/apps/2e096d91-3e49-492f-9bd1-e5c92a53d1a5

Can you help me to find out the problem?
  • Hi,

    I've seen similar issues: things work on simulator but then they crash on actual hardware. Also seen with 230 / 235 / 630, the difference is that I have a 230 and can debug it (mostly trial and error) and finally got a version that the watch likes. But now I am having troubles developing my app for Fenix 3 as I don't have any and it is not working there... if it was real profitable work (I am a professional software developer) I would buy the devices for testing the app properly, but as I do this for free, that is out of the question, and if it is too difficult to get it working for another watches I finally will opt for develop only for my watch (and compatible ones).

    Regards,
    Kurt.-
  • Hi,

    I've seen similar issues: things work on simulator but then they crash on actual hardware. Also seen with 230 / 235 / 630, the difference is that I have a 230 and can debug it (mostly trial and error) and finally got a version that the watch likes. But now I am having troubles developing my app for Fenix 3 as I don't have any and it is not working there... if it was real profitable work (I am a professional software developer) I would buy the devices for testing the app properly, but as I do this for free, that is out of the question, and if it is too difficult to get it working for another watches I finally will opt for develop only for my watch (and compatible ones).

    Regards,
    Kurt.-


    One thing I've done is send a user a side-load version with extra Sys.println() calls and instruction on creating the CIQ_LOG.txt and <app>.txt log files, and then ask them to send those files back to me. Also, I know there are other folks here with devices I don't have that have tested things for me, as I've done for other folks. You might get some help if you stated a thread asking for other developers to help you debug for a device you don't have. Sometimes it's just posting the bit of code that seems to be at issue. Many folks here as kind of a hobby and willing to help!
  • Yes, I am doing that. But is quite frustrating because when somebody reports that the app crashes, there is any clue about where it is failing. The app I am doing pushes the limits (memory resources for data fields are very limited), so adding too many System.println could generate "OutOfMemory" errors, and without prints, debug info is like:

    ERROR: Unhandled Exception
    DETAILS: Failed invoking <symbol>
    STORE_ID: 00000000000000000000000000000000
    WARNING: Unfreed memory on exit
    STORE_ID: 00000000000000000000000000000000

    This does not help much.

    I've tested the app in my 230. I'am also getting reports that the last version it does not work on 235 and 630. May I have to do all of this for every single model? Oh my God! This is worse than I expected. It is too time-consuming and cumbersome.

    I am thinking on release the source code and whoever that has the right model, knowledge and time may try to debug it.

    Sorry for the rant... :)

    Best,
    Kurt.-
  • Since the Connect IQ simulator is not a device emulator there are some things we can't accurately represent such as true on-device performance, some memory-related issues, and device firmware bugs. We realize this can cause some complication for developers, so we try to keep the simulator as close to actual device behavior as possible.

    I think one issue developers frequently encounter is differences between the SDK version you're developing with and the supported version on hardware. For example, our latest SDK is version 1.2.4, but the Forerunner 230/235 is using the 1.2.1 virtual machine in it's latest firmware (v3.30). We've made some fixes since 1.2.1 that won't be available on the device until the firmware is updated.

    You shouldn't need to test an app on every single model, but it's not a bad idea to test on some representative devices from each "family" if possible. For example, there are several fenix 3 variants, like the quatix 3 and tactix Bravo, which could all be tested on a fenix 3 pretty effectively.

    I apologize for any frustration you're having with discrepancies between the sim and devices. We do a lot of in-house app development and deal with some of the same problems, so sympathize with your experience. Of course, we also have most of the devices at our disposal... but we're aware of these kind of issues and are working to improve the development tools to mitigate as many of these problems as possible.
  • hall st

    Since the Connect IQ simulator is not a device emulator there are some things we can't accurately represent such as true on-device performance, some memory-related issues, and device firmware bugs. We realize this can cause some complication for developers, so we try to keep the simulator as close to actual device behavior as possible.

    I think one issue developers frequently encounter is differences between the SDK version you're developing with and the supported version on hardware. For example, our latest SDK is version 1.2.4, but the Forerunner 230/235 is using the 1.2.1 virtual machine in it's latest firmware (v3.30). We've made some fixes since 1.2.1 that won't be available on the device until the firmware is updated.

    You shouldn't need to test an app on every single model, but it's not a bad idea to test on some representative devices from each "family" if possible. For example, there are several fenix 3 variants, like the quatix 3 and tactix Bravo, which could all be tested on a fenix 3 pretty effectively.

    I apologize for any frustration you're having with discrepancies between the sim and devices. We do a lot of in-house app development and deal with some of the same problems, so sympathize with your experience. Of course, we also have most of the devices at our disposal... but we're aware of these kind of issues and are working to improve the development tools to mitigate as many of these problems as possible.


    Thanks for the explanation, and I understand why is hard to truly emulate all the different devices. The simulator, even with its limitations, is very, very useful for developing apps for this platform. Don't get me wrong, I like a lot that you offer the possiblity of developing my own apps for your devices. It's just that in the current state of things (it seems the platform is still in its early stages and probably is not as stable as it will be) I fear that I won't be able to reliably develop any app beyond the devices I can effectively try the apps on. Or I may say that I am not going to invest the effort required to maintain the app for many different models by sending debugging versions to people, gathering the logs, and doing that over and over till catching the bugs... and then maybe an update may break something again.

    I work as a developer, but here I do it just for fun... I am willing to do the fun parts, but in my spare time I am not willing to do the not so fun parts (as remotely 'debugging by proxy').

    Today I am receiving reports that my app, that works on my 230, is not working on 235 (two different reports, so it does not seem an isolated thing). In my understanding, from a development point of view, a 235 is a 230 with an embedded optical HR, but in practice something is different. So yes, I am a bit frustrated.

    I will release the code on GitHub under a GNU license or similar (totally open source) so that if anyone wants to try to debug it in another device, or do some derivative work, it may do that. I think it will be the best solution, and please, keep the good job improving the platform (I would love to have access to lap time and lap distance on Activity.Info, by the way :) )

    Best,
    Kurt.-