Ticket Created
over 5 years ago

WERETECH-7119, WERETECH-7120, WERETECH-8181

Split issues in this thread into multiple issues.

MapView and MapTrackView classes are broken - even more on CIQ3.1

Hi, 

not only that CIQ 3.0 implementation of MapView and MapTrackView still have more issues than actual working features, CIQ 3.1 even made them worse. 

Newly, UI rendered by both classes can not be refreshed on CIQ 3.1 devices by calls from code after first initialisation - for example by setMapVisibleArea method as it is described here:

https://forums.garmin.com/developer/connect-iq/f/discussion/191378/fenix-6-ciq-maps-implementation/932413#932413

I can summary also the older issues if it will help somebody to take care of them in one run. But some of them are already mentioned on various places of the forum without any positive reaction from CIQ team, so I don't want to waste time if nobody ask for them.   

Will there be please finally time to fix those important parts of CIQ after settling down dust from CIQ 3.1 public release? This is kind of things why Connect IQ is extremely hard to use for any more complex apps which should be perfectly doable according to documentation.  In my case I have to disable maps on all CIQ 3.1 devices until the problems will be solved leaving my users confused again. Disappointed

  • On 3.0, you couldn't have the MapView as your first view.  This has been changed in 3.1.  So in 3.0, if you wanted your main view to be a MapView, you first had to have a dummy view that would just push a MapView.  It's nice that they removed this restriction, but could cause issues on 3.0 devices if you don't deal with it properly.  I've chosen to leave in the dummy view that just pushes the MapView.

  • I wanted to finalise maps implementation for new app version finally and decided to remove my old map screen transition workaround completely even for CIQ3.0 devices. But oh boy, now I am getting 

    Error: System Error
    Details: Native base view is not supported.

    when I am trying to do switchToView to my class which extends MapView on CIQ 3.0.  Oh boy, I forgot to such limitation.. 

    1) I know that switchToView is limited to push only user-defined views, but I am confused here - is this correct behaviour with child class of MapView? :-/

    2) Error is not triggered on CIQ 3.1 and the map is pushed correctly there. Is this new change on switchToView behaviour (so docs is obsolete in this) - can I rely that this will stay to work? 

    Thanks

  • I would agree with all the you said. CQI maps clearly were not designed with creating an app that mimicks the user experience of a native app, but rather with displaying a static map in preparation for running a native app.  Hopefully this will be changed with time, although we are going on over 18 months since they were released.

    - Pushing Map Views have definitely become a bit more consistent on 3.1.  That's a good thing. 
    - The flicker almost every time you update the poly line / markers is quite annoying.  In my case, I want real time track, location, and status of the dogs, but have had to add an option for the user to set the update interval if the flashing every few seconds is too annoying.  I already had to have that for 3.0.  I usually set the interval to 15 seconds.  A dog can cover a lot of ground in 15 seconds.
    - The screen going blank for multiple minutes is a bigger issue, and far far worse than it ever was on 3.0.
    - Having no control over the displayed map is a huge issue for a decent user experience.  Relying on how settings were left from the previous user really is unacceptable.  The golf course map being used is a perfect example.  At least with my apps, a user likely won't even notice what the settings are until they've started recording the activity.  So they would have to stop the activity, load an activity they know has the settings they want, and then restart the dog tracker app.  I can't think of any system where that would be considered acceptable.

    When I was adding maps, I considered having maps be either the old bread crumb mode, or use the new MapView version.  Instead I still always have the bread crumb view, but add as an additional page the MapVIew.  Given the current state of maps, I suspect most users would just stay on the bread crumb page.

  • Ok, so I did some tests and there are some changes in handling transitions to or from CIQ3.1 MapView. It leaves my workarounds for broken 3.0 MapView transition not working in 3.1 (not sure why). So i did removed my workaround code from the app and now transitions seems to be working well on 3.1 devices. But on 3.0 devices when I push view on top of MapView (in my case Menu1), I still lost control of the app. So as more devices are getting ciq 3.1, I will simply restrict Map screen for older devices (F5X, D2 Charlie, Descent?).

    So in summary

    CIQ 3.0:
    - pushing view on top of MapView will cause loosing app control and eventually crash

    CIQ 3.1:
    - there are still issues when you previously use different map of types on native apps. For example after using Expedition app on F6, MapView in CIQ app is totally broken and user again loose possibility to control the app. 
    - MapView refresh itself with not pleasant flickering or even completely blanking out the screen (reportedly for long period of time). 
    - It is not clear define which map will be used on MapView. In my case, I even have one map on my screen in the app but when I start activity recording from withing CIQ app, MapView refresh itself with different map... It may be related only to F6, not sure. 

    Overall, MapView and MapTrack View have maybe less bugs in CIQ3.1, but their usability is still quite compromised, because there are still also issues or limitation "by design" - some of them mentioned in second post. And considering it was key functionality in CIQ3.0 as presented on last year CIQ Summit, it is only showing current condition of Connect IQ platform as general.. 

  • Yep, additionally I have some issue with transition back to map screen in one particular case, which worked fine on CIQ 3.0 watches, but must check more details first. It may be only because of my workarounds which are solving another problems with MapView (those from CIQ 3.0)...