Mobile SDK and Companion Apps Informal Survey

We've noticed a growing interest in the mobile SDK and more developers building Android and iOS companion apps for their CIQ apps. We know that the mobile SDK needs work, so I have a few broad questions below to help us better understand what we need to improve. Anyone is welcome to respond--I just ask that you provide constructive responses. :)

1. How has your overall experience been developing companion apps with our mobile SDKs?
2. Are there any documentation improvements you would recommend?
3. Is the sample app included with the SDK a useful sample?
4. Are there specific issues you encountered while attempting to develop a companion app?
5. Of those issues, are there any you were unable to address or work around?
6. Do you have any feature recommendations or improvements to the mobile SDK you suggest?

Lastly, if anyone has any companion apps they have built they'd like to show off, please include a link. Feel free to include any other feedback about the mobile SDK that isn't addressed by the question above.

Thanks!
  • Former Member
    Former Member over 8 years ago
    5. Of those issues, are there any you were unable to address or work around?
    I haven't been able to workaround the 4c) issue. When the FAILURE_DURING_TRANSFER starts to appear, a phone restart is needed.

    I can confirm that recently this problem also started to plague my experience. There's no way to get additional info about source of the problems, sequential attempts to send the same message result in failure, at the same time receiving data from watch using the same ConnectIQ instance works fine. Sometimes this doesn't happen for days, but sometimes messages are not sent at all without any evident reasons.

    Also, I'd like to propose another GCM improvement: although it's not hard to stage outgoing messages while the watch is disconnected on my own, it still requires additional programming and, in case with unexpected delivery failures even with watch is connected, not so evident staged data management. Contrary to that, Android Wear provides "fire and forget" mechanics meaning that software developer just needs to send data (as they call it "place onto the Wear network") and do not bother about it being delivered as AW takes care of that by itself. Thus, the suggestion is to provide native phone-watch message staging buffer, which will help to ease the companion app development. I understand that this is rather big improvement as it may contradict with currently implemented strategies, but still, please, consider this topic in your future plans as this will surely benefit overall "smartwatch scenario" user and developer experience.
  • I'd love to give some feedback on the companion app API, but I'm a cyclist! When will Edge devices support registerForPhoneAppMessages ? My 520 broke yesterday. Do I go for the 820?
  • I'd love to give some feedback on the companion app API, but I'm a cyclist! When will Edge devices support registerForPhoneAppMessages ? My 520 broke yesterday. Do I go for the 820?


    Per the 2.2.2 changelog, the ability to use companion apps with the Edges, Oregon and Rino was removed. Not sure of the reason, and no idea if it will come back.

    Remove support for communicating with the mobile Connect IQ SDK in the API for Edge, Oregon, and Rino devices.
  • Yes, I'm sure you don't know :) That's why I'm asking in a thread started by an IQ developer.

    I know it was removed. But the sticky at the top of this forum says...

    "The Mobile SDK currently does not allow for communication with Edge devices".

    I'm asking, pretty please, if it's not too much trouble, if a developer could confirm, at least, if it is still on the drawing board.

    Thanks.
  • I've got a new issue regarding Mobile SDK.

    How can I send arrays from watch to phone?

    I'm sending an array from the watch app via Comm.transmit (looking like ["DATA", 123, 456]).

    What I get on the Android side is [[DATA, 123, 456]]. Which is a List of Objects, where the List.get(0) == [DATA, 123, 456] (a generic Object). Why is that? I would expect that when I send an array from CIQ, I get an iterable list on the other side, but practically I get a string that I have to parse manually.
  • This doesn't sound correct to me. I've created a ticket to investigate. I might end up pushing this one over to the bug forum.

    Thanks,
    -Coleman
  • Former Member
    Former Member over 7 years ago
    1. How has your overall experience been developing companion apps with our mobile SDKs?
    Very bad :(
    2. Are there any documentation improvements you would recommend?
    The "transmit" method has the "options" parameter, but it is not described.
    3. Is the sample app included with the SDK a useful sample?
    Yes.
    4. Are there specific issues you encountered while attempting to develop a companion app?
    Unexpected errors when sending messages that are fixed only by restarting the watch or phone (or both)
    Very slow data transfer, but it was fixed in one of the recent updates (this is the only improvement in Direct Messaging in almost two years!).
    After some updates of Connect Manager app, the data transfer stops working in full or in part. This certainly should not be.
    5. Of those issues, are there any you were unable to address or work around?
    Yes.
    If try to send multiple messages without delay, some internal error occurs, after that it is no longer possible to send messages until the phone or watch is restarted. This of course can be circumvented by artificially entering into the application a check that all previous data has been transferred, but this is not good.
    With almost simultaneous initialization of the message transmission from the phone and from the watch, the already mentioned error FAILURE_DURING_TRANSFER appears, after that only the phone restart helps. This unfortunately can not be fixed.
    Also, apparently, FAILURE_DURING_TRANSFER appears if send data from the phone at a time when some intensive operation is being performed on the watch application, for example, redrawing the interface.
    6. Do you have any feature recommendations or improvements to the mobile SDK you suggest?
    Make the Direct Messaging absolutely reliable! Users really do not like when they are asked to restart the phone and the watch.
    I would like to be able to transfer images to the watch.
    I would like to have a mechanism for sending messages to the watchfaces.

    Sorry for my bad english.
  • Can we hope for a fix: My app is stopped by the same problem. Sometime it works for hours, but then without any special reason the communication stopps and I need to restart the Garmin Connect app first and the companion app second to get it working again.
  • Thanks for the feedback! We're looking into the FAILURE_DURING_TRANSFER issue, so plan to have that addressed in a future release. With regard to the transmit() method documentation, we've already added notes to state that options is not currently used and simply takes and empty Dictionary (it was added for future-proofing). You should see documentation improvements like this in the 2.3.1 Connect IQ SDK release.

    1. How has your overall experience been developing companion apps with our mobile SDKs?
    Very bad :(
    2. Are there any documentation improvements you would recommend?
    The "transmit" method has the "options" parameter, but it is not described.
    3. Is the sample app included with the SDK a useful sample?
    Yes.
    4. Are there specific issues you encountered while attempting to develop a companion app?
    Unexpected errors when sending messages that are fixed only by restarting the watch or phone (or both)
    Very slow data transfer, but it was fixed in one of the recent updates (this is the only improvement in Direct Messaging in almost two years!).
    After some updates of Connect Manager app, the data transfer stops working in full or in part. This certainly should not be.
    5. Of those issues, are there any you were unable to address or work around?
    Yes.
    If try to send multiple messages without delay, some internal error occurs, after that it is no longer possible to send messages until the phone or watch is restarted. This of course can be circumvented by artificially entering into the application a check that all previous data has been transferred, but this is not good.
    With almost simultaneous initialization of the message transmission from the phone and from the watch, the already mentioned error FAILURE_DURING_TRANSFER appears, after that only the phone restart helps. This unfortunately can not be fixed.
    Also, apparently, FAILURE_DURING_TRANSFER appears if send data from the phone at a time when some intensive operation is being performed on the watch application, for example, redrawing the interface.
    6. Do you have any feature recommendations or improvements to the mobile SDK you suggest?
    Make the Direct Messaging absolutely reliable! Users really do not like when they are asked to restart the phone and the watch.
    I would like to be able to transfer images to the watch.
    I would like to have a mechanism for sending messages to the watchfaces.

    Sorry for my bad english.