Faster editor developement

Hi

I develop applications for Edges, in Visual Studio Code, and in terms of debugging, the method I use with the CIQ simulator is very slow. Whenever I want to test even a little modification, I have to press F5, wait for it to build in about 10 seconds, the simulator pops up so I can check if the modification meets my expectations, and then repeat this process over and over, wasting a lot of time on building.

Is there a method to see the changes in real-time during development, some sort of hot-reload solution?

The task that the execution runs in VSCode: 
C:\Program Files\Common Files\Oracle\Java\javapath\java.exe -Xms1g -Dfile.encoding=UTF-8 -Dapple.awt.UIElement=true -jar c:\Users\pettk\AppData\Roaming\Garmin\ConnectIQ\Sdks\connectiq-sdk-win-6.3.0-2023-08-29-fc81ed416\bin\monkeybrains.jar -o bin\xyz.prg -f d:\_Lumiolabs\_Projects\xyz\monkey.jungle -y d:\_Lumiolabs\dev\developer_key -d edge840_sim -w

I would appreciate any help on how to make debugging faster! Thanks.

  • Short answer: no.

    Long question: why? Depending some specifics of your code and the change you might only need to test on a few devices. For example if you change the layout or the way you draw something. But if you change something that changes some calculations then I don't see the point of testing it on all devices (except if let's say until now you had N digits to display and now you might have N+1, which is kind of the same as when you changed display or layout)

    My datafield is compiled to 126 device families, so I don't test them on all devices. Usually I test it on the newly added devices, and I don't have layouts defined by xmls, but rather everything is calculated in code depending on data (layout size, shape) acquired via the api. So I'm not saying I don't have challenges related to layout, but once I solve them I know it's solved for all devices.

  • My 2 cents as a full-stack dev is that we're spoiled by modern dev tooling such as React webapps which automatically recompile and refresh in the browser within seconds, when any change is made to the code (on file save).

    With CIQ, I think the lag between making a code change and seeing that change in the sim is excruciating in comparison, especially considering the well-documented flakiness / intermittent bugs associated with launching the sim.

    I also work on stuff that takes 5-10 minutes to build so I see both ends of the spectrum.

    Also, as far as CIQ goes, if I make certain kinds of changes to one of my apps, I'd have to test at least a dozen different "families" (not product IDs), so all that waiting does add up to a subjectively bad experience.

  • I know. Half a year ago I also had a dozen or so families to test. Then I started to generate constants from the simulator and compiler xmls of the devices and this basically split every device to be it's own family (at least in terms of optimized code output of Prettier Monkey C) So now I just test a few of them (probably less than I would've before, though also my changes are very minor recently, mostly just fixing some ERA error or adding new devices)