I give up on Garmin Connect IQ. My thoughts.

Former Member
Former Member
After a couple of days playing around with the Garmin Connect IQ SDK (ver 1.2.2) I officially give up developing a weather app for my Garmin Fenix 3.

I wanted to share my thoughts with the community, though. Take it as a constructive critic, Garmin staff.

IMHO, Garmin Connect IQ lacks many basic functionalities that the Garmin Team should take into account in future updates.

  • Read/Write file support. I have a device with 8GB of memory and I cannot read/write data from it?
    https://forums.garmin.com/showthread.php?341361-Read-Write-text-file
    Someone pointed out that I could store the data somewhere and offer it via web service + JSON, but if a user is not online, or comms fail, it's useless. Read/write access is a must.

  • Reliable HTTP connection without Garmin Connect and/or JSON dependencies. Another 'must'. Not everybody can develop a web service that gets the information from some URL and then translates it back to JSON format for the Garmin device. Even doing so, you might find errors that you cannot debug because they are the frameworks fault. As happened to me here:
    https://forums.garmin.com/showthread.php?341207-weather-sample-app

  • Unique Device ID. I might need to store the Device ID somewhere (to avoid a user to having to identify himself manually, for example) to do many things such as storing persistently device's preferences, or just checking if a device is in a list (subscriptors or premium users).

  • Backwards compatibility. I see many complaints on apps working wrongly in v.1.2.2 when they where OK in v.1.2.0. This backwards compatibility issues should never happen, and I think that they happen because Garmin staff doesn't use this SDK. At least they should have a set of 'test-apps' (more complex than the default samples provided) and have them recompiled with this new SDK before releasing it.
    https://forums.garmin.com/showthread.php?341352-Issues-upgrading-an-App

  • This is not an issue, but a point related to the previous one. I think Garmin should use this same SDK to develop their apps... That way they would see the real needs of the developers.

  • Logs. The developer should have the ability to create a log/trace, so that if a user reports a problem, the developer can ask for the log file inmediatly. Even if this log file is size-limited by Garmin would be OK, but it's something a developer cannot allow. If a user reports a malfunction to the programmer, thats a very very valuable feedback (most of the users just uninstall the app and rate it 1 star). So if the user get's in touch with a developer, the developer should have the posibility of asking for a trace file right away. Otherwise, this very valuable user willing to help, won't do anything if you ask him to do many weird things (such as creating a file with the name of the app and reporting back when they have another error). No company can let a rare user willing to give some very valuable information scape, or making him do an effort, because then the user will just fly away.



In my opinion, the idea of the Garmin Connect IQ is very good, but the execution is very poor. Having had Garmin products before, I was happy with the products.
I had a Garmin 910xt before, I passed on the 920xt, but liked very much the wearability of the Fenix 3, and having read about the posibility of developing my own apps, thought it was a plus.

However, after a couple of days trying to develop a simple weather app, I see so many inconveniences, problems and errors, that makes me uncomfortable. And as I was doing this for fun, I will just give up and enjoy my Fenix 3 as is.

I don't know the reasons this could happen. I expected a more mature SDK, acording to the quality of Garmin products. I would bet that part of the R&D team are working on an android wearable (that would be a smart move)

just my two cents.
  • Former Member
    Former Member over 9 years ago
    Have you developed an app for another wearable product?
  • Former Member
    Former Member over 9 years ago
    Have you developed an app for another wearable product?

    I have good experience in software development but never worked with wearables, this was my first attempt and I think I will wait until I find an Android gps watch.
  • Former Member
    Former Member over 9 years ago
    Well, I have experience with developing for several different wearable platforms and I can tell you that while Connect IQ is not the most straightforward approach, it is not the worst one. I have an app ready in three days. Along with an Android companion app.

    Btw, if you use a companion app, you can overcome some of the issues you are rightly complaining about - like file read/write.
  • Thanks for your honest feedback--we know that we won't be able to please everyone all the time, and encourage developers to let us know about the things they like and the things they don't. While we don't decide on Connect IQ features and enhancements by democracy, we consider all of the feedback we receive. :)

    You have some valid criticisms here, so I'd like to try to address some of your concerns:

    Read/Write file support. I have a device with 8GB of memory and I cannot read/write data from it?



    In the short term the object store was selected as Connect IQ's local storage option. Some of this is due to memory/storage restrictions, and some is because we wanted to avoid apps writing arbitrary data to the mass storage volume of the device. There are plans for more storage options in the future, like FIT file recording, which will allow developers to write their own data to the FIT file rather than the only allowing activity information supported by the device

    Reliable HTTP connection without Garmin Connect and/or JSON dependencies. Another 'must'. Not everybody can develop a web service that gets the information from some URL and then translates it back to JSON format for the Garmin device.



    We know that makeJsonRequest isn't an ideal solution for everyone, but it covers a lot of use cases we had in mind early on. One of the biggest things we've been wanting to include is a way to do authenticated requests since many services require it, and we're working on that. A bigger limitation of makeJsonRequest (aside from requiring a JSON response) is the limited memory available for the response. Some of this will ease up in the future as our devices become more capable, and some will be addressed as we expand communications capabilities. We're in agreement with your comments here, so the most I can do is ask for your patience. :)

    Unique Device ID. I might need to store the Device ID somewhere (to avoid a user to having to identify himself manually, for example) to do many things such as storing persistently device's preferences, or just checking if a device is in a list (subscriptors or premium users).



    Yep, agree here, too. Initially, we didn't consider this a critical use case, but we see many developers are interested in this information. We have a task on the books to include this in a future release.

    Backwards compatibility. I see many complaints on apps working wrongly in v.1.2.2 when they where OK in v.1.2.0.


    Some of the upgrade trouble reported recently is firmware-related, not because of Connect IQ. I don't mean to pass the buck, but it's important to make that distinction. We always try to ensure forward compatibility (e.g. 1.2.0 apps will run on devices that support 1.2.2), though we may introduce breaking changes between major versions. We can't guarantee full backward compatibility since it's possible a newer SDK version will include support for an API that did not exist in earlier versions. There are ways to check for this sort of thing, however, and handle it in your app.

    That said, I do admit that we had a couple of issues come up with the 1.2.2 release that had some unintended consequences. For example, we changed our memory management system in preparation for supporting future devices, and there were some hidden bits of overhead that caused memory use to increase just enough that some apps would no longer run without tweaking. That's being addressed right now.

    At least they should have a set of 'test-apps' (more complex than the default samples provided) and have them recompiled with this new SDK before releasing it.


    We have unit tests and test apps that we build and run to help validate changes with each SDK release. These apps, which include some of the samples and some other non-released apps, are distributed to the device teams for verification on devices. Is there room for improvement in our testing procedures? Definitely.

    I think Garmin should use this same SDK to develop their apps....



    Ahem: https://apps.garmin.com/en-US/developer/e1683f31-54fe-45d9-9aa8-cba39fe7fd1f/apps ;)

    On the contrary, we have several teams outside of the Connect IQ team that develop official Garmin-branded apps using the same SDK that is available to everyone else. There are also several Garmin employees on and off the Connect IQ team that build apps on their own time and release them under their own name.

    Logs. The developer should have the ability to create a log/trace, so that if a user reports a problem, the developer can ask for the log file inmediatly.



    There are actually a few different logs available related to Connect IQ. See the new developer FAQ for some information on them. We realize there is a need for a true debugger, and hope to have one available soon.



    We honestly do appreciate your comments. Hopefully you can see that many of the issues you've mentioned are things that were done intentionally (even if you may not agree with our reasoning), or are things we're aware of and are working to address. Perhaps you'll be willing to give us another try in the future!
  • Former Member
    Former Member over 9 years ago
    Thank you very much for you honest answer. I really appreciate being able to talk honestly.

    I know many of my issues could be worked around for example making a companion Android/iOS app, but I didn't see the point of making a simple weather app for the watch, that needed a mobile companion app (as I already have a weather app in the mobile)

    I understand the problems involved in software development, but I'm glad to hear that the Connect IQ SDK is the one used by Garmin itself, and also I'm happy to see that you listen to complaints.

    I really expect the Framework to get more reliable and full of new features. I guess instead of saying 'I give up' now I have to say that I will wait and see, to check if newer versions of the SDK get more stable and work for me.

    Keep up the good work. I've always found Garmin products to be very good, and expect it's SDK to be as good too.