[GENERAL] Wishes/ideas for Connect IQ future

Hello Connect IQ team!

as I started to take Connect IQ development more seriously about year ago, spent lots of time with it and had to explore lots of dark corners of CIQ for my more complex projects, I feel to share some topics and ideas which I find quite important or limiting to take the apps on Connect IQ platform to next level. I didn’t want to create separate threads for them so there they are all together.

First of all, great job guys for creating such platform in what I assume not easy environment. You made the Garmin products A LOT smarter. There are lots of things on development on Connect IQ platform which I really like and why I decided to invest lots of my time and effort to it recently. On another hand during this immediately popped up lots of topics which in my opinion prevents developers to transform lots of ideas into real app solutions on the platform. So, I hope you will take it constructively as wider feedback from one of your CIQ developer for whom the development to CIQ is not just another hobby.

CIQ Features:

Datafields can’t share data with each other or connect to same ANT sensor. 
Newly developed ANT sensors usually don’t provide only one interesting value. I find very limiting to not be able to read data from one ANT sensor (with one ANT channel) by more CIQ datafields. So in order to show users relevant values, we have to try to squeeze more values to one datafield which have big impact on UI experience and usability.

DF communication only every 5 minutes
I fully understand requirements for sustain good battery consumption, but this limitation take away huge amount of ideas as it applies also for communication with gyro sensor. And custom DFs which gyro data processing is something which can bring lots of added value for whole Garmin ecosystem in my opinion. I know that CIQ dedicated apps do not suffer from this limitation, but they on another hand brings lots of other limitations preventing them to be widely used during sport activities, especially on recent generations of CIQ devices. One of them is..

CIQ app is unable to do Resume later
In case it records the activity. This is one of the key reasons why we can’t substitute limitation of DFs by dedicated apps. Sure, we can pause recording within the app, but that don’t allow us to use other Connect IQ widget or watchfaces during activity break.

CIQ app can be automatically started only with user input to confirm dialog
I understand the idea behind this, but this again in my opinion take away some great scenarios and do more harm in development freedom than brings benefits. If some app will abuse this feature, it will be easy to identify it by user and do uninstall if necessary. Also, app reviews in Connect IQ store would be great control mechanism for possible abuse of this feature. I find this important as for Garmin watch to be powerful smartwatch, moving task from smartphone to watch and back must be seamless as possible just like on rival platforms in this respect. I believe allowing developers to launch app without confirm dialog but with some vibration alert and timeout for user-input would be great compromise.

CIQ app ability to run native or even other CIQ datafields
This is rather wilder idea to make CIQ apps more powerful. Ability to load available datafields from within the apps can remove lots of mentioned platform limitations in my view.

CIQ apps / activities main device menu
Recent Garmin watches can be in some way capable smartwatches with many installed applications doing various jobs, including native/custom activity recording or for example managing lights in your home. For that I find that current logic of main device menu, with native activities and CIQ apps in one list, insufficient mainly in contrast with other smartwatches on market.


CIQ platform development:

Slowdown of CIQ advancement?
This might be only subjective feeling, but I see noticeable decrease in activity around whole platform which relates also to following bullets. CIQ Summit didn't really help to change this opinion. And this doesn’t show the platform in “healthy” condition, which is rather disturbing.

CIQ 3.0 status 
CIQ 3.0 was introduced year ago and in my opinion some of its key features are less polished than they already should be. For example, MapTrackView and MapView still seems like alpha version, because lots of their features are useless if you don't want to jeopardise user experience of your app. Of course, you will not find out this from documentation, so every developer have to multiply development time with those modules several time to learn their real limitations and to prepare workarounds for the rest. There are lots of posts regarding this topic on the forum.

CIQ 3 Messaging for selected developers
I miss information about who can be granted to use CIQ 3 Messaging, under what conditions and what are the actual capabilities.

Unknow future strategy
I find quite non-standard for developers on platform like this to know that little about future plan for platform development and upcoming possibilities. CIQ 3.1 is out and seems like even CIQ team don't know what should be in 3.2... 

Long-term not resolved bug tickets
On the forum there are many topics about issues for which were reportedly opened internal tickets months or even years ago, but without any further status updates or with same status again and again that team is looking at them. One example: https://forums.garmin.com/developer/connect-iq/f/legacy-bug-reports/5144/failure_during_transfer-issue-again-now-using-comm-sample 
Honestly in this environment I am not motivated to report all issues to which I step into during development. I simply don’t feel required feedback here.

Other Garmin pieces related to Connect IQ

Garmin Forum
New forum is vast improvement, but look here how messy it can still get: https://forums.garmin.com/developer/connect-iq/i/bug-reports/connect-version-4-20-broke-local-http-access
Updating thread rendering for sorting by new messages will help a lot. 


Garmin development blogs
Which Garmin blog should I follow to not miss anything important? I followed https://developer.garmin.com/blog/ to find out that I missing lots of interesting articles from here https://www.garmin.com/en-US/blog/category/developer/ . I bet I am not the only one confused there. It will be great to simplify communication to community.

Closer integration with rest of Garmin – as viewed from outside
I am aware that the teams responsible for Garmin Connect, CIQ Store etc. are different and some even located in another country, but from what I see, I believe that communication/prioritization with those teams don’t work too well. And that drags down whole CIQ potential in the eyes of somebody who is considering to invest bigger effort/money to bring something new to the platform. What else explains that nobody is still able to fix issue like (https://forums.garmin.com/developer/connect-iq/i/bug-reports/connect-version-4-20-broke-local-http-access). I whish CIQ topics have bigger priority in other Garmin teams…


I think it’s all about potential of platform for Garmin itself which can be in my opinion higher not having the issues mentioned above. But you can’t rely on gaining another level of CIQ importance with help of 3rd party developers if they can’t rely that their service will work here. Typical egg or chicken paradox.

I will love to know what others thinks about these topics, hope that my summarized experience might help at least a little for making CIQ better, wish to keep the pace on further platform development and having enough contributors to CIQ Store. I am working on another one. :)

Jan

REFRESHED ON 30.7.2019 (but not that much...)
Actual view on current ciq situation here: forums.garmin.com/.../912867

  • Hello Travis, thanks for your response, your posts on this forum are extremely helpful. The biggest problem is probably that issue transfer to other teams.. That is good, but sometime it seems like the bug is just lost during this process as we are keep receiving info that somebody is working on it while months are passing and no progress is done. I would rather get info, that it is not priority now, than to have this false expectations. Good example is this: https://forums.garmin.com/forum/developers/connect-iq/1416363-garmin-connect-web-draw-only-2-from-3-iq-generated-workout-graphs I literally stopped development on some apps to wait until the bug is fixed, hoping I will just continue with my original plans after that. But it seems, that wasn't good move. 

    BUT, with the new community portal I am confident it will be better! I can't thank enough for this change! Slight smile

     

    BTW, what is general status of Android SDK? Are there still some people who are able to maintain it? 

     

    Anyway, enjoy the Summit!

  • My saddest topics from the post is history! Well done and thank you for new community portal! ThumbsupCan't wait for other news from summit. Slight smile

  • I wish we could have said something earlier, but it would have ruined the surprise! I'm sure there will be some adjustment as people learn their way around this new platform and we make adjustments to get things working the way we'd like, but hopefully this is at least some demonstration that we're committed to growing Connect IQ and supporting the developer community. Smiley

  • Hello CIQ team! Congratulation for CIQ 3.1, which I believe now leaves its beta phase considering new announcement! I am sad, that popular Fenix 5 range will not get new CIQ features, but I can understand business decision or technical reasons behind this.

    What I DO NOT understand is what I can expect from the CIQ platform next. And if the plans for next CIQ version are not clear even for you, let me please help you with these suggestions:

    - please stop for a while on bringing new stuff and look on current features, their usability and how they can be polished (for example mapping).

    - go through whole documentation and update it finally. Same parts are obsolete, other misleading etc. Also, it’s great to announce new features, but how does it look when announcement refers to documentation where new classes and methods are not to be found? I don't think you are aware by how much current quality of documentation decrease number of devs who actually finish some more complex ideas on your platform...

    - new forum is vast improvements over old one, but the issues starting to appear even here. Threads with more structured posts are extremely hard to follow due to weird sorting by newest posts so the only option is often to click to link in email notification...

    - Stop reacting to those few bug reports by messages claiming only that you have some tickets for it. We don't care whether you have some internal ticket for it or not, we want to get understanding whether it is priority for you to fix it or not and when it might happen, so we will be able to adjust our development plans accordingly. There are lots of unreported bugs as consequence - because why should developers care to spend a time to issue report with usual local feedback to them... We want to primarily finish our projects, either hobby or commercial. I understand there will be always lots of bugs on such platform – but that’s what priorities are for – and you don’t seem to handle them properly not only by my opinion.

    - Create solid plan which issues (both technical and non-technical) and when you are willing/able to fix and PLEASE share us at least some from it to not have false hopes during development of apps on your platform. Current situation of the platform for building anything little more  complex is not great, but I wonder why it is getting still worse and not in opposite direction as I closely watch the situation for more than year now.  

    - And please, if you can, share with us the aspects which drives your overall priorities to understand the situation better.

    I am not really happy to act as probably biggest hater on this forum currently, but I still hopes my posts can help you realise some of these problems and motivate you to find a way how to deal with them or at least let us know what we can expect.

    It’s not hard to be surprised by my attitude - after few months of work, together with my client (and lots of invested money on both sides) we were able to bring CIQ integration of the offline navigation phone app with hundreds of thousands active users only to throw project to the trash after one more month, because Garmin "accidentally" blocked some usage of CIQ modules during prime season and affected thousands of Connect IQ users in the process. But even now based on your latest posts you don't have any clue when or if it will be fixed. That is not messing with devs only, but your customers too. Honestly, I wish we at least argued if we should expect that and whose mistake this is, but no, all we currently know is that there is some bloody ticket for it and nothing more.

    Consider this as open letter for you guys. I offered some dialog before, but no luck with proper response from you guys both via mails or forum. I might be only unimportant developer, but why I have feeling that you are failing to deliver promises even to your bigger partners? So yeah, this is not about particular bugs.

    What other developers outside of my social bubble thinks?  

  • Hi,
       I would like to add my point of view about this topic...
       First, a big thank you to Garmin for providing us with support/tools/sdk/forums and allowing us to reach out to users in an nice echo system that connected everything together.  Quite an interesting platform and feeling lucky for having access to coding my own stuff on a quality piece of tech.  That's awesome!
        That being said, I am also sharing some of the same issues that Jan Čapek is having.  I'm mainly affected by random bugs which seems to come every time a new firmware or Garmin's phone apps or connect iq updates are released.  Every time I will get a bunch of emails and bad reviews reporting bugs and asking me to fix it... Because for some reasons, the end users strongly believe it's always my fault...
        I normally work around this by disabling some features and do some workarounds when possible...  Then wait a few months before trying to add it back because we have NO WAY of understanding how or when ( or IF ) it will be fixed.  Sometimes I will report the bugs, other times I won't bother...  To be realistic, I'm not working for Garmin and I have limited time allocated to this.  But when I did, I can confirm that I at least received some sort of a confirmation that it was somewhere in the queue OR it will not be fixed ( which I can easily understand the business priority behind such decisions )
       But... End users don't really understand that and I also have some of them which contacted Garmin's support where Garmin quickly confirmed to them that it's the 3rd party devs fault so it's kinda hard to have them understand what's really happening. ( A bit frustrating but not sure if this can be fixed... )
       What could be improved?  On top of what others suggested, maybe a better way to communicates to devs what was fixes by firmware/apps/connect iq released;  Maybe improving how the Connect IQ SDK is affected by those update/release and address some of them in a timely matter to improve the perception of Quality?
       From my point of view... This is creating a bit of a "unstable" development environment which really limit my interest and commitment to building more complex apps and widgets.  I'm not sure if others are feeling the same but this should be of a concern for Garmin.

     

    Just my 2 cents.

    Cheers

  • >What other developers outside of my social bubble thinks?  

    i agree - there is a lack of communication from inside Garmin to the outside, it seems maybe even a lack of communication between groups within Garmin. it isn't really acceptable to have a Connect app update that breaks something, then have the only official comments being akin to "we don't know when we'll fix it", and requiring users downgrade an apk from a third part site. If you are going to break things and not be able to fix them right away, you should communicate very clearly AND also provide an official reversion method.

  • Hi everybody. Yes, on Garmin you need to have some online tracking in your app and log all web response errors and exceptions, and which device was affected. And you should look on it pretty regularly. It's happening that some firmware is released and there are errors on one specific device. It happened with Edge Explore, with Fenix 5 devices or others. You can report this bug to Garmin and it's usually fixed pretty quickly. But I would wish it was not happening at all...

    I usually display a warning message in the app "You should upgrade your Garmin firmware to XY", if the fix is already released. Or I temporarily disable the device. Sometimes it's hard, because for example the Edge 1000 shares a device ID with Edge Explore 1000, but the firmware numbers are completely different. For CIQ it's the same device, but it is not for users.

    For example the last Oregon issue was pretty bad. The problem that all CIQ storage and properties were removed when the device was turned off was fixed about a year ago. Then it got into firmware again in February. The same error was introduced into Gpsmap 66, but it was fixed pretty quickly. But it took several months to fix it on the Oregon. And this problem still persists on Garmin Rino :) Really, I wish the teams were connected better and big problems like this were handled more quickly.

    Some errors are really not the fault of developers. For example the bluetooth error -2 from makeWebRequest. It happens on some devices when the bluetooth looks connected, but seems to be stuck for CIQ. Even when you turn off and turn on the app, it does not reconnect. And you can see in the Strava, Komoot and other app comments that users complain about that. These apps have less than 3* ratings mostly because of issues like this.

    Really thank you for the ERA tool in the new 3.1 SDK! It is really helpful and it shows all the important information, when there was an exception, when the code executed too long, or failed on out of memory exception. This is really a must have and the best tool. Yes, it's very simple. And when an update is released, all the exceptions are removed  :) But at least it's something.

    I would say I really wish the Garmin development was "easier"... Currently it is not the platform where you can easily and quickly iterate and try new things. For example, if you want to download some data from the data field, there are still no good samples or articles. The limitations are not documented, how much data you can receive, what is the maximum URL length, how to download a "byte array" or how to do it efficiently. Even how to get the exception from the background task or some meaningful debug output is not straightforward.

    And the tools are still bad. Yes, at least the simulator does not freeze now, when you do a lot of System.println calls, and does not loose settings and OAUTH tokens after every start in the SDK 3.1, thank you! But the debug still does not work. Maybe the first breakpoint is hit, but then the whole Eclipse gets stuck, the simulator is broken and you need to restart the whole IDE. I have never met a Garmin developer that would say "yes, the debug is working fine for me".

    There is no way to do an "exception driven programming" - just hit the F5, see where it fails, fix the line, hit F5 again... Come on, the Error: System Error or Details: Failed invoking <symbol> is not what you want to see. You mostly don't even get the stacktrace in the console. There is no way to know where it failed. You need to compile it as a debug, copy both files to the device, do the task again and look into the CIQ_LOG file.

    It would be so awesome to be able to just deploy and debug on the device, like on any other platform :) You remember the feedback on the Summit, the "yes please" from the crowd was really loud.

    But I know that it takes time. I love this platform and the community. There are some challenges, but it is getting definitely better. Thank you for the support and all the communication with us.

  • Hey Everyone,

    I've been looking through some of the feedback you've been providing and I'll to say first of all how much we appreciate it! We love hearing the good and the bad and will continue to try and make the entire CIQ ecosystem better. I'd like to take some time now and address what I can as clearly as I can. My hope is to clear up any confusion where that may be the case and be honest where we just don't have or can't give any direction on. If I've missed something you've asked about or commented on, then I probably can't say anything more about it or I've tried to answer it somewhere else in my responses. I'm breaking things down as the OP did into Features, General/Platform, and Non-CIQ (yet related) issues:


    Features:

    Datafields - We have already discussed giving datfields the ability to talk to each other and it's on the road-map. However, this is far enough down the road-map that I'm not sure which SDK it will be in and don't have the ability to give any real indication or timeline right now.

    Regarding faster access to background processes, we don't have any immediate plans to do this, however, we do have a feature request made. At the time this was requested, this was not feasible. I'm asking the team to take another look on our newer generations of devices, but can't make any promises here.

    Apps - We have requested resuming of activities, remote launch without a confirmation dialog, and a request to look at what running native datafields and/or CIQ datafields in CIQ Apps would look like. My inclination is that the last item here is the least likely to happen, but I've asked to discuss this idea.


    General/Platform:

    We are currently working together internally and with device teams to address some of our longer standing bugs. I really can't communicate much around the road-map for CIQ outside of what's already been communicated. I can say that we understand that there have been some delays in the timeline that we had certainly not hoped for.

    I'm sad to hear that some of our outstanding bugs have caused some of our devs to feel that it's not worth reporting things that seem "smaller". Know that we take all of them and they're all prioritized. Along with our forum upgrade, we've not worked out some new processes to attempt to make sure that we are better communicating the status of tickets. We will not be able to provide an external facing bug tracking system. However, I think the biggest benefit to having one is the visibility and communication. The QA and Engineering teams are working on better communication standards and processes to mitigate some of the issues we've had with communicating status of issues in the past.

    Regarding what we can communicate in bug ticket statuses, we will communicate whatever we can. If we can provide an internal priority, software version number for device, GCM, SDK, etc...then we will. There are sometimes where we are unable to communicate those things because we don't have them yet. Other times we can't because it would divulge information that we can't release yet. And yet other times, it might be unintentionally misleading to the developer community and cause confusion to give version numbers before they are released. In all that, we will give everything that we can. This should be happening at least weekly.

    We are working to prioritize documentation and better debugging. Right now, we are working on the stability of the 3.0 and upcoming 3.1 SDKs. This includes addressing some of the longer standing issues in order to support these new SDKs.


    Non-CIQ/Related:

    We have recently made some changes in the forums to help address some of the "low-hanging fruit" issues. Some of the changes that have been requested have wider affect than the CIQ community so they required getting the okay from the other forum teams to implement. The biggest change we've made is that we have "flattened" the forum replies structure. We do not have pagination at this point, but have word from the platform team that this feature is coming. We haven't been given a timeline for that update.

    For blog information, we have moved to using the blog topics found here for major items: https://www.garmin.com/en-US/blog/developer/ and the Blogs found at the top of the CIQ Developer Community here: https://forums.garmin.com/developer/connect-iq/b/news-announcements 

    We do not have plans to continue using the blog found here: https://developer.garmin.com/blog/category/connect-iq-sdk/

    We are actively working with our Product Support team to help them better understand and troubleshoot CIQ related issues. The first evidences of this are the CIQ specific sections that have been added to the support website. We are still working with support to update what is there and developer new content that is helpful and makes sense to our end users.

    Finally, there is an unfortunate nature of large, multi-team, projects that makes them tend to move slower than we would all like. Know that we, along with our work toward better processes for communication externally, are trying to find ways to speed things up internally for you as well. Because of the complexity of Connect IQ, the fact that so many different product have to do work to integrate our changes into device firmware, and the ever constant difficulty of that multi-team priority setting, this is probably always going to be something we fight. However, we are always fighting it better. This is particularly true as we ramp up on our newer products (with exception of course). Where this will continue to be difficult is on our older products as the focus keeps looking forward.


    Conclusion:

    I know this was a bit of a book, but I wanted to do my best to provide you all with everything I can because, frankly, you all make Connect IQ what it is! We think our developers are the best developers. They're certainly the most active! We want to do everything we can to help you be successful and in turn you make us and our platform better.

    Thank you all again for all that you do, your patience, and your passion for Connect IQ! I know you wouldn't have spoken up if you didn't care about it.

    -Coleman